如何从 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 警报中排除尖峰?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据失败百分比在日志字段中创建警报?

如何将 Sumologic API 中的数据集成到 Power BI - 用户错误

哪个选项更适合在相扑逻辑上设置警报?

如何在 Sumologic 中重新处理原始日志

如何将 PM2 日志写入 sumologic?

您如何匹配 Sumologic 正则表达式查询中的报价?