代码之家  ›  专栏  ›  技术社区  ›  kramsiv94

普罗米修斯:什么是最好的方法来提醒一个条件?

  •  1
  • kramsiv94  · 技术社区  · 6 年前

    我使用普罗米修斯来收集Java应用程序的度量。在我的应用程序中,我通过API进行身份验证调用。我正在为普罗米修斯设计一种最好的方法,如果对API的身份验证失败,它会向我的电子邮件发送警报。我正在考虑使用一个仪表,将其初始化为0,如果验证失败,请将仪表值增加到1,然后触发一个监视仪表值的警报(如果仪表>0,则触发警报)。

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

    这是普罗米修斯创建自定义警报的典型方式吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Alin Sînpălean    6 年前

    可能不是最好的方法。一个极端的情况是,假设您每分钟有100个认证,其中99个认证失败,普罗米修斯在一个成功的认证之后立即每分钟刮一次。你会有99%的失败率,而且永远不会发现。

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

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