智能異常分析的結果資料儲存在名為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__ | 資料類型。
|
__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時,表示未找到根因分析結果的原因。 |