结果字段说明

智能异常分析的结果数据保存在名为internal-ml-log的Logstore中。本文介绍结果数据中的字段详情。

通用的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__

数据类型。

  • job_statistic:任务运行中的统计数据。

  • job_progress:实体巡检进度的输出数据。

  • anomaly_detect:异常结果数据。

  • detection_process:模型训练任务的检测结果数据。

  • eval_report:模型训练任务运行结束后,各个实体验证集的结果数据。

__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

是否异常判断。

  • 如果result.score大于0.5,则判断为异常(true)。

  • 如果result.score大于0.75,则判断为异常(true),并且触发告警。

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

是否找到事件根因,具体说明如下:

  • success:找到。

  • fail:未找到。

result.snapshot_time

下探分析时使用哪个时间点的多维时序数据。

result.elapsed_time

对事件进行根因分析所用的时间。

result.event_info

触发根因分析的事件。

result.root_cause

result.status为success时,表示根因分析结果。

result.reason

result.status为fail时,表示未找到根因分析结果的原因。