prometheus rules

Posted shhnwangjian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了prometheus rules相关的知识,希望对你有一定的参考价值。

prometheus 持久查询

有三种方法可以使我们的持久查询(不用每次都要输入查询规则):

  • 记录规则  -  从查询中创建新的指标。
  • 警报规则  -  从查询生成警报。
  • 可视化  -  使用像Grafana这样的仪表盘来可视化查询。

记录规则

1、记录规则是一种计算新时间序列的方法,特别是从输入的时间序列中聚合的时间序列。我们可以这样做:

  • 跨多个时间序列生成聚合。
  • 预计算昂贵的查询,即消耗大量时间或计算能力的查询。
  • 生成一个时间序列,我们可以用它来生成警报

2、配置记录规则

记录规则存储在Prometheus服务器上,存储在Prometheus服务器加载的文件中。规则是自动计算的,频率由prometheus.yml 全局块中的evaluation_interval参数控制。

cd /usr/local/prometheus/conf
mkdir -p rules
cd rules
touch node_rules.yml
修改 prometheus.yml 文件
rule_files:
  - "rules/node_rules.yml"

 技术图片

 3、添加记录规则

命名规则建议:

  • level:metric:operations

例如: instance: node_cpu:avg_rate5m

node_rules.yml文件内容

groups:
- name: node_rules
  interval: 10s
  rules:
    - record: instance:node_cpu:avg_rate5m
      expr: 100 - avg (irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100
      labels:
        metric_type: shhnwangjian

多条

groups:
- name: node_rules
  interval: 10s
  rules:
    - record: instance:node_cpu:avg_rate5m
      expr: 100 - avg (irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100
      labels:
        metric_type: shhnwangjian
    - record: instance:node_memory_usage:percentage
      expr: (node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Cached_bytes + node_memory_Buffers_bytes)) / node_memory_MemTotal_bytes * 100
    - record: instance:root:node_filesystem_usage:percentage
      expr: (node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100

修改配置文件后重加载

ps -ef|grep prom |grep -v grep|awk ‘{print $2}‘|xargs kill -HUP

 

以上是关于prometheus rules的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus常用告警规则rules.yml

prometheus rules

在 prometheus 的 alert_rules.yml 文件中指定的正确规则应该是啥

prometheus配置alertmanager完整过程

报错:✘ http://eslint.org/docs/rules/indent Expected indentation of 0 s paces but found 2(代码片段

报错:✘ http://eslint.org/docs/rules/indent Expected indentation of 0 s paces but found 2(代码片段