一、服务暴露接口
需要暴露出 metrics 接口
二、Prometheus 对接
在 prometheus 中配置服务的 ip:port
三、PromQL
3.1 查询时间序列
匹配模式
- 完全匹配
通过使用label=value
可以选择那些标签满足表达式定义的时间序列
反之使用label!=value
则可以根据标签匹配排除时间序列
- 正则匹配
使用label=~regx
表示选择那些标签符合正则表达式定义的时间序列
反之使用label!~regx
进行排除
3.2 范围查询
时间范围通过时间范围选择器[]
进行定义。例如,通过以下表达式可以选择最近5分钟内的所有样本数据:
1 | http_requests_total{}[5m] |
3.3 时间位移
想查询,5分钟前的瞬时样本数据,或昨天一天的区间内的样本数据呢? 这个时候我们就可以使用位移操作,位移操作的关键字为offset。
可以使用offset时间位移操作:
1 | http_request_total{} offset 5m |
3.4 聚合
对同一特征多个label的序列,进行聚合操作
1 | # 查询系统所有http请求的总量 |
例子:
gauge 类型数据,可以用xxx_over_time()
函数来做一段时间的数据聚合操作
quantile_over_time(0.3, yarn_label_used_capacity[1d])