Todos los productos
Search
Centro de documentos

Simple Log Service:Funciones de análisis de causa raíz

Última actualización: Sep 02, 2026

Simple Log Service ofrece herramientas avanzadas de alertas y análisis que facilitan el diagnóstico de problemas y la identificación precisa de subdimensiones anómalas. Cuando se presenta una anomalía en una métrica de series temporales, utilice una función de análisis de causa raíz para determinar los atributos de dimensión que provocan la desviación.

rca_kpi_search

Sintaxis

select rca_kpi_search(varchar_array, name_array, real, forecast, level)

A continuación se describen los parámetros.

Parámetro

Descripción

Valor

varchar_array

Los atributos de dimensión.

Array. Por ejemplo, array[col1, col2, col3].

name_array

Los nombres de las dimensiones.

Array. Por ejemplo, array['col1', 'col2', 'col3'].

real

El valor real correspondiente a la combinación de atributos.

Tipo: double. Son compatibles todos los números reales.

forecast

El valor predicho para la combinación de atributos correspondiente.

Tipo: double. Son compatibles todos los números reales.

level

La cantidad de atributos de dimensión que se incluirán en el conjunto de causas raíz de salida. Si establece este parámetro en 0, la función devuelve todos los conjuntos de causas raíz identificados.

Tipo: long. Valores válidos: 0 ≤ level ≤ Número de dimensiones a analizar (la longitud de varchar_array).

Ejemplo

  • Consulta y análisis:

    Primero, utilice una subconsulta para organizar los valores reales y predichos de cada atributo detallado. Después, invoque la función rca_kpi_search para analizar la causa raíz de la anomalía.

    * 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)
  • Salida: Los resultados del análisis incluyen un gráfico de áreas de series temporales y varias entradas expandibles de conjuntos de causas raíz. Las columnas de la tabla del conjunto de causas raíz incluyen region, project, Logstore, useragent, method, rsst, change y score. En este contexto, rsst representa el valor estadístico de la submétrica de causa raíz, mientras que score indica la puntuación de anomalía de dicha causa. A la derecha se muestra un pequeño gráfico de líneas de tendencia para la submétrica correspondiente, lo cual permite inspeccionar visualmente las fluctuaciones durante la anomalía.

Estructura de salida:

{
  "rcSets": [
    {
      "rcItems": [
        {
          "kpi": [{"attr": "xxx", "val": "xxx"}],
          "nleaf": 100,
          "change": 0.524543,
          "score": 0.1454543
        }
      ]
    }
  ]
}

La siguiente tabla describe los elementos mostrados.

Parámetro

Descripción

rcSets

Un array de conjuntos de causas raíz.

rcItems

Un array de elementos que conforman el conjunto de causas raíz.

kpi

Un array que representa las condiciones de un elemento dentro del conjunto de causas raíz. Cada elemento del array es un objeto donde attr es el nombre de la dimensión y val es el valor del atributo.

nleaf

La cantidad de hojas en los datos sin procesar cubiertas por un elemento KPI en el conjunto de causas raíz.

Nota

Una hoja es una entrada de registro correspondiente a la combinación de atributos más detallada.

change

La proporción del cambio anómalo total aportada por las hojas de este elemento.

score

La puntuación de anomalía para este elemento de causa raíz. El valor se encuentra en el rango [0, 1].

La salida es un objeto JSON. El siguiente código muestra un ejemplo:

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