如何从SumoLogic警报中排除峰值?

问题描述

如果在60分钟内记录了10个以上的错误,就会发生SumoLogic警报。
我更喜欢这样的东西:

  1. 如果出现峰值,并且所有错误均发生在例如1分钟(考虑到问题已自动解决),不会生成警报。

如何设置此类sumoLogic查询

要求的差异:

  1. 日志具有clientIp字段,并且如果报告了同一客户端的所有错误,则不会生成警报(特定客户端而不是应用程序有问题)

  2. 如果在60分钟内记录了10个以上的错误,请发送警报,除非这些错误属于A类型,但是如果有100个以上的A类型的错误,则发送警报。(记录A类型的错误)可以接受,除非数量太大)

  3. 如果在60分钟内记录了10个以上的错误,则仅在上一次错误发生在30分钟前(否则视为自动修复)时发送警报

解决方法

我不太确定您的数据的形状如何,但是...

如果出现峰值,并且所有错误均发生在例如1分钟(考虑到问题已自动解决),不会生成警报。

您可以通过汇总解决此问题:

| timeslice 1m
| count by _timeslice
| where _count > 1

或类似的

如果报告了同一客户端的所有错误,请不要生成警报

听起来像:

| count by _timeslice,clientIp

会做这份工作。

如果在60分钟内记录了10个以上的错误,请发送警报,除非这些错误的类型为A,但是如果有100个以上的错误类型为A,

查询子句的粗略图为:

| 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工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...