在阿里云日志服务平台上,提供了基础数据(Log、Metric、Trace)的智能分析能力。用户调用相关模型,可以直接得到模型的分析结果。目前主要涉及:日志数据的NER任务、时间序列数据的异常检测、高延时链路数据的Span根因定位。
接口说明
需要具备的基本权限如下
{
"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 序列化成字符串
返回参数
名称 |
类型 |
描述 |
示例值 |
headers |
object |
||
Server |
string |
nginx |
|
Content-Type |
string |
application/json |
|
Content-Length |
string |
0 |
|
Connection |
string |
close |
|
Date |
string |
Sun, 27 May 2018 08:25:04 GMT |
|
x-log-requestid |
string |
5B0A6B60BB6EE39764D458B5 |
|
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': ''}"
}
]
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。