使用 Datadog 创建 HTTP 代码 500 警报,在同一警报中监控多个系统

问题描述 投票:0回答:1

所以我们的服务器由用户组成,每个用户可以选择我们提供的第三方服务之一进行通信。

每个第三方服务都有不同规模的用户通过我们的系统与其进行通信(并且还在增加):

  • 服务 (A) 可能有 30k 用户
  • 服务(B)有5k
  • 服务(C)有100k

我们希望在任何这些服务出现故障时创建警报(意味着监控 500 秒)。

当 500 发生时,我们从代码中的中央网络点发送一个指标,包括服务的

url
作为标签。

一些限制:

  1. 我们更喜欢只创建一个监视器来捕获所有服务并单独报告每个服务(因此,如果服务 A 和 B 出现故障,我们会收到 2 个警报)。我们不想为了同一目的创建多个监视器来监视不同的服务(也许创建一个复合监视器),因为我们与之通信的服务将来可能会增加。

  2. 我们不想在我们创建的单个监视器上显式设置 500 的数量,超过该值监视器就会发送警报,因为每个服务的用户群体大小不同,因此 10 次中出现 10 次与服务 (B)(有 5k)相比,服务 (C)(有 100k)的 500 分钟不应被视为服务中断。

    
    

  3. 我考虑过使用异常值或异常监视器,但我们正在尝试找出最佳配置以避免任何误报。因此,在
threshold

DBSCAN
之间更改异常值算法有时不会产生任何结果,而更改容差会产生误报。
这是使用 

MAD

,容差 3.0 - 未检测到大尖峰


容差在 1.0 之前什么也检测不到,但 0.5 则检测到所有东西,这可能是误报

DBSCAN

算法具有相同的行为,没有特定的容差来捕获正确的值

欢迎就上述配置提出任何建议,或者即使您认为应该使用不同类型的显示器。

alert monitoring outliers datadog anomaly-detection
1个回答
0
投票
您可以将服务标签附加到指标并创建一个
    MAD
  1. 监视器来针对每个满足阈值的服务发出警报。
    
    
多警报监视器会为监视器中满足警报阈值的每个实体触发单独的通知。
例如,当设置监视器以在按服务聚合的 P99 延迟超过特定阈值时通知您时,您将收到针对 P99 延迟超过警报阈值的每个单独服务的单独警报。


https://docs.datadoghq.com/monitors/configuration/?tab=thresholdalert#alert-grouping

如果您将 Datadog 中的“每项服务的用户数”计数作为指标,则可以根据该值标准化相对于用户计数和设置阈值的错误计数。
  1. 示例
    服务 A(100 个用户)- 10 个错误/100 个用户 = 0.1。 服务 B(2000 个用户)- 10 个错误/2000 个用户 = 0.005。
    因此,如果您设置 >= 0.1 的阈值,服务 A 将在存在 10 个或更多错误时发出警报,而服务 B 仅在存在 200 个或更多错误时发出警报。

© www.soinside.com 2019 - 2024. All rights reserved.