智能异常分析(智能巡检和文本分析)的结果数据保存在名为internal-ml-log的Logstore中。本文对结果数据中的字段进行说明。

通用的tag结构说明

各类作业的结果数据中都包含如下通用字段。

__tag__:__apply_time__:1638414250
__tag__:__batch_id__:a83f2e6f7a20442780ab11c9c2e5b0fd
__tag__:__data_type__:anomaly_detect
__tag__:__instance_name__:29030-2457fbbd724de9421da8c73d37debcdd
__tag__:__job_name__:etl-1637133966-398245
__tag__:__model_name__:d52b59a6bfb3adcf2ee62a5064c45397
__tag__:__region__:chengdu
__tag__:__schedule_id__:2457fbbd724de9421da8c73d37debcdd
字段名称 说明
__tag__:__apply_time__ 模型对批次数据进行巡检的时间,单位:秒。
__tag__:__batch_id__ 批次ID。每次算法执行所处理的一批数据,被标记为同一个批次ID。
__tag__:__data_type__ 数据类型。
  • job_statistic:任务在运行中的统计数据。
  • job_progress:实体巡检进度的输出数据。
  • anomaly_detect:异常结果数据。
__tag__:__instance_name__ 作业实例名,由Project ID与Schedule ID组成。

每个智能巡检作业对应后台服务端的实例名。

__tag__:__job_name__ 作业名,在同一Project下唯一。
__tag__:__model_name__ 模型名。作业中的每个实体都会单独创建一个模型进行智能巡检,每一个模型名对应一个时序实体。
__tag__:__region__ 作业所在的地域。
__tag__:__schedule_id__ 作业实例ID。

每个作业对应后台服务端的实例ID。

智能巡检

任务在运行中的统计数据

当日志中包含__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
  }
}
字段名称 说明
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信息。
entity 实体信息,字典类型。
result 任务的描述信息。
  • new_entity:是否为新实体。
  • recently_arrived_time:当前实体(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类型,来源于智能巡检作业的配置信息。
result 结果项。输出每一个数据点的智能巡检结果。
result.dim_name 数值关键字,来源于原始数据。

无论是单维时序还是多维时序,巡检输出的每个result都是指单维时序单个值的巡检结果。

result.value 数值关键字的取值,来源于原始数据。用于标明原始数据中某个关键词的取值,即result.dim_name中关键字的取值。
result.score 异常分数,模型对异常程度的量化结果。取值范围[0,1],分数越高,异常程度越高。
result.is_anomaly 是否异常判断。
  • 如果result.score大于0.5,则判断为异常(true)。
  • 如果result.score大于0.75,则判断为异常(true),并且触发告警。
result.anomaly_type 异常类型。模型对于异常现场的初步类型判别,包括5种类型:突刺、漂移、抖动、缺失、过阈值。更多信息,请参见异常类型说明

文本分析

文本分析结果中的通用字段说明如下表所示(通用的tag字段除外)。

字段名称 说明
algo_type 算法类型。
result_type 结果类型,JSON类型。
result 结果内容,JSON类型。

result字段的值取决于result_type字段。

meta 元数据信息,JSON类型。
version 算法的版本号。
  • meta字段
    "meta": {
      "project_name": "xxxx",
      "logstore_name": "xxxx",
      "topic": "xxxx",
      "query": "xxxx",
      "win_size": 900
    }
    字段名称 说明
    meta.project_name Logstore所在的Project。
    meta.logstore_name 数据源所在的Logstore。
    meta.topic 数据源的日志主题。
    meta.query 拉取数据的方式,例如消费组方式。
    meta.win_size 时间窗口长度。
  • result字段

    result字段的值取决于result_type字段。

    • 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字段中包含日志类别组的信息,内容如下:
      "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字段中包含异常事件的信息,内容如下:
      "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类型。
version 算法的版本号。
  • meta字段
    {
      "project_name": "xxxx",
      "logstore_name": "xxxx",
      "topic": "xxxx"
    }
    字段 说明
    meta.project_name Logstore所在的Project。
    meta.logstore_name 数据源所在的Logstore。
    meta.topic 数据源的日志主题。
  • 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时(此时__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 异常详情。