Tous les produits
Search
Centre de documentation

Simple Log Service:Fonctions d'analyse des causes racines

Dernière mise à jour :Aug 18, 2026

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, array[col1, col2, col3].

name_array

Les noms des dimensions.

Tableau. Par exemple, array['col1', 'col2', 'col3'].

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 varchar_array).

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_search pour 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ù attr est le nom de la dimension et val est la valeur de l'attribut.

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
    }
    ]
  }
  ]
}