如何获得新(独特)错误的警报

时间:2019-10-01 06:42:54

标签: azure-application-insights

应用程序监视服务的一项有用功能是,每当发生新的唯一错误/问题/异常(即不是每次发生)时,都会发送警报(例如电子邮件)。仅第一次,或者每X次(一天或一周左右)最多一次。例如,使用Visual Studio App Center可以做到这一点。不幸的是,我无法在Application Insights中找到任何此类功能。

为澄清起见,“新的,唯一的错误/问题/异常”可以被视为代码中的特定日志语句。我正在使用Serilog,因此所有记录的跟踪/异常都有一个MessageTemplate属性,可能会有所帮助。但理想情况下,“问题ID”也应基于代码位置(因为多个日志语句可能使用相同的消息模板)。

我发现的最佳线索是能够基于自定义分析查询发送警报,但是我不确定是否可以编写一个查询,该查询的行为类似于(如果不完全一样)我在上面描述了。

是否可以通过Application Insights实现与上面描述的行为类似的东西?如果可以通过自定义查询进行查询,这种查询的外观如何?

1 个答案:

答案 0 :(得分:0)

仅通过Azure门户的UI,很难或不可能达到您的第一个要求:仅在第一次时发出警报。但是您可以尝试使用app insights rest api来获取数据,然后使用代码来实现您的逻辑。

有一个类似的解决方案(与您描述的不完全一样),每X次警报一次。步骤如下:

1.Nav到azure门户->您的应用程序见解->警报->新警报规则->在“条件”中,单击“添加”按钮->然后选择“自定义日志搜索”

2。在“搜索查询”文本框中,如下编写查询:

exceptions
| where xxxx

请注意,在where子句中,使用一些属性来标识唯一错误。

3。然后在“警告逻辑”中,使用以下设置:  基于:结果数,运算符:大于,阈值:0

4。在“评估依据”中,为“期间”(最大值为2880分钟)/“频率”(最大值为1440分钟)设置适当的值。

因此,如果要每天触发1次警报,可以将“时间段”设置为1440分钟,将“频率”设置为1440分钟。但是,您还需要注意的是,如果在第二天没有这种指定的错误,则不会在第二天触发。