智能异常分析的结果数据保存在名为internal-ml-log的Logstore中。本文介绍结果数据中的字段详情。
自2025年7月15日(UTC+8)起,智能异常分析功能停止对新用户服务,存量用户可继续使用。
影响范围
本次下线涉及的核心功能模块包括智能巡检、文本分析和时序预测。
功能平移方案
上述下线功能均可以通过日志服务的机器学习语法、定时查询与分析(定时SQL)和仪表盘实现完整替代。
通用的tag结构说明
各类任务的结果数据中都包含如下通用字段。
您可以通过__tag__:__job_name__和__tag__:__schedule_id__字段,查询对应任务的结果数据。
__tag__:__apply_time__:1638414250
__tag__:__batch_id__:a8343****5b0fd
__tag__:__data_type__:anomaly_detect
__tag__:__instance_name__:29030-****7bcdd
__tag__:__job_name__:etl-1637****3966-398245
__tag__:__model_name__:d52b5****c45397
__tag__:__region__:chengdu
__tag__:__schedule_id__:2457f****ebcdd字段名称  | 说明  | 
__tag__:__apply_time__  | 模型对批次数据进行巡检的时间,单位:秒。  | 
__tag__:__batch_id__  | 批次ID。每次算法执行所处理的一批数据,被标记为同一个批次ID。  | 
__tag__:__data_type__  | 数据类型。 
  | 
