首页 > 解决方案 > Prometheus 黑盒探测有用的指标

问题描述

我有大约 1000 个使用 HTTP 探测的目标。

job="http_2xx", env="prod", instance="x.x.x.x"
job="http_2xx", env="test", instance="y.y.y.y"
job="http_2xx", env="dev", instance="z.z.z.z"

我想知道目标:

  1. 过去 10 分钟内 env 的失败率。
  2. env 在过去 10 分钟内的失败率增加。
  3. 好奇以下是做什么的:
sum(increase(probe_success{job="http_2xx"}[10m]))

rate(probe_success{job="http_2xx", env="prod"}[5m]) * 100

我已经达到的最接近的是在 10 分钟内通过 env 找到操作:

avg(avg_over_time(probe_success{job="http_2xx", env="prod"}[10m]) * 100)

标签: monitoringprometheusprometheus-alertmanagerprometheus-blackbox-exporter

解决方案


  1. 过去 10 分钟内 env 的失败率。最简单的方法是:

    sum(rate(probe_success{job="http_2xx"}[10m]) * 100) by (env)

    这将返回您成功探测的百分比,您可以反向添加*(-1) +100

  2. 计算超过 10m 的速率和超过 10m 的速率增加似乎是多余的increase,向上述查询添加函数对我不起作用。increase如果愿意,您可以将 rate 函数替换为。

  3. 第一个查询非常接近,它将计算 10m 周期内成功探测的增加。== 0您可以通过“env”变量相加和求和来显示失败探测的增加

    sum(increase(probe_success{job="http_2xx"} == 0 [10m])) by (env)

    您的第二个查询将为 prod 环境返回超过 5m 的成功请求百分比


推荐阅读