在运维场景下,会对日志进行分类后,对数据发生的数量进行指标化后进行异常检测。下图中是一个日志异常检测的真实案例,在智能运维场景中,把日志转换成指标是常见的运维日志处理手段。日志转换成指标后,大部分时间可能都是空值,只有少量场景下会出现日志量暴增的情况。因此零值填充是运维日志场景下需要应对的挑战。
④ 峰谷潮
通过引入消息队列可以应对峰谷潮给系统带来的影响。
⑤ 数据齐整
假设采集器第一个采集到的时间是 23:00:00.000,若以一分钟为粒度,下一个点理论上应为 23:01:00.000。但如果采集器的计算机时钟发生异常,在 23:00:00.012 多上报了一次数据,在运维场景中随着这种毫秒级的差异不断的累加,可能会导致一天内的点比前一天多一个点的问题出现,这时会引起同比环比计算产生误差,导致异常检测点错位。因此要做数据的粒度齐整和粒度卡齐。
Clickhouse 需要依赖外部系统进行先读取再卡齐,IoTDB 和 TDengine 支持了区间数据采样。
图中是一个指标异常检测的真实案例,其中的数据是银行脱敏后的真实的日常交易数据,标红的点是异常点,即交易突增和突降。如果没有数据齐整化的处理过程,异常检测的同环比检测会不准确,进而产生误报、产生较大业务问题、影响业务连续性,导致平台产品质量被质疑。