__tag__:__instance_name__  | 任务实例名,由Project ID与Schedule ID组成。 每个智能巡检任务对应后台服务端的实例名。  | 
__tag__:__job_name__  | 任务名,在同一Project下唯一。  | 
__tag__:__model_name__  | 模型名。任务中的每个实体都会单独创建一个模型进行智能巡检,每一个模型名对应一个时序实体。  | 
__tag__:__region__  | 任务所在的地域。  | 
__tag__:__schedule_id__  | 任务实例ID。 每个任务对应后台服务端的实例ID。  | 
智能巡检(模型训练)
不同的__tag__:__data_type__字段值,代表不同类型的日志。
任务运行中的统计数据
当您的模型训练任务结果数据中的__tag__:__data_type__字段值为job_statistic时,表示该数据为模型训练任务运行中的统计数据。
字段名称  | 说明  | 
meta  | 模型训练任务数据源所在的Project、Logstore信息。JSON数据格式。  | 
project_name  | 模型训练任务数据源所在的Project。  | 
logstore_name  | 模型训练任务数据源所在的Logstore。  | 
result  | 结果内容。JSON数据格式。  | 
event_msg  | 模型训练任务在该时间点的进度信息。  | 
occ_time  | 模型训练任务进度对应的时间戳。  | 
tips  | 模型训练任务进度的简介信息,例如保存模型完成。  | 
模型训练任务的检测结果
当您的模型训练任务结果数据中的__tag__:__data_type__字段值为job_statistic时,表示该数据为模型训练任务的检测结果。
字段名称  | 说明  | 
meta  | 模型训练任务数据源所在的Project、Logstore信息。JSON数据格式。  | 
project_name  | 模型训练任务数据源所在的Project。  | 
logstore_name  | 模型训练任务数据源所在的Logstore。  | 
result  | 结果内容。JSON数据格式。  | 
dim_name  | 该实体的某个特征名称。  | 
score  | 在某个时间点,该实体的某个特征的异常分数。  | 
value  | 在某个时间点,该实体的某个特征值大小。  | 
is_train_step  | 该实体下该点是否属于训练集。  | 
验证集的结果数据
当您的模型训练任务结果数据中的__tag__:__data_type__字段值为eval_report时,表示该数据为任务运行结束后各实体验证集的结果数据。
字段名称  | 说明  | 
entity  | 标识模型所在的实体信息。键值对格式。  | 
meta  | 模型训练任务数据源所在的Project、Logstore信息。JSON数据格式。  | 
project_name  | 标识模型训练任务的数据所在Project名称。  | 
logstore_name  | 标识模型训练任务的数据所在Logstore名称。  | 
result  | 结果内容。JSON数据格式。  | 
evaluation_metrics.auc  | 该实体训练的监督模型所计算的验证集auc值。  | 
evaluation_metrics.macro_f1  | 该实体训练的监督模型所计算的验证集macro f1 score值。  | 
evaluation_metrics.precision  | 该实体训练的监督模型所计算的验证集precision值。  | 
evaluation_metrics.recall  | 该实体训练的监督模型所计算的验证集recall值。  | 
time_config.training_start_time  | 该实体下模型训练的开始时间,单位:秒。  | 
time_config.training_stop_time  | 该实体下模型训练的结束时间,单位:秒。  | 
time_config.validation_end_time  | 该实体下模型验证的结束时间,单位:秒。  | 
time_config.predict_time  | 该实体下模型验证的时间,单位:秒。  | 
time_config.train_time  | 该实体下模型训练的时间,单位:秒。  | 
statistic.train_data_meta.train_anomaly_num  | 该实体下训练集的异常点个数。  | 
statistic.train_data_meta.train_data_length  | 该实体下训练集的长度。  | 
statistic.evaluation_data_meta.evaluation_anomaly_num  | 该实体下验证集的异常点个数。  | 
statistic.evaluation_data_meta.evaluation_data_length  | 该实体下验证集的长度。  | 
智能巡检(实时巡检)
不同的__tag__:__data_type__字段值,代表不同类型的日志。
任务在运行中的统计数据
当您的实时巡检任务结果数据中的__tag__:__data_type__字段值为job_statistic时,表示该数据为实时巡检任务在运行中的统计数据。
{
  "__tag__:__job_name__": "etl-1637133966-398245",
  "__tag__:__region__": "chengdu",
  "__tag__:__data_type__": "job_statistic",
  "__tag__:__apply_time__": "1638415928",
  "__tag__:__instance_name__": "29030-2457fbbd724de9421da8c73d37debcdd",
  "result": {
    "maxEntity": {
      "host": "machine_001",
      "ip": "192.0.2.1"
    },
    "maxTime": 1638415994,
    "minEntity": {
      "host": "machine_001",
      "ip": "192.0.2.1"
    },
    "minTime": 1638415994,
    "nTotalEntity": 1
  }
}字段名称  | 说明  | 
result  | 结果项。JSON类型。  | 
maxEntity  | 距离当前数据消费最近时间点的实体信息。  | 
maxTime  | 距离当前数据消费最近实体的时间点。  | 
nTotalEntity  | 当前任务中被检测的实体数量。  | 
实体巡检进度的输出数据
当您的实时巡检任务结果数据中的__tag__:__data_type__字段值为job_progress时,表示该数据为实体巡检进度的输出数据。实体巡检进度的输出数据可协助您判断是否出现了一个新实体、实体中是否已没有数据等问题。
{
  "__tag__:__job_name__": "etl-1637133966-398245",
  "__tag__:__region__": "chengdu",
  "__tag__:__data_type__": "job_progress",
  "__tag__:__apply_time__": "1638415883",
  "__tag__:__instance_name__": "29030-2457fbbd724de9421da8c73d37debcdd",
  "result": {
    "new_entity": false,
    "recently_arrived_time": 1638415994
  },
  "meta": {
    "logstore_name": "machine_monitor",
    "project_name": "sls-ml-demo"
  },
  "entity": {
    "host": "machine_001",
    "ip": "192.0.2.1"
  }
}字段名称  | 说明  | 
meta  | 当前任务所在的Project、Logstore信息,JSON数据类型。  | 
project_name  | 实时巡检任务数据源所在的Project。  | 
logstore_name  | 实时巡检任务数据源所在的Logstore。  | 
result  | 结果项,JSON数据类型。  | 
new_entity  | 判断是否为新实体。  | 
recently_arrived_time  | 当前实体(entity字段)中最后一条有效数据的时间戳。  | 
entity  | 实体信息,字典类型。  | 
异常结果数据
当您的实时巡检任务结果数据中的__tag__:__data_type__字段值为anomaly_detect时,表示该数据为异常结果数据。
{
  "__time__": 1638416474,
  "__tag__:__batch_id__": "a5870979816fc507cbeebc6b1133af0a",
  "__tag__:__schedule_id__": "2457fbbd724de9421da8c73d37debcdd",
  "__tag__:__apply_time__": "1638416291",
  "__tag__:__job_name__": "etl-1637133966-398245",
  "__tag__:__model_name__": "d52b59a6bfb3adcf2ee62a5064c45397",
  "__tag__:__data_type__": "anomaly_detect",
  "__tag__:__region__": "chengdu",
  "__tag__:__instance_name__": "29030-2457fbbd724de9421da8c73d37debcdd",
  "result": {
    "anomaly_type": "None",
    "dim_name": "value",
    "is_anomaly": false,
    "score": 0,
    "value": "0.780000"
  },
  "meta": {
    "logstore_name": "machine_monitor",
    "project_name": "sls-ml-demo"
  },
  "entity": {
    "host": "machine_001",
    "ip": "192.0.2.1"
  }
}字段名称  | 说明  | 
entity  | 实体项,JSON类型,来源于原始数据。用于标明一个监控实体的具体项。  | 
meta  | 配置项,JSON类型,来源于智能巡检任务的配置信息。  | 
project_name  | Logstore所在的Project。  | 
logstore_name  | 数据源所在的Logstore。  | 
result  | 结果项。输出每一个数据点的智能巡检结果。  | 
dim_name  | 数值关键字,来源于原始数据。 无论是单维时序还是多维时序,巡检输出的每个result都是指单维时序单个值的巡检结果。  | 
value  | 数值关键字的取值,来源于原始数据。用于标明原始数据中某个关键词的取值,即result.dim_name中关键字的取值。  | 
score  | 异常分数,模型对异常程度的量化结果。取值范围[0,1],分数越高,异常程度越高。  | 
is_anomaly  | 是否异常判断。 
  | 
