tidb 监控报警分离

原监控文件
promethes.yml

  • job_name: “tikv”
    honor_labels: true # don’t overwrite job & instance labels
    static_configs:
    • targets:
      • ‘192.168.25.2:20180’
      • ‘192.168.25.3:20181’
      • ‘192.168.25.4:20180’
    • job_name: “pd”
      honor_labels: true # don’t overwrite job & instance labels
      static_configs:
      • targets:
        • ‘192.168.25.5:2379’
        • ‘192.168.25.6:2379’
        • ‘192.168.25.7:2379’
          rule.yml
  • alert: NODE_cpu_used_more_than_20%
    expr: avg(irate(node_cpu_seconds_total{mode=“idle”}[5m])) by(instance) * 100 <= 80
    for: 3m
    labels:
    env: prod-dc-new-tidb
    level: warning
    expr: avg(irate(irate(node_cpu_seconds_total{mode=“idle”}[5m])) by(instance) * 100 <= 80
    annotations:
    description: ‘cluster: prod-dc-new-tidb, instance: {{ $labels.instance }}, values: {{ $value }}’
    value: ‘{{ $value }}’
    summary: cpu used more than 20%

node_cpu_seconds_total 这个规则汇聚了tidb,tikv,pd等所有节点
问题
如何将tidb tikv pd 各自分割配置

这个metric node_cpu_seconds_total{mode=“idle”,instance=~“(10.0.74.222|10.0.74.228):.*”} 只有instance可以进行识别
up:up{group=“pd”, instance=“10.0.74.226:2379”, job=“tidb_port_probe”}
还有group可以判断

你是不是理解错了,tidb已经为你分割了告警配置,比如打开的就是pd的。如果需要,可以在pd.rules.yml添加你的告警项。测试的5版本也是这样:

我的意思是 有一个 系统cpu 的告警规则


node.rules.yml

  • alert: NODE_cpu_used_more_than_30%
    expr: avg(irate(node_cpu_seconds_total{mode=“idle”}[5m])) by(instance) * 100 <= 70
    for: 1m
    labels:
    env: prod-dc-new-tidb
    level: warning
    expr: avg(irate(irate(node_cpu_seconds_total{mode=“idle”}[5m])) by(instance) * 100 <= 70
    annotations:
    description: ‘cluster: prod-dc-new-tidb, instance: {{ $labels.instance }}, values: {{ $value }}’
    value: ‘{{ $value }}’
    summary: cpu used more than 30%

这个文件会告警所有 node 节点的cpu
问题
向把这个cpu 告警进行分组,tidb tikv pd tiflush 各一组

那你就手动看每一个metric,有group这种就用group,没有就按默认的instance写死过滤ip,可以嘛

image

这是添加的 tikv 单独的cpu node 告警 没有获取到值

先把表达式放prome里查一下,看看有值没有,在这里填好表达式,再放配置文件

新的firing不是嘛?
prometheus修改了rules.yml,要热加载或者重启一下,其他的没有其他问题(解决了给个最佳啊)



里的规则,包含你信修改的项吗,不包含就是prometheus没有最新的文件,重启或热加载下

热加载过,还是获取不到 tikv 节点的cpu值
node.rules.yml
原配置所有node cpu的规则 正常

添加过滤 tikv 节点cpu 后的规则

正常了,获取到值了

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。