工作原理

日志服务提供下探分析功能,用于对多维时序进行自动化、智能化的根因定位。您可以根据根因定位的结果,判断是时序数据的哪些维度(单个维度和若干维度的组合)异常导致的问题,缩小问题排查范围。本文介绍下探分析的背景信息、功能、调度与执行场景、使用建议等信息。

背景信息

服务运行过程中会产生各种各样的时序数据,通过监控这些时序数据是否存在异常(例如监控KPI指标异常突变),及时获知服务运行是否异常,异常时可以及时进行故障定位与恢复。时序数据往往是由多个维度的时序数据聚合而成的。下探分析用于多维时序数据的根因定位,当监控的时序指标出现异常时,分析这个时序指标的各个维度,检测是哪个维度或者哪些维度的组合导致了指标异常。通过指标的各个维度进行根因定位,便于运维人员在服务异常时快速定位异常根因。

例如网站访问流量时序数据可以按照不同的维度进行划分。如果按照访问用户的城市划分,可以分为来自上海的访问流量和来自北京的访问流量等;如果按照访问渠道划分,可以分为来自移动端的流量和来自PC端的流量等。网络流量异常可能是由于某个城市机房故障造成的,也可能是由某个渠道的网页显示异常造成的,甚至是某个城市的某个渠道的网页没有及时更新造成的。

功能介绍

下探分析作业接收如下两类时序数据,这两类时序数据都是通过SQL方式抽取或聚合得到的。

  • 事件时序数据:下探分析作业观察事件时序数据,获知是否有异常事件产生。有异常事件产生时,立即触发多维指标下探分析,确定根因。

  • 多维指标时序数据:下探分析作业读取各个维度的时序指标,在观测到异常事件时,检测哪些维度的时序指标与期望值偏差较大,并将这些维度作为异常事件的候选根因。

下探分析结果会被写到目标日志库(internal-ml-log)中,并且在仪表盘中进行可视化展示,帮助您快速查看根因定位结果。整体流程如下图所示。

image

基本概念

日志服务下探分析涉及的基本概念如下表所示。

术语

说明

作业

下探分析作业。

实例

一个下探分析作业按照作业配置生成执行实例。每一个实例针对作业配置定时拉取数据,运行算法模型,生成下探分析结果。关于不同操作对实例的调度与执行的影响,请参见调度和执行场景

  • 一个作业可生成一个或多个实例,但是无论是正常被调度还是您触发异常实例重试的情况,不存在多个实例同时执行的情况。

  • 目前不支持参数的热升级。当您修改作业配置后,智能巡检作业会重新创建一个新实例执行算法模型,与之前的实例无关。

实例ID

执行实例的唯一标识。

创建时间

实例创建的时间。一般是按照您配置的作业规则生成,在补运行或追赶延迟时会立即生成实例。

执行时间

实例开始执行的时间。如果重试作业,则表示最后一次开始执行的时间。

结束时间

实例执行结束的时间。如果重试任务,则表示最后一次执行结束的时间。

执行状态

实例的执行状态。取值:

  • 运行中(RUNNING)

  • 重试中(STARTING)

  • 成功(SUCCEEDED)

  • 失败(FAILED)

数据配置

数据配置中包含查询分析语句、时间、维度、指标等参数。更多信息,请参见创建作业

算法配置

算法配置中包含观测长度、置信度、时间范围等参数。更多信息,请参见算法说明

下探分析结果

通过内置仪表盘展示下探分析结果。

调度和执行场景

一个作业可生成一个或多个实例,无论是正常被调度还是您触发异常实例重试的情况,同时只有一个实例处于运行中,不存在多个实例并发执行的情况。

主要的调度与执行场景如下表所示。

场景

说明

场景一:从当前时间开始执行下探分析作业

从当前时间发起作业,作业根据您所配置的观测长度读取历史数据,然后下探分析未来一段时间的时序数据。

场景二:从某个历史时间点开始执行下探分析作业

在指定的时间点创建下探分析作业后,按照作业规则对历史数据进行处理,算法模型会快速消费历史数据,并逐渐追上当前时间。

场景三:修改调度配置

修改调度配置后,下一个实例按照新配置生成。算法模型会记忆当前消费的时间位置,进而对新来的数据继续巡检。

场景四:重试失败的实例

如果实例执行失败(例如权限不足、源库不存在、目标库不存在、配置不合法等),系统支持自动重试。若您的状态一直显示启动中,可能是配置失败。错误日志会发送到您的internal-etl-log下,您可以检查下配置并重新发起。调度执行完成后,系统会根据实际执行情况变更实例状态为成功或失败。

使用建议

建议您在使用下探分析功能时,根据业务场景将时序指标合理的划分成若干维度,从而实现快速、准确的根因定位。具体说明如下:

  • 确保观测的异常事件与待分析的多维指标有关联关系,即维多指标的异常可能导致异常事件的产生。

  • 合理划分维度,多维指标的各个维度尽量相互独立,且每个维度的候选值的数量不会特别多。

  • 在用于多维指标时序数据抽取的SQL中按照合适的粒度对于时序数据进行聚合,如按照5分钟、10分钟等。