Simple Log Service propose des outils puissants d'alerte et d'analyse qui vous aident à diagnostiquer les problèmes et à identifier les sous-dimensions anormales. Lorsqu'une anomalie survient dans une métrique de série temporelle, utilisez une fonction d'analyse des causes racines pour déterminer les attributs de dimension à l'origine de l'écart.
rca_kpi_search
Syntaxe
select rca_kpi_search(varchar_array, name_array, real, forecast, level)
Le tableau suivant décrit les paramètres.
|
Paramètre |
Description |
Valeur |
|
varchar_array |
Les attributs de dimension. |
Tableau. Par exemple, |
|
name_array |
Les noms des dimensions. |
Tableau. Par exemple, |
|
real |
La valeur réelle pour la combinaison d'attributs correspondante. |
Type : double. Tous les nombres réels sont pris en charge. |
|
forecast |
La valeur prédite pour la combinaison d'attributs correspondante. |
Type : double. Tous les nombres réels sont pris en charge. |
|
level |
Le nombre d'attributs de dimension à inclure dans l'ensemble des causes racines en sortie. Si vous définissez ce paramètre sur 0, la fonction renvoie tous les ensembles de causes racines identifiés. |
Type : long. Valeurs valides : 0 ≤ level ≤ Le nombre de dimensions à analyser (la longueur de |
Exemple
-
Requête et analyse :
Commencez par utiliser une sous-requête pour organiser les valeurs réelles et prédites pour chaque attribut granulaire. Ensuite, appelez la fonction
rca_kpi_searchpour analyser la cause racine de l'anomalie.* 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) Sortie : Les résultats de l'analyse incluent un graphique en aires de série temporelle et plusieurs entrées d'ensembles de causes racines extensibles. Les colonnes du tableau des ensembles de causes racines comprennent region, project, Logstore, useragent, method, rsst, change et score. Dans ce contexte, rsst représente la valeur statistique de la sous-métrique de la cause racine, et score représente le score d'anomalie pour la cause racine. Un petit graphique de tendance pour la sous-métrique correspondante s'affiche à droite, ce qui vous permet d'inspecter visuellement les fluctuations pendant l'anomalie.
Structure de sortie :
{
"rcSets": [
{
"rcItems": [
{
"kpi": [{"attr": "xxx", "val": "xxx"}],
"nleaf": 100,
"change": 0.524543,
"score": 0.1454543
}
]
}
]
}
Le tableau suivant décrit les éléments affichés.
|
Paramètre |
Description |
|
rcSets |
Un tableau d'ensembles de causes racines. |
|
rcItems |
Un tableau d'éléments formant l'ensemble des causes racines. |
|
kpi |
Un tableau représentant les conditions d'un élément au sein de l'ensemble des causes racines. Chaque élément du tableau est un objet où |
|
nleaf |
Le nombre de feuilles dans les données brutes couvertes par un élément KPI dans l'ensemble des causes racines. Remarque
Une feuille correspond à une entrée de journal pour la combinaison d'attributs la plus granulaire. |
|
change |
La proportion du changement anormal total contribué par les feuilles de cet élément. |
|
score |
Le score d'anomalie pour cet élément de cause racine. La valeur se situe dans la plage [0, 1]. |
La sortie est un objet JSON. Le code suivant montre un exemple :
{
"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
}
]
}
]
}