时序数据库IoTDB监控指标采集与可视化指南
一、概述
本文以时序数据库IoTDB V1.0.1版本为例,介绍如何通过Prometheus采集Apache IoTDB的监控指标,并使用Grafana进行可视化。
二、Prometheus聚合运算符
Prometheus支持多种聚合运算符,用于在时间序列数据上进行聚合操作。以下是一些常用的聚合运算符:
- sum:计算维度上的总和。
- min:选择维度上的最小值。
- max:选择维度上的最大值。
- avg:计算维度上的平均值。
- group:结果向量中的所有值都为1。
- stddev:计算维度上的总体标准差。
- stdvar:计算维度上的总体方差。
- count:计算向量中的元素数量。
- count_values:计算具有相同值的元素数量。
- bottomk:按样本值选择最小的k个元素。
- topk:按样本值选择最大的k个元素。
- quantile:计算维度上的φ分位数(0 ≤ φ ≤ 1)。
这些运算符可以通过without或by子句来指定聚合方式。
三、Prometheus函数
1. rate函数
- 功能:计算范围向量中时间序列的每秒平均增长率,适用于警报和缓慢移动的计数器。
- 语法:rate(v range-vector)
- 示例:rate(http_requests_total{job="api-server"}[5m])表示计算过去5分钟内每个时间序列的HTTP请求速率。
- 注意:与聚合运算符或随时间聚合的函数结合使用时,应先使用rate()。
2. irate函数
- 功能:计算范围向量中时间序列的每秒瞬时增长率,适用于易变的、快速移动的计数器。
- 语法:irate(v range-vector)
- 示例:irate(http_requests_total{job="api-server"}[5m])表示基于过去5分钟内的最后两个数据点计算HTTP请求的每秒速率。
- 注意:与聚合运算符或随时间聚合的函数结合使用时,应先使用irate()。
四、Grafana可视化
1. 创建Dashboard
- 在Grafana中,点击左侧边栏的“Dashboards” -> “browse”,选择创建或导入Dashboard。
- 进入Dashboard后,点击右上角设置按钮,更新基础信息,并调整Panel options为Shared crosshair。
- 在Variables界面定义变量,如job和instance,以便在查询中使用。
2. 创建Panel
- 点击右上角“Add Panel”,选择面板类型(如Time series、Stat、Gauge等)。
- 以Time series为例,编写PromQL执行数据查询。可以使用在Dashboard的Variables中配置的变量(如$instance、$job)。
- 在Legend中,通过双中括号访问监控项的Tag值,以修改图例。
- 在右侧的Panel Options、Tooltip、Legend、Graph Styles、Axis、Standard options等区域中,调整面板的标题、描述、图例、线的样式、轴信息、单位、配色等属性。
- 可以通过Overrides重写部分时间序列的某些属性。
3. 导出Dashboard
- 点击左上角的导出按钮,选择“Export for sharing externally”,然后将Dashboard的json文件下载到本地。
- 将json文件上传到GitHub的对应位置。