O Simple Log Service oferece ferramentas avançadas de alerta e análise para diagnosticar problemas e identificar subdimensões anômalas. Se ocorrer uma anomalia em uma métrica de série temporal, use uma função de análise de causa raiz para determinar quais atributos de dimensão causam o desvio.
rca_kpi_search
Sintaxe
select rca_kpi_search(varchar_array, name_array, real, forecast, level)
A tabela a seguir descreve os parâmetros.
|
Parâmetro |
Descrição |
Valor |
|
varchar_array |
Atributos da dimensão. |
Array. Exemplo: |
|
name_array |
Nomes das dimensões. |
Array. Exemplo: |
|
real |
Valor real da combinação de atributos correspondente. |
Tipo: double. Aceita todos os números reais. |
|
forecast |
Valor previsto da combinação de atributos correspondente. |
Tipo: double. Aceita todos os números reais. |
|
level |
Quantidade de atributos de dimensão a incluir no conjunto de causas raiz de saída. Defina este parâmetro como 0 para retornar todos os conjuntos de causas raiz identificados. |
Tipo: long. Valores válidos: 0 ≤ level ≤ Número de dimensões a analisar (comprimento de |
Exemplo
-
Consulta e análise:
Use uma subconsulta para organizar os valores reais e previstos de cada atributo detalhado. Em seguida, chame a função
rca_kpi_searchpara analisar a causa raiz da anomalia.* not Status:200 | select rca_kpi_search( array[ ProjectName, LogStore, UserAgent, Method ], array[ 'ProjectName', 'LogStore', 'UserAgent', 'Method' ], real, forecast, 1) from ( select ProjectName, LogStore, UserAgent, Method, sum(case when time < 1552436040 then real else 0 end) * 1.0 / sum(case when time < 1552436040 then 1 else 0 end) as forecast, sum(case when time >=1552436040 then real else 0 end) *1.0 / sum(case when time >= 1552436040 then 1 else 0 end) as real from ( select '("__time__" - ("__time__" % 60))' as time, ProjectName, LogStore, UserAgent, Method, COUNT(*) as real from log GROUP by time, ProjectName, LogStore, UserAgent, Method ) GROUP BY ProjectName, LogStore, UserAgent, Method limit 100000000) Saída: Os resultados da análise incluem um gráfico de área de série temporal e várias entradas expansíveis de conjuntos de causas raiz. A tabela do conjunto de causas raiz contém as colunas region, project, Logstore, useragent, method, rsst, change e score. Nesse contexto, rsst representa o valor estatístico da submétrica da causa raiz, enquanto score indica a pontuação de anormalidade dessa causa. Um pequeno gráfico de linha de tendência da submétrica correspondente aparece à direita para facilitar a inspeção visual das flutuações durante a anomalia.
Estrutura de saída:
{
"rcSets": [
{
"rcItems": [
{
"kpi": [{"attr": "xxx", "val": "xxx"}],
"nleaf": 100,
"change": 0.524543,
"score": 0.1454543
}
]
}
]
}
A tabela a seguir descreve os itens de exibição.
|
Parâmetro |
Descrição |
|
rcSets |
Array de conjuntos de causas raiz. |
|
rcItems |
Array de itens que compõem o conjunto de causas raiz. |
|
kpi |
Array que representa as condições de um item no conjunto de causas raiz. Cada elemento do array é um objeto em que |
|
nleaf |
Número de folhas nos dados brutos abrangidas por um item KPI no conjunto de causas raiz. Nota
Uma folha corresponde a uma entrada de log da combinação de atributos mais granular. |
|
change |
Proporção da variação anômala total atribuída às folhas deste item. |
|
score |
Pontuação de anormalidade deste item de causa raiz. O valor varia no intervalo [0, 1]. |
A saída é um objeto JSON. O código a seguir mostra um exemplo:
{
"rcSets": [
{
"rcItems": [
{
"kpi": [
{
"attr": "country",
"val": "*"
},
{
"attr": "province",
"val": "*"
},
{
"attr": "provider",
"val": "*"
},
{
"attr": "domain",
"val": "example.com"
},
{
"attr": "method",
"val": "*"
}
],
"nleaf": 119,
"change": 0.3180687806279939,
"score": 0.14436007709620113
}
]
}
]
}