anomaly_type  | 异常类型。模型对于异常现场的初步类型判别,包括5种类型:突刺、漂移、抖动、缺失、过阈值。更多信息,请参见异常类型说明。  | 
文本分析
文本分析结果中的通用字段说明如下表所示(通用的tag字段除外)。
字段名称  | 说明  | 
algo_type  | 算法类型。  | 
result_type  | 结果类型,JSON类型。  | 
result  | 结果内容,JSON类型。 result字段的值取决于result_type字段。  | 
meta  | 元数据信息,JSON类型。  | 
project_name  | Logstore所在的Project。  | 
logstore_name  | 数据源所在的Logstore。  | 
topic  | 数据源的日志主题。  | 
query  | 拉取数据的方式,例如消费组方式。  | 
win_size  | 时间窗口长度。  | 
version  | 算法的版本号。  | 
其中,result字段的值取决于result_type字段。result字段的详细说明如下所示。
result_type字段为cluster_info
当result_type字段为cluster_info时,result字段中包含日志类别信息,内容如下:
"result": {
  "cluster_id": "xxxx",
  "cluster_pattern": "xxxx",
  "cluster_active_age": 120,
  "cluster_alive_age": 150,
  "anomaly_score": 0.1,
  "count": 2,
  "source": []
}字段名称  | 说明  | 
result.cluster_id  | 日志类别ID。  | 
result.cluster_pattern  | 日志类别模板。  | 
result.cluster_active_age  | 日志类别活跃的时间窗口数量。 在时间窗口中有该日志类别的日志出现表示该日志类别在该窗口中活跃。  | 
result.cluster_alive_age  | 日志类别从第一次出现到目前为止的时间窗口数量。  | 
result.anomaly_score  | 日志类别的异常分数。  | 
result.count  | 日志类别包含的日志数量。  | 
result.source  | 日志模板中变量部分可能的取值。  | 
result_type字段为group_info
当result_type字段为group_info时,result字段中包含日志类别组的信息,内容如下:
"result": {
  "group_anomaly_score": 0.1,
  "group_age": 10,
  "group_n_event": 190,
  "group_n_cluster": 10
}字段名称  | 说明  | 
result.group_anomaly_score  | 日志类别群组的异常分数。  | 
result.group_age  | 当前是第几个时间窗口。  | 
result.group_n_event  | 群组中(当前时间窗口中)所有日志的数量。  | 
result.group_n_cluster  | 群组中(当前时间窗口中)所有日志类别的数量。  | 
result_type字段为anomaly_info
当result_type字段为anomaly_info时,result字段中包含异常事件的信息,内容如下:
"result": {
  "anomaly_id": "xxxx",
  "anomaly_type": "xxxx",
  "value": 0,
  "anomaly_score": 0.0,
  "expect_lower": 0.0,
  "expect_upper": 0.0
}字段名称  | 说明  | 
result.anomaly_id  | 异常的日志类别ID。  | 
result.anomaly_type  | 异常类型。  | 
result.value  | 事件取值。 result.anomaly_type字段值不同,result.value字段代表的含义不同。  | 
result.anomaly_score  | 异常分数。  | 
result.expect_lower  | 您所期望的事件取值(result.value字段)的下边界。  | 
result.expect_upper  | 您所期望的事件取值(result.value字段)的上边界。  | 
时序预测
时序预测结果中的通用字段说明如下表所示(通用的tag字段除外)。
字段  | 说明  | 
algo_type  | 算法类型。取值为series_prediction。  | 
result_type  | 结果类型,JSON类型。 预测成功时,取值为prediction_ok;预测异常时,取值为prediction_error。  | 
result  | 结果内容,JSON类型。 result字段的值取决于result_type字段。  | 
meta  | 元数据信息,JSON类型。  | 
project_name  | Logstore所在的Project。  | 
logstore_name  | 数据源所在的Logstore。  | 
topic  | 数据源的日志主题。  | 
version  | 算法的版本号。  | 
其中,result字段的值取决于result_type字段。result字段的详细说明如下所示。
result_type字段为prediction_ok
当result_type字段为prediction_ok时,表示预测成功,每条日志中包含了对时序中一个时序点的预测结果。对应的result字段结构如下:
{
  "entity": "xxxx",
  "metric": "xxxx",
  "time": xxxx,
  "value": "xxxx",
  "expect_value": "xxxx",
  "expect_lower": "xxxx",
  "expect_upper": "xxxx"
}字段  | 说明  | 
result.entity  | 预测时序中的实体ID。  | 
result.metric  | 预测时序中的指标。  | 
result.time  | 预测时序中当前时序点的时间戳。  | 
result.value  | 预测时序中当前时序点的实际值。  | 
result.expect_value  | 预测时序中当前时序点的预测值。  | 
result.expect_lower  | 预测时序中当前时序点的预测下界。  | 
result.expect_upper  | 预测时序中当前时序点的预测上界。  | 
result_type字段值为prediction_error
当result_type字段为prediction_error时(此时__tag__:__data_type__ 字段值为job_error_message),表示在预测过程中出现异常,对应的result字段结构如下:
{
  "entity": "xxxx",
  "metric": "xxxx",
  "error_type": "xxxx",
  "error_msg": "xxxx"
}字段  | 说明  | 
result.entity  | 异常的预测时序中的实体ID。  | 
result.metric  | 异常的预测时序中的指标。  | 
result.error_type  | 异常类型。  | 
result.error_msg  | 异常详情。  | 
下探分析
下探分析结果中的通用字段说明如下表所示(通用的tag字段除外)。
字段  | 说明  | 
result  | 结果内容,JSON 类型。 result字段的值取决于__tag__:__data_type__字段。  | 
不同的__tag__:__data_type__字段值,代表不同类型的日志。
下探分析任务的进度信息
当__tag__:__data_type__的值为job_progress时,result字段中包含下探分析任务的进度信息。
字段  | 说明  | 
result.from_ts  | 任务的开始时间。  | 
result.to_ts  | 任务的结束时间。其中,inf表示任务持续运行。  | 
result.progress  | 任务的当前进度。  | 
result.message  | 任务当前进度的状态信息。  | 
下探分析任务的状态信息
当__tag__:__data_type__字段的值为job_status时,result字段中包含下探分析任务的状态信息。
字段  | 说明  | 
result.from_ts  | 任务的开始时间。  | 
result.to_ts  | 任务的结束时间。其中,inf表示任务持续运行。  | 
result.status  | 任务的状态。  | 
result.message  | 任务的状态信息。  | 
下探分析检测到的根因信息
当__tag__:__data_type__字段的值为root_cause时,result字段中包含下探分析检测到的根因信息。
字段  | 说明  | 
result.status  | 是否找到事件根因,具体说明如下: 
  | 
result.snapshot_time  | 下探分析时使用哪个时间点的多维时序数据。  | 
result.elapsed_time  | 对事件进行根因分析所用的时间。  | 
result.event_info  | 触发根因分析的事件。  | 
result.root_cause  | 当result.status为success时,表示根因分析结果。  | 
result.reason  | 当result.status为fail时,表示未找到根因分析结果的原因。  |