在阿里雲Log Service平台上,提供了基礎資料(Log、Metric、Trace)的智能分析能力。使用者調用相關模型,可以直接得到模型的分析結果。目前主要涉及:日誌資料的NER任務、時間序列資料的異常檢測、高延時鏈路資料的Span根因定位。
介面說明
該介面服務地址只能是華東 2(上海)、新加坡。 需要具備的基本許可權如下:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:Get*"
],
"Resource": [
"acs:log:*:*:mlservice/sls_builtin_*"
],
"Effect": "Allow"
}
]
}
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
調試
授權資訊
請求文法
POST /ml/service/{serviceName}/analysis HTTP/1.1
請求參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| serviceName |
string |
否 |
服務名。 枚舉值:
|
sls_builtin_service_log_struct |
| allowBuiltin |
boolean |
否 |
枚舉值:
|
true |
| version |
string |
否 |
設定演算法的版本號碼,不同的版本對應不同演算法 |
v1 |
| body | MLServiceAnalysisParam |
否 |
請求結構體。 枚舉值:
|
在不同的情況,對於請求中的參數會不一樣,具體如下:
日誌內容實體識別(sls_builtin_service_log_struct)
body.parameter 相關的內容
{
"is_struct": "true",
"use_gpu": "true/false",
"max_fields": "1"
}
is_struct 為 true 時,表示日誌格式為 JSON 結構。目前只支援設定為 true
use_gpu 表示是否使用 gpu 資源
max_fields 表示當日誌格式為 JSON 結構時,最多分析其中的幾個欄位,預設只分析一個欄位
body.input 相關的內容
[
{
"{column_name}": "{column_value}"
}
]
輸入的內容是一個是 JSON 結構數組,其中
column_name 表示 JSON 結構的日誌的某個欄位名稱
column_value 表示 JSON 結構的日誌的某個欄位的值
時間序列異常檢測(sls_builtin_service_metric_anomaly)
body.parameter 的相關內容
{
"isOrdered": "true/false",
"keys": "[]",
"timeColumnName": "",
"analysisColumnNames": "[]",
"interval": "-1"
}
isOrdered 表示輸入的資料是否是有序的,如果輸入的序列是按照時間維度從小到大,升序排列的,設定為 true,否則設定為 false
interval 表示時間序列的間隔大小,按照秒來描述。比如:序列是每分鐘一個點,則設定為 60;如果不確定序列的間隔,則設定為 -1
timeColumnName 表示輸入的序列中,時間維度的名稱
analysisColumnNames 表示輸入的序列中,帶分析的數值特徵維度名稱,使用數組來表示,且需要將這個數組序列化成字串
keys 表示輸入的資料的各列的名稱,使用數組表示,且需要將這個數組序列化成字串
body.input 的相關內容
[
{
"{column_name}": "{column_value}"
}
]
輸入的內容是一個是數組,其中
column_name 表示序列中某個欄位的名稱
column_value 表示序列中某個欄位的值的內容。當 {column_name} 等於 {timeColumnName} 時,對應的值表示的是時間大小,使用 unixtime 時間戳記來表示,單位是秒
高延時鏈路資料檢測(sls_builtin_service_trace_rca)
body.parameter 的相關內容
{
"project": "",
"logstore": "",
"endpoint": "",
"role_arn": ""
}
project 表示待分析的 Trace 資料存放區在 SLS 中的 Project 的名稱
logstore 表示待分析的 Trace 資料存放區在 SLS 中的 Logstore 的名稱
endpoint 表示 project 所在地區的 endpoint 資訊,這裡必須使用公網網域名稱,內網網域名稱無法訪問
role_arn 表示已經對該資源進行授權的角色資訊,這裡務必使用 ETLRole 或者 AuditRole 的 arn 資訊
body.input 的相關內容
[
{
"service": "",
"name": "",
"from_ts_sec": "",
"to_ts_sec": "",
"slo_ts_micro": "",
"batch_id": "",
"trace_ids": "[]"
}
]
輸入的內容是一個是數組,切輸入的數組的長度是 1,其中對應的參數的含義解釋如下:
service 表示某個或者某一批待診斷的 TraceID 的服務名稱,可以從 logstore 中獲得
name 表示某個或者某一批待診斷的 TraceID 的服務名稱,可以從 logstore 中獲得
from_ts_sec 表示待分析的開始時間戳,單位是秒
to_ts_sec 表示待分析的結束時間戳記,單位是秒
batch_id 表示當前待分析的一批 TraceID 的名稱
trace_ids 表示當前請求中對應的 trace_id 的列表,使用 JSON 序列化成字串
返回參數
|
名稱 |
類型 |
描述 |
樣本值 |
|
object |
返回的結構體 枚舉值:
|
||
| status |
object |
任務的狀態 枚舉值:
|
|
|
string |
預設為空白,表示返回所有狀態的任務,支援 success、fail 和 running 狀態。 枚舉值:
|
200 |
|
| data |
array<object> |
返回的資料。 |
|
|
object |
資料集結構體 |
||
|
string |
返回結果。 |
{'marker': ''} |
在不同的情況,對於請求的傳回值會不一樣,具體如下:
日誌內容實體識別(sls_builtin_service_log_struct)
data 相關的內容
[
{
"{column_name}": "{column_value}"
}
]
輸出內容中每一個 JSON 結構與輸入的 JSON 結構日誌相對應,其中
column_name 表示 JSON 結構的日誌的被分析了的某個欄位名稱,最多有 max_fields 個欄位被分析
column_value 表示 JSON 結構的日誌的被分析了的某個欄位的值,欄位值中的 NER 結果被標籤 <ml_ner_${ner_type}></ml_ner_${ner_type}> 包裹,其中 ${ner_type} 是具體的 NER 類型
時間序列異常檢測(sls_builtin_service_metric_anomaly)
data 的相關內容
[
{
"start": "",
"end": "",
"label": ""
}
]
start 表示檢測出來的異常區間的開始時間
end 表示檢測出來的異常區間的結束時間
- label 表示檢測出來的當前區間的異常類型
SPIKE_UP_TYPE
SPIKE_DOWN_TYPE
TREND_UP_TYPE
TREND_DOWN_TYPE
MEANSHIFT_UPWARD_TYPE
MEANSHIFT_DOWNWARD_TYPE
高延時鏈路資料檢測(sls_builtin_service_trace_rca)
data 的相關內容
[
{
"traceID": "",
"service": "",
"name": "",
"rootCauses": "[{}]"
}
]
traceID 表示待檢測的 traceID 資訊
service 表示當前這個 Trace 的根節點的 service 名稱
name 表示當前這個 Trace 的根節點的 name 名稱
rootCauses 表示當前這個高延時請求的 Trace 中,導致高延時的 span 的列表資訊,使用序列化後的字串來表示。該欄位的值還原序列化後的結構如下:
[
{
"spanID": "",
"service": "",
"name": "",
"host": "xxxx",
"predicateDuration": 10
}
]
樣本
正常返回樣本
JSON格式
{
"status": {
"key": "200"
},
"data": [
{
"key": "{'marker': ''}"
}
]
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。