GetMLServiceResults - 获取指定场景任务的算法分析结果

在阿里云日志服务平台上,提供了基础数据(Log、Metric、Trace)的智能分析能力。用户调用相关模型,可以直接得到模型的分析结果。目前主要涉及:日志数据的NER任务、时间序列数据的异常检测、高延时链路数据的Span根因定位。

接口说明

需要具备的基本权限如下

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "log:Get*"
            ],
            "Resource": [
                "acs:log:*:*:/ml/service/sls_builtin_service_log_struct/",
                "acs:log:*:*:/ml/service/sls_builtin_service_metric_anomaly/",
                "acs:log:*:*:/ml/service/sls_builtin_service_trace_rca/"
            ],
            "Effect": "Allow"
        }
    ]
}

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

当前API暂无授权信息透出。

请求语法

POST /ml/service/{serviceName}/analysis HTTP/1.1

请求参数

名称类型必填描述示例值
serviceNamestring

服务名。

枚举值:
  • sls_builtin_service_trace_rca高延时trace请求链路分析的服务名
  • sls_builtin_service_log_structLogNER的服务名
  • sls_builtin_service_metric_anomaly单维度时间序列异常检测的服务名
sls_builtin_service_log_struct
allowBuiltinboolean
  • true 表示请求允许使用系统内置的服务
  • false 表示请求不允许使用系统内置的服务
枚举值:
  • true允许使用系统内置的服务
  • false不允许使用系统内置的服务名
true
bodyMLServiceAnalysisParam

请求结构体。

枚举值:
  • others根据不同的serviceName有不一样的说明

在不同的情况,对于请求中的参数会不一样,具体如下:

日志内容实体识别(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 序列化成字符串

返回参数

名称类型描述示例值
headersobject
Serverstring

服务器名称。

枚举值:
nginx
Content-Typestring

返回的响应体的内容格式。

枚举值:
application/json
Content-Lengthstring

响应内容长度。

枚举值:
0
Connectionstring

是否长链接。取值包括: close:不是长链接,则每个 HTTP 请求都会重新建立 TCP 连接。 keep-alive:长链接,TCP 连接建立后保持连接状态,节省连接所需时间和带宽。

枚举值:
close
Datestring

返回响应的时间。

枚举值:
Sun, 27 May 2018 08:25:04 GMT
x-log-requestidstring

服务端产生的标识,该请求的唯一 ID。

枚举值:
5B0A6B60BB6EE39764D458B5
object

返回的结构体

枚举值:
statusobject

任务的状态

枚举值:
string

默认为空,表示返回所有状态的任务,支持 success、fail 和 running 状态。

枚举值:
200
dataarray<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': ''}"
    }
  ]
}

错误码

访问错误中心查看更多错误码。