Prometheus 查询持久化

2019-09-25 0 By admin

在部署完成 Prometheus 服务完成后,我们就可以在 web UI 中使用指标和PromQL来查询监控数据了。在表达式浏览器中的查询,会将查询的结果临时存储在 Prometheus 的服务器上; Prometheus 不会长时间的运算这种PromQL查询语句并存储到服务器上。
如果希望 Prometheus 持久的运行某个 PromQL 并将结果类似一个指标一样存储下来,就需要通过查询持久化的方式。

  1. 记录规则:根据查询创建新的指标。
  2. 警报规则:从查询语句中生成警报。
  3. 使用 Grafana 等仪表板可视化查询。

Grafana 仪表板这里就不说明了。

一、记录规则

记录规则是一种根据已有时间序列计算新时间序列的方法;使用场景:

  1. 跨多个时间序列生成聚合
  2. 预先计算消耗大的查询
  3. 产生可用于生成警报的时间序列

1.1、配置记录规则

记录规则配置在 Prometheus 的配置文件中,在 rules_files 模块中编写。

  1. name: 规则组名称,要求全局唯一。按照编写顺序执行规则。
  2. interval: 更新规则组执行间隔,未设置则从上层继承。
  3. rules: 配置具体规则信息。
  4. record: 新指标的名称。一般格式: level:metric:operations,例子:instance:node_cpu:avg_rate5m
  5. expr: 生成新时间序列的查询语句。
  6. labels: 向新时间序列添加标签。

二、警报规则

警报规则编写位置和记录规则相同。

  1. alert: 警报规则的名称。
  2. expr: 触发警报的测试或者表达式。
  3. for: 在触发警报前测试表达式必须为true的时间长度。
  4. labels: 对警报附加新的标签。另外警报规则中时间序列的所有标签都会转移到警报中。
  5. annotations: 对警报内容进行修饰。
  6. summary: 描述警报信息。
  7. console: 指向展示节点指标的 Grafana 仪表板。