在阿里云日志服务平台上,提供了基础数据(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': ''}"
    }
  ]
}错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。