【问题标题】:Prometheus: What's the best way to alert on a condition?Prometheus:在某种情况下发出警报的最佳方法是什么?
【发布时间】:2018-07-09 15:50:59
【问题描述】:

我正在使用 Prometheus 收集 Java 应用程序的指标。在我的应用程序中,我正在调用通过 API 进行身份验证。如果对 API 的身份验证失败,我正在为 Prometheus 设计向我的电子邮件发送警报的最佳方法。我正在考虑使用计量器,将其初始化为 0,如果身份验证失败,将计量器值增加到 1——这将触发监视计量器值的警报(如果计量器 > 0,则触发警告)。

一旦身份验证成功,我会将仪表的值恢复为 0。

这通常是在 Prometheus 中创建自定义警报的方式吗?

【问题讨论】:

    标签: java prometheus


    【解决方案1】:

    可能不是最好的方法。一种极端情况是,假设您每分钟有 100 次身份验证,其中 99 次失败,Prometheus 每分钟抓取一次,在一次成功身份验证后立即进行。你会有 99% 的失败率并且永远不会发现它。

    另一方面,如果您为每次身份验证失败增加一个计数器,您可以在过去几分钟内获取rate()(以解决任何失败/延迟的刮擦),并且肯定会知道在此期间是否有任何身份验证失败过去几分钟。

    至于警报,您可以将其设置为在该速率高于 0(可能并不理想,因为总会出现随机故障)或超过某个非零阈值时触发。此外,还可以选择添加关于身份验证请求总数的条件(一个请求的 100% 与 1000 个请求的 50% 不同)和/或条件必须保持的持续时间(即,可能有一个 API 用户使用错误的凭据及其所有请求都会失败,但会持续几秒钟,而每隔几秒钟就会失败一次)。您必须自己弄清楚在您的特定情况下什么是有效的。

    【讨论】:

      猜你喜欢
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多