所以我们的服务器由用户组成,每个用户可以选择我们提供的第三方服务之一进行通信。
每个第三方服务都有不同规模的用户通过我们的系统与其进行通信(并且还在增加):
我们希望在任何这些服务出现故障时创建警报(意味着监控 500 秒)。
当 500 发生时,我们从代码中的中央网络点发送一个指标,包括服务的
url
作为标签。
一些限制:
我们更喜欢只创建一个监视器来捕获所有服务并单独报告每个服务(因此,如果服务 A 和 B 出现故障,我们会收到 2 个警报)。我们不想为了同一目的创建多个监视器来监视不同的服务(也许创建一个复合监视器),因为我们与之通信的服务将来可能会增加。
我们不想在我们创建的单个监视器上显式设置 500 的数量,超过该值监视器就会发送警报,因为每个服务的用户群体大小不同,因此 10 次中出现 10 次与服务 (B)(有 5k)相比,服务 (C)(有 100k)的 500 分钟不应被视为服务中断。
threshold
和
DBSCAN
之间更改异常值算法有时不会产生任何结果,而更改容差会产生误报。这是使用 MAD
,容差 3.0 - 未检测到大尖峰
容差在 1.0 之前什么也检测不到,但 0.5 则检测到所有东西,这可能是误报DBSCAN
算法具有相同的行为,没有特定的容差来捕获正确的值
欢迎就上述配置提出任何建议,或者即使您认为应该使用不同类型的显示器。
MAD
例如,当设置监视器以在按服务聚合的 P99 延迟超过特定阈值时通知您时,您将收到针对 P99 延迟超过警报阈值的每个单独服务的单独警报。https://docs.datadoghq.com/monitors/configuration/?tab=thresholdalert#alert-grouping如果您将 Datadog 中的“每项服务的用户数”计数作为指标,则可以根据该值标准化相对于用户计数和设置阈值的错误计数。