如何从 SumoLogic 警报中排除尖峰?
Posted
技术标签:
【中文标题】如何从 SumoLogic 警报中排除尖峰?【英文标题】:How to exclude spikes from SumoLogic alert? 【发布时间】:2020-08-13 05:54:57 【问题描述】:如果在 60 分钟内记录超过 10 个错误,我们会发出 SumoLogic 警报。 我更喜欢这样的东西:
-
如果出现尖峰并且所有错误都发生在例如1 分钟(认为问题已自动解决)不生成警报。
如何设置这样的 sumoLogic 查询?
需求差异:
日志有clientIp字段,如果所有错误都是针对同一个客户端报告的,则不生成警报(特定客户端问题,而不是应用程序问题)
如果在 60 分钟内记录超过 10 个错误,则发送警报,除非错误是 A 类错误,但如果 A 类错误超过 100 个,则发送警报。(A 类日志错误是可以接受的,除非数字太大)
如果在 60 分钟内记录了超过 10 个错误,则仅当最后一个错误发生在 30 分钟以内时才发送警报(否则视为自动修复)
【问题讨论】:
【参考方案1】:我不完全确定您的数据是如何形成的,但是...
如果出现峰值并且所有错误都发生在例如1 分钟(认为问题已自动解决)不生成警报。
这个你可以通过聚合来解决:
| timeslice 1m
| count by _timeslice
| where _count > 1
或类似的。
如果为同一个客户端报告所有错误,则不生成警报
听起来像:
| count by _timeslice, clientIp
会做的。
如果在 60 分钟内记录的错误超过 10 个,则发送警报,除非错误是 A 类错误,但如果 A 类错误超过 100 个,
查询子句的粗略如下:
| if(something, 1, 0) as is_of_type_A
| count by is_of_type_A, ...
| where (is_of_type_A = 1 and _count > 100)
OR (is_of_type_A = 0 and _count > 10)
免责声明:我目前受雇于 Sumo Logic。
【讨论】:
以上是关于如何从 SumoLogic 警报中排除尖峰?的主要内容,如果未能解决你的问题,请参考以下文章