应该如何判断AnomalyAnalyzer输出的日志?

 
【现象】
AnomalyAnalyzer可能会输出以下日志。

・AnomalyAnalyzer Resin|Http|Request Time WARNING
・AnomalyAnalyzer Resin|Thread|Thread Active Count WARNING
・AnomalyAnalyzer Resin|Database|Connection Active WARNING
・AnomalyAnalyzer Resin|Http|5xx WARNING


这些是根据运用中的统计信息,检测到异常值时输出到日志中的内容。

【解说】
AnomalyAnalyzer的输出相关设定通过<%RESIN_HOME%>/conf/health.xml 进行。

设定内容的说明如下。
https://document.intra-mart.jp/library/iap/public/configuration/im_configuration_reference/texts/resin/health/health-meters/index.html

输出到日志中的各值如下。

AnomalyAnalyzer (1) WARNING
(2) sample is (3)% of (4)avg, (5) std deviations (std=(6), n=(7))

(1)统计信息的类型
(2)此次检测值
(3)检测值与平均值的百分比是多少
(4)平均值
(5)检测值是标准偏差的多少倍
(6)标准偏差
(7)用于计算平均值及标准偏差的样本数

以下公式成立。

(6)×(5)+(4)=(2)
(4)×(3)÷ 100 =(2)

(例)
AnomalyAnalyzer Resin|Http|Request Time WARNING
54.636 sample is 13030.26% of 0.419 avg, 8.255 std deviations (std=6.568, n=3074.0)

首先,检测到异常值的统计信息类型是请求处理时间。
此次检测到的54.636秒是目前平均请求处理时间0.419秒的13030.26%。
此外,由于这是标准偏差的8.255倍,因此作为异常值输出到日志中。

默认情况下,当检测值为标准偏差的5倍以上时,输出日志。

统计学的一般标准偏差指标如下。

检测值落在平均值±标准偏差范围的概率约为68%
检测值落在平均值±(标准偏差×2)范围的概率约为95%
检测值落在平均值±(标准偏差×3)范围的概率约为99%

从上述内容可以看出,标准偏差5倍以上“平均值±(标准偏差×5)”的值是概率非常低的。
但是,必须根据足够的样本数来计算平均值和标准偏差。

【处理方法】

首先,输出AnomalyAnalyzer日志并不意味异常。

例如,从请求处理时间来看
如果持续有处理较少的请求,则平均值会逐渐变小。
如果有处理繁重的请求,则会出现与平均值较大的偏差,并输出日志。

需要确认此处理繁重的请求的处理时间的合理性
如果已暂时输出AnomalyAnalyzer日志,则不需要特别在意。

此外,启动后,开始请求时可能会出现暂时输出的情况。
这是因为用于计算统计信息的样本数较少,因此统计信息可能不是合理的值。

但是,如果AnomalyAnalyzer日志持续输出,则会对系统造成某种负载,
因此需要确认各种日志,并查明原因。

-- 适用对象 --------------------------------------------------------------------
iAP/Accel Platform/所有更新版本
 --------------------------------------------------------------------------------

FAQID:1170
这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
由 Zendesk 提供技术支持