O Alibaba Cloud Simple Log Service (SLS) fornece análise inteligente para dados como logs, métricas e traces. Você pode chamar modelos para obter resultados de análise diretamente. Seus principais recursos incluem Reconhecimento de Entidades Nomeadas (NER) para dados de log, detecção de anomalias para dados de séries temporais e análise de causa raiz para spans de trace de alta latência.
Descrição da operação
Este endpoint de API está disponível apenas nas regiões China (Xangai) e Cingapura. As seguintes permissões básicas são necessárias:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:Get*"
],
"Resource": [
"acs:log:*:*:mlservice/sls_builtin_*"
],
"Effect": "Allow"
}
]
}
Experimente agora
Testar
Autorização RAM
Sintaxe da solicitação
POST /ml/service/{serviceName}/analysis HTTP/1.1
Parâmetros de caminho
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| serviceName |
string |
Não |
O nome do serviço. Valores válidos:
|
sls_builtin_service_log_struct |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| allowBuiltin |
boolean |
Não |
Valores válidos:
|
true |
| version |
string |
Não |
O número da versão do algoritmo. Diferentes versões correspondem a diferentes algoritmos. |
v1 |
| body | MLServiceAnalysisParam |
Não |
A estrutura da solicitação. Valores válidos:
|
Os parâmetros da solicitação variam dependendo do serviço. Os detalhes são os seguintes:
Reconhecimento de Entidades Nomeadas para logs (sls_builtin_service_log_struct)
Detalhes de body.parameter
{
"is_struct": "true",
"use_gpu": "true/false",
"max_fields": "1"
}
-
Se is_struct for true, o log está no formato JSON. Atualmente, você só pode definir este parâmetro como true.
-
use_gpu especifica se devem ser usados recursos de GPU.
-
max_fields especifica o número máximo de campos a serem analisados quando o log está no formato JSON. Por padrão, um campo é analisado.
Detalhes de body.input
[
{
"{column_name}": "{column_value}"
}
]
A entrada é um array de objetos JSON, onde:
-
column_name é o nome de um campo no log formatado em JSON.
-
column_value é o valor do campo no log formatado em JSON.
Detecção de anomalias em séries temporais (sls_builtin_service_metric_anomaly)
Detalhes de body.parameter
{
"isOrdered": "true/false",
"keys": "[]",
"timeColumnName": "",
"analysisColumnNames": "[]",
"interval": "-1"
}
-
isOrdered especifica se os dados de entrada estão ordenados. Defina este parâmetro como true se a série temporal de entrada estiver classificada em ordem crescente por tempo. Caso contrário, defina como false.
-
interval especifica o intervalo da série temporal em segundos. Por exemplo, se a série tiver um ponto de dados por minuto, defina este parâmetro como 60. Se não tiver certeza do intervalo, defina este parâmetro como -1.
-
timeColumnName especifica o nome da dimensão de tempo na série de entrada.
-
analysisColumnNames especifica os nomes das dimensões de recursos numéricos a serem analisados na série de entrada. Este é um array que deve ser serializado em uma string.
-
keys especifica os nomes de todas as colunas nos dados de entrada. Este é um array que deve ser serializado em uma string.
Detalhes de body.input
[
{
"{column_name}": "{column_value}"
}
]
A entrada é um array, onde:
-
column_name é o nome de um campo na série.
-
column_value é o valor do campo. Se {column_name} for igual a {timeColumnName}, o valor será um carimbo de data/hora UNIX em segundos.
Detecção de traces de alta latência (sls_builtin_service_trace_rca)
Detalhes de body.parameter
{
"project": "",
"logstore": "",
"endpoint": "",
"role_arn": ""
}
-
project especifica o nome do projeto no SLS onde os dados de trace são armazenados.
-
logstore especifica o nome do Logstore no SLS onde os dados de trace são armazenados.
-
endpoint especifica o endpoint da região onde o projeto está localizado. Você deve usar um endpoint de Internet. Endpoints internos na mesma região não podem ser acessados.
-
role_arn especifica o ARN da função que recebeu permissões para o recurso. Você deve usar o ARN de um ETLRole ou AuditRole.
Detalhes de body.input
[
{
"service": "",
"name": "",
"from_ts_sec": "",
"to_ts_sec": "",
"slo_ts_micro": "",
"batch_id": "",
"trace_ids": "[]"
}
]
A entrada é um array com comprimento de 1. Os parâmetros são descritos da seguinte forma:
-
service especifica o nome do serviço para um ou mais TraceIDs a serem diagnosticados. Você pode obter isso do Logstore.
-
name especifica o nome do serviço para um ou mais TraceIDs a serem diagnosticados. Você pode obter isso do Logstore.
-
from_ts_sec especifica o carimbo de data/hora inicial para a análise, em segundos.
-
to_ts_sec especifica o carimbo de data/hora final para a análise, em segundos.
-
batch_id especifica o nome para o lote atual de TraceIDs a serem analisados.
-
trace_ids especifica a lista de trace_ids para a solicitação atual. Esta deve ser uma string serializada em JSON.
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
A estrutura retornada. Valores válidos:
|
||
| status |
object |
O status da tarefa. Valores válidos:
|
|
|
string |
Por padrão, este parâmetro está vazio e as tarefas em todos os status são retornadas. Os status suportados são success, fail e running. Valores válidos:
|
200 |
|
| data |
array<object> |
Os dados retornados. |
|
|
object |
A estrutura do conjunto de dados. |
||
|
string |
O resultado retornado. |
{'marker': ''} |
O valor retornado varia dependendo do serviço. Os detalhes são os seguintes:
Reconhecimento de Entidades Nomeadas para logs (sls_builtin_service_log_struct)
Detalhes de data
[
{
"{column_name}": "{column_value}"
}
]
Cada objeto JSON na saída corresponde a um objeto JSON no log de entrada, onde:
-
column_name é o nome de um campo analisado no log formatado em JSON. No máximo, max_fields campos são analisados.
-
column_value é o valor do campo analisado. O resultado do NER no valor do campo é delimitado pelas tags <ml_ner_${ner_type}></ml_ner_${ner_type}>, onde ${ner_type} é o tipo específico de NER.
Detecção de anomalias em séries temporais (sls_builtin_service_metric_anomaly)
Detalhes de data
[
{
"start": "",
"end": "",
"label": ""
}
]
-
start especifica a hora de início do intervalo de anomalia detectado.
-
end especifica a hora de término do intervalo de anomalia detectado.
-
label especifica o tipo de anomalia detectada no intervalo atual.
-
SPIKE_UP_TYPE
-
SPIKE_DOWN_TYPE
-
TREND_UP_TYPE
-
TREND_DOWN_TYPE
-
MEANSHIFT_UPWARD_TYPE
-
MEANSHIFT_DOWNWARD_TYPE
-
Detecção de traces de alta latência (sls_builtin_service_trace_rca)
Detalhes de data
[
{
"traceID": "",
"service": "",
"name": "",
"rootCauses": "[{}]"
}
]
-
traceID especifica o ID do trace que foi analisado.
-
service especifica o nome do serviço do nó raiz do trace.
-
name especifica o nome do nó raiz do trace.
-
rootCauses especifica a lista de spans que causaram a alta latência no trace. Esta é uma string serializada. Quando desserializada, a estrutura deste campo é a seguinte:
[
{
"spanID": "",
"service": "",
"name": "",
"host": "xxxx",
"predicateDuration": 10
}
]
Exemplos
Resposta de sucesso
JSON formato
{
"status": {
"key": "200"
},
"data": [
{
"key": "{'marker': ''}"
}
]
}
Códigos de erro
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.