【现象】
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
应该如何判断AnomalyAnalyzer输出的日志?