Todos los productos
Search
Centro de documentos

Simple Log Service:Instrucciones de consulta y análisis

Última actualización: Sep 02, 2026

Puede correlacionar resultados de monitoreo en varios conjuntos de resultados de consulta mediante operaciones de conjuntos y configurar alertas por falta de datos para detectar interrupciones en la recolección.

Oportunidad del monitoreo

  1. Funcionamiento del monitoreo

    El sistema de alertas ejecuta periódicamente la instrucción de consulta configurada según la Check Frequency, la aplica a los datos de un intervalo de tiempo especificado y evalúa los resultados con respecto a la condición de alerta. Si la condición se cumple, se activa una alerta.

  2. Análisis de problemas de oportunidad

    1. Latencia de indexación de datos: existe un retraso entre el momento en que los datos se escriben en Simple Log Service y el momento en que están disponibles para su consulta. Incluso un retraso breve puede provocar que se omitan datos.

      Por ejemplo, una verificación de alerta se ejecuta a las 12:03:30. La consulta está configurada para un intervalo de tiempo relativo del último minuto, y la Check Frequency tiene un intervalo fijo de 1 minuto. Esto establece el intervalo de tiempo de la consulta en [12:02:30, 12:03:30). Una entrada de registro escrita a las 12:03:29 podría no estar indexada ni disponible para consultas a las 12:03:30 y, por lo tanto, la consulta podría omitirla.

    2. Precisión de la consulta: cuando se escriben registros con diferentes marcas de tiempo dentro del mismo minuto en un lote, Simple Log Service puede indexar todo el lote utilizando la marca de tiempo del registro más antiguo.

      Por ejemplo, una verificación de alerta se ejecuta a las 12:03:30 con un intervalo de tiempo relativo de un minuto, es decir, [12:02:30, 12:03:30). Suponga que varias entradas de registro se escriben como un lote a las 12:02:50, pero sus marcas de tiempo individuales son 12:02:20, 12:02:50, etc. Todo el lote podría indexarse bajo la marca de tiempo 12:02:20. Como resultado, una consulta que utilice el intervalo de tiempo [12:02:30, 12:03:30) no encontraría estos registros.

  3. Recomendaciones para optimizar la oportunidad

    • Priorizar la precisión: siga estas recomendaciones si requiere una alta precisión en las alertas, sin duplicados ni omisiones.

      • Para abordar la latencia de indexación de datos: en el cuadro de diálogo Query Statistics, establezca un Query Time Range relativo que termine ligeramente en el pasado. Por ejemplo, configure el Start At relativo a hace 70 segundos y la End Time a hace 10 segundos. Este margen de 10 segundos ayuda a evitar la omisión de datos causada por retrasos en la indexación.

      • Para abordar la imprecisión de la consulta: en el cuadro de diálogo Query Time Range, alinee su Query Time Range a ventanas de tiempo fijas, como 1 Minute (Time Frame), 5 Minute (Time Frame) o 1 Hour (Time Frame). Configure la Check Frequency para que coincida con la ventana de tiempo seleccionada, como 1 minuto, 5 minutos o 1 hora.

    • Priorizar la oportunidad: siga estas recomendaciones si requiere alertas inmediatas y puede tolerar la posibilidad de alertas duplicadas.

      • Para abordar la latencia de indexación de datos: en el cuadro de diálogo Query Statistics, en Query Time Range, desplace la hora relativa de Start At más hacia el pasado; por ejemplo, a hace 70 segundos (relativo).

      • Para abordar la imprecisión de la consulta: en el cuadro de diálogo Query Statistics, asegúrese de que el Query Time Range sea lo suficientemente amplio para cubrir el intervalo anterior; por ejemplo, establézcalo en 90 segundos relativos y configure la Check Frequency en 1 minuto.

Asociación de resultados de consulta y análisis

El sistema de alertas de Simple Log Service trata los resultados de consulta como conjuntos y admite el monitoreo correlacionado en varios conjuntos.

En la página de configuración, cada consulta se identifica con un número (0, 1 o 2) e incluye un editor de consultas y ajustes de intervalo de tiempo. Las consultas adyacentes se vinculan mediante la lista desplegable de set operations. Puede usar los botones de ordenamiento para reorganizar o eliminar consultas. La opción Grouped Evaluation se encuentra en la parte inferior.

Importante
  • Simple Log Service admite el monitoreo correlacionado en hasta tres conjuntos.

  • De forma predeterminada, se utilizan las primeras 1,000 filas de los resultados de consulta para las operaciones de conjuntos. Si utiliza tres consultas y establece la set operation en un valor distinto de No Merge, solo se utilizarán las primeras 100 filas de cada consulta.

  • Si utiliza tres conjuntos, el sistema realiza primero una operación de conjunto en los dos primeros y luego efectúa una segunda operación entre ese resultado y el tercer conjunto. Por ejemplo:

    • Set A LEFT JOIN Set B LEFT JOIN Set C: el sistema realiza primero un LEFT JOIN entre Set A y Set B, y luego une ese resultado con Set C mediante otro LEFT JOIN.

    • Set A JOIN Set B INNER JOIN Set C: el sistema realiza primero un JOIN entre Set A y Set B, y luego une ese resultado con Set C mediante un INNER JOIN.

    • Set A LEFT EXCLUDE JOIN Set B No Merge Set C: el sistema realiza un LEFT EXCLUDE JOIN entre Set A y Set B, e ignora Set C.

La lista desplegable de set operations ofrece las siguientes nueve opciones.

Operaciones de conjuntos

Ilustración

Descripción

No Merge

不合并

Los dos conjuntos no se asocian.

Set A proporciona los resultados de la consulta, mientras que Set B solo sirve como fuente de variables para la plantilla de notificación de alertas.

CROSS JOIN

Ninguna

Combina cada fila de Set A con cada fila de Set B. Esta operación se usa normalmente para filtrar datos antes de la evaluación.

JOIN

拼接

Fusiona los datos de Set B en las filas coincidentes de Set A, alineando las filas por nombre de campo.

INNER JOIN

内联

Devuelve solo las filas de Set A que tienen una fila coincidente en Set B. Esto utiliza eficazmente Set B como lista de permitidos para Set A.

LEFT JOIN

左联

Enriquece Set A con datos coincidentes de Set B. En este caso, Set B actúa como tabla de dimensiones para Set A.

RIGHT JOIN

右联

Enriquece Set B con datos coincidentes de Set A. En este caso, Set A actúa como tabla de dimensiones para Set B.

FULL JOIN

全联

Fusiona todas las filas de Set A y Set B, y enriquece las filas coincidentes con datos del otro conjunto.

LEFT EXCLUDE JOIN

左斥

Devuelve solo las filas de Set A que no tienen coincidencia en Set B. Esto utiliza eficazmente Set B como lista de bloqueados para Set A.

RIGHT EXCLUDE JOIN

右斥

Devuelve solo las filas de Set B que no tienen coincidencia en Set A. Esto utiliza eficazmente Set A como lista de bloqueados para Set B.

No merge

  • Requisito

    Monitorear registros de acceso de NGINX. Activar una alerta si el número de errores 5xx supera los 500 en un periodo de 15 minutos. La alerta debe enumerar los hosts específicos que devolvieron errores.

  • La configuración es la siguiente: la consulta de Query and Statistics 0 es status > 500 | select count(1) as cnt, y la set operation está establecida en No merge. La consulta de Query and Statistics 1 es status > 500 | select host, count(1) as pv group by host order by pv desc limit 5. La group evaluation está configurada como No Grouping, y la trigger condition está establecida en has data, con la condición cnt > 500.

  • Resultado

    • Resultados de Query and Statistics 0

      Cuenta el número de errores 5xx dentro de un periodo de 15 minutos.

      cnt

      1234

    • Resultados de Query and Statistics 1

      Identifica los 5 principales hosts con mayor cantidad de errores 5xx en un periodo de 15 minutos y sus respectivos conteos de errores.

      host

      pv

      host1

      60

      host2

      55

      host3

      47

      host4

      45

      host5

      30

    • Resultado de la operación de conjuntos

      Cuando la set operation se establece en No merge, la operación devuelve el resultado de Query and Statistics 0.

CROSS JOIN

  • Ejemplo 1

    • Requisito

      Monitorear registros de acceso de Object Storage Service (OSS) y Server Load Balancer (SLB). Activar una alerta si la suma combinada de errores 4xx de OSS y errores 5xx de SLB supera los 1,000 en un periodo de 15 minutos.

    • Configuración: la consulta de Query Statement 0 es status >= 400 and status < 500 | select count(1) as pv, y Set Operations está establecida en CROSS JOIN. La consulta de Query Statement 1 es status >= 500 | select count(1) as pv. Para la regla de alerta, Group Evaluation está configurada como Ungrouped, y la Trigger Condition está establecida en Data exists con la condición ($0.pv + $1.pv) > 1000.

    • Resultados

      • Resultados de la instrucción de consulta 0

        Número de errores 4xx de OSS en un periodo de 15 minutos.

        pv

        890

      • Resultados de la instrucción de consulta 1

        Número de errores 5xx de SLB en un periodo de 15 minutos.

        pv

        567

      • Resultados de la operación de conjuntos

        Cuando Set Operations se establece en CROSS JOIN, los resultados son los siguientes:

        $0.pv

        $1.pv

        890

        567

  • Ejemplos adicionales

    • Resultados de la instrucción de consulta 0

      a

      b

      a1

      b1

      a2

      b2

      a5

      b5

    • Resultados de la instrucción de consulta 1

      a

      c

      a1

      c1

      a3

      c3

    • Resultados de la operación de conjuntos

      Cuando Set Operations se establece en CROSS JOIN, los resultados son los siguientes:

      $0.a

      b

      $1.a

      c

      a1

      b1

      a1

      c1

      a1

      b1

      a3

      c3

      a2

      b2

      a1

      c1

      a2

      b2

      a3

      c3

      a5

      b5

      a1

      c1

      a5

      b5

      a3

      c3

Join

  • Ejemplo 1

    • Requisito

      Monitorear registros de acceso de Nginx desde dos LogStores, uno en la región China (Beijing) y otro en la región China (Shanghai). Activar una alerta si el número total de hosts con más de 30 errores 5xx en ambos LogStores supera los 10 en un intervalo de 15 minutos.

    • La configuración es la siguiente: para Query Statistics 0, la instrucción de consulta es status > 500 | select host, count(*) as pv group by host having pv > 30, y la Set Operation es JOIN. Para Query Statistics 1, la instrucción de consulta es status > 500 | select host, count(*) as pv group by host having pv > 30, Group Evaluation es No Grouping, y la Trigger Condition es has specific number of results mayor que 10.

    • Resultado

      • Resultados de la instrucción de consulta 0

        Esta consulta identifica los hosts con más de 30 errores 5xx en un periodo de 15 minutos y enumera sus respectivos conteos de errores.

        Host

        Pv

        host1

        60

        host2

        55

        host3

        47

        host4

        45

        host5

        31

      • Resultados de la instrucción de consulta 1

        Esta consulta identifica los hosts con más de 30 errores 5xx en un periodo de 15 minutos y enumera sus respectivos conteos de errores.

        Host

        Pv

        hosta

        70

        hostb

        45

        hostc

        44

        hostd

        42

      • Resultado de la operación de conjuntos

        Cuando Set Operations se establece en JOIN, el resultado combinado es:

        Host

        Pv

        host1

        60

        host2

        55

        host3

        47

        host4

        45

        host5

        31

        hosta

        70

        hostb

        45

        hostc

        44

        hostd

        42

  • Otros ejemplos

    • Si los campos de resultado de dos instrucciones de consulta no coinciden, la operación JOIN rellena los campos no coincidentes con None.

      • Resultados de la instrucción de consulta 0

        A

        B

        a1

        b1

        a2

        b2

      • Resultados de la instrucción de consulta 1

        B

        C

        b1

        c1

        b2

        c2

      • Resultado de la operación de conjuntos

        A

        B

        C

        a1

        b1

        None

        a2

        b2

        None

        None

        b1

        c1

        None

        b2

        c2

    • Al utilizar tres instrucciones de consulta, el sistema realiza primero una operación de conjunto entre la instrucción de consulta 0 y la instrucción de consulta 1, y luego une ese resultado con los resultados de la instrucción de consulta 2.

      • Resultados de la instrucción de consulta 0

        A

        B

        a1

        b1

        a2

        b2

      • Resultados de la instrucción de consulta 1

        A

        B

        a1

        b11

        a2

        b22

        a3

        b33

      • Resultado de unir la instrucción de consulta 0 y la instrucción de consulta 1

        El resultado de la operación INNER JOIN con la condición $0.a == $1.a es:

        A

        $0.b

        $1.b

        a1

        b1

        b11

        a2

        b2

        b22

      • Resultados de la instrucción de consulta 2

        A

        B

        a3

        b333

        a4

        b444

      • Resultado de la operación de conjuntos final

        El resultado final de la operación JOIN es:

        Nota

        Los valores del campo b en los resultados de la instrucción de consulta 2 completan la columna $0.b en el resultado final.

        A

        $0.b

        $1.b

        a1

        b1

        b11

        a2

        b2

        b22

        a3

        b333

        None

        a4

        b444

        None

Inner join

  • Ejemplo 1

    • Requisito

      Monitorear el número de errores 5xx en un bucket específico. Activar una alerta si el conteo supera los 1,000 en un periodo de 15 minutos. Para cumplir este requisito, debe agregar datos de recursos para mantener una lista de permitidos de buckets.

    • La configuración es la siguiente: la instrucción de consulta para Query Statement 0 es status >=500 | select bucket, count(*) as pv group by bucket having pv > 1000 limit 1000. Set Operations está establecida en INNER JOIN con la condición de unión $0.bucket = $1.bucket. Para Query Statement 1, se selecciona el origen de datos OSS (user.test), que especifica los buckets bucket_03, bucket_04, bucket_05 y bucket_06. Group Evaluation está configurada como Ungrouped, y la Trigger Condition está establecida en Data exists.

    • Resultados

      • Resultados de la instrucción de consulta 0

        Identifica los buckets que tienen más de 1,000 errores 5xx en un periodo de 15 minutos.

        Bucket

        Pv

        bucket_01

        1600

        bucket_02

        1550

        bucket_03

        1470

        bucket_04

        1450

      • Resultados de la instrucción de consulta 1

        Datos de recursos de los buckets.

        Bucket

        Description

        bucket_03

        for dev team

        bucket_04

        for test team

        bucket_05

        for service team

        bucket_06

        for support team

      • Resultados de la operación de conjuntos

        Cuando la Set Operation se establece en INNER JOIN con la condición $0.bucket == $1.bucket, el resultado de la operación de conjuntos es el siguiente:

        Bucket

        Pv

        Description

        bucket_03

        1470

        for dev team

        bucket_04

        1450

        for test team

  • Ejemplo 2

    • Requisito

      Dos logstores, uno en la región China (Beijing) y otro en la región China (Shanghai), almacenan registros de acceso de Nginx. Cada 15 minutos, el sistema busca clientes con más de 30 errores 5xx. Se activa una alerta si ocurren errores 5xx en ambas regiones y el conteo de errores en la región China (Beijing) supera al de la región China (Shanghai).

    • La configuración es la siguiente: la instrucción de consulta para Query Statement 0 es status >= 500 | select client_ip, count(1) as pv group by client_ip having pv > 30. Set Operations está establecida en INNER JOIN con las condiciones de unión $0.client_ip = $1.client_ip y $0.pv > $1.pv. La instrucción de consulta para Query Statement 1 es status >= 500 | select client_ip, count(1) as pv group by client_ip having pv > 30. Group Evaluation está configurada como Ungrouped, y la Trigger Condition está establecida en Data exists.

    • Resultados

      • Resultados de la instrucción de consulta 0

        Identifica los clientes en la región China (Beijing) que tienen más de 30 errores 5xx en un periodo de 15 minutos y sus conteos de errores.

        Client ip

        Pv

        192.0.2.4

        60

        192.0.2.5

        55

        192.0.2.6

        47

        192.0.2.7

        45

        192.0.2.8

        31

      • Resultados de la instrucción de consulta 1

        Identifica los clientes en la región China (Shanghai) que tienen más de 30 errores 5xx en un periodo de 15 minutos y sus conteos de errores.

        Client ip

        Pv

        192.0.2.5

        70

        192.0.2.6

        45

        192.0.2.7

        44

        192.0.2.8

        42

        192.0.2.9

        42

      • Resultados de la operación de conjuntos

        Cuando Set Operations se establece en INNER JOIN, $0.client_ip == $1.client_ip y $0.pv > $1.pv, el resultado de la operación de conjuntos es el siguiente:

        Client ip

        Pv

        192.0.2.6

        47

        192.0.2.7

        45

  • Otros ejemplos

    Si los conjuntos de resultados de dos instrucciones de consulta contienen campos con nombres idénticos que no son claves de unión, el sistema agrega automáticamente los prefijos $0. y $1. a estos nombres de campo en el conjunto de resultados final.

    • Resultados de la instrucción de consulta 0

      A

      B

      C

      D

      a1

      b1

      c1

      d1

      a2

      b2

      c2

      d2

      a3

      b3

      c3

      d3

    • Resultados de la instrucción de consulta 1

      A

      B

      C

      a1

      b11

      c11

      a2

      b22

      c22

    • Resultados de la operación de conjuntos

      Cuando la Set Operation es INNER JOIN y $0.a == $1.a, el resultado de la operación de conjuntos es el siguiente:

      A

      $0.b

      $0.c

      D

      $1.b

      $1.c

      a1

      b1

      c1

      d1

      b11

      c11

      a2

      b2

      c2

      d2

      b22

      c22

LEFT JOIN

  • Resultados de la instrucción de consulta 0

    A

    B

    a1

    b1

    a2

    b2

    a3

    b3

  • Resultados de la instrucción de consulta 1

    A

    B

    C

    a1

    b11

    c1

    a2

    b22

    c2

  • Resultados de la operación de conjuntos

    Cuando Set Operations se establece en LEFT JOIN con la condición de unión $0.a == $1.a, el resultado es el siguiente:

    A

    $0.b

    $1.b

    C

    a1

    b1

    b11

    c1

    a2

    b2

    b22

    c2

    a3

    b3

    None

    None

Right join

  • Resultados de la consulta 0

    a

    b

    c

    a1

    b11

    c1

    a2

    b22

    c2

  • Resultados de la consulta 1

    a

    b

    a1

    b1

    a2

    b2

    a3

    b3

  • Resultado de la operación de conjuntos

    Cuando Set Operations se establece en RIGHT JOIN con la condición $0.a == $1.a, el resultado es:

    a

    $0.b

    c

    $1.b

    a1

    b11

    c1

    b1

    a2

    b22

    c2

    b2

    a3

    NULL

    NULL

    b3

Full join

  • Datos de origen 0

    a

    b

    c

    a1

    b1

    c1

    a2

    b2

    c2

    a5

    b5

    c3

  • Datos de origen 1

    a

    b

    d

    a1

    b11

    d1

    a2

    b22

    d2

    a3

    b33

    d3

  • Resultados de la operación de conjuntos

    Cuando establece el parámetro Set Operations en FULL JOIN con la condición de unión $0.a == $1.a, el resultado es el siguiente:

    a

    $0.b

    c

    $1.b

    d

    a1

    b1

    c1

    b11

    d1

    a2

    b2

    c2

    b22

    d2

    a5

    b5

    c3

    None

    None

    a3

    None

    None

    b33

    d3

LEFT EXCLUDE JOIN

  • Requisito

    Monitorear errores 5xx para todos los buckets excepto aquellos en la lista de bloqueados. Activar una alerta si el conteo de errores supera los 1,000 en un periodo de 15 minutos. Para ello, utilice datos de recursos para mantener la lista de bloqueados de buckets.

  • La configuración es la siguiente: la consulta de Query Statement 0 es status >=500 | select bucket, count(*) as pv group by bucket having pv > 1000 limit 1000. La set operation está establecida en LEFT EXCLUDE JOIN con la condición de unión $0.bucket = $1.bucket. Para Query Statement 1, el origen de datos OSS es (user.test) y los buckets son bucket_03 y bucket_04. Group Evaluation está configurada como Ungrouped, y la trigger condition está establecida en data exists.

  • Resultado

    • Resultados de la instrucción de consulta 0

      Identifica los buckets que tienen más de 1,000 errores 5xx en un periodo de 15 minutos.

      Bucket

      Pv

      bucket_01

      1060

      bucket_02

      1055

      bucket_03

      1047

      bucket_04

      1045

    • Resultados de la instrucción de consulta 1

      Datos de recursos de los buckets.

      Bucket

      Description

      bucket_03

      for dev team

      bucket_04

      for test team

    • Resultado de la operación de conjuntos

      Cuando la set operation se establece en LEFT EXCLUDE JOIN con la condición $0.bucket = $1.bucket, el resultado es el siguiente:

      Bucket

      Pv

      bucket_01

      1060

      bucket_02

      1055

Right exclude join

  • Requisito

    Monitorear errores 5xx para todos los buckets que no estén en la lista de bloqueados. Activar una alerta si el conteo de errores supera los 1,000 en un periodo de 15 minutos. Para ello, agregue datos de recursos para mantener la lista de bloqueados de buckets.

  • Configure los ajustes de la siguiente manera: para Query Statement 0, seleccione el origen de datos OSS (user.test) y especifique bucket_03 y bucket_04. Establezca Set Operations en RIGHT EXCLUDE JOIN, con la condición de unión $0.bucket = $1.bucket. Para Query Statement 1, establezca la instrucción de consulta en status > 500 | select bucket, count(*) as pv group by bucket having pv > 1000 limit 1000. Configure Group Evaluation en No Grouping y establezca la Trigger Condition en Data exists.

  • Resultado

    • Resultados de la instrucción de consulta 0

      Devuelve los datos de recursos de los buckets en la lista de bloqueados.

      Bucket

      Description

      bucket_03

      for dev team

      bucket_04

      for test team

    • Resultados de la instrucción de consulta 1

      Devuelve los buckets con más de 1,000 errores 5xx en un periodo de 15 minutos.

      Bucket

      Pv

      bucket_01

      60

      bucket_02

      55

      bucket_03

      47

      bucket_04

      45

    • Resultado de la operación de conjuntos

      Cuando Set Operations se establece en RIGHT EXCLUDE JOIN con la condición de unión $0.bucket = $1.bucket, el resultado es el siguiente:

      Bucket

      Pv

      bucket_01

      60

      bucket_02

      55

Alerta por falta de datos

Las alertas por falta de datos detectan pérdidas de información inadvertidas durante la recolección. Por ejemplo, puede crear una regla de alerta para monitorear la utilización de CPU de cada host y recibir una notificación de alerta si se cumple alguna de las siguientes condiciones:

  • La utilización de CPU supera el 95 %.

  • La consulta y el análisis no devuelven datos.

Configure la regla de alerta de la siguiente manera:

  • Query statistics: especifique una consulta para calcular la utilización de CPU.

    * | select promql_query_range('cpu_util') from metrics limit 1000
  • Trigger Condition: Data matches the expression, value>95, Severity: Medium

    Si el campo value en los resultados de consulta y análisis supera 95, se activa una alerta de gravedad media.

  • Threshold of Continuous Triggers: número de veces consecutivas que debe cumplirse la condición de activación antes de generar una alerta.

  • No-data alert: active el interruptor de no-data alert y configure la gravedad y la anotación.

    Cuando esta opción está habilitada, se activa una alerta si el número de consultas consecutivas sin datos supera el umbral de activación continua.

    Puede establecer una gravedad y una anotación independientes para las alertas por falta de datos.

La página se configura de la siguiente manera:

Para grouping evaluation, seleccione Automatic by label. En la sección Add annotation, establezca el título en ${alert_name} alert triggered y la descripción en ${alert_name} alert triggered. Deshabilite automatic annotation y recovery notification. En advanced settings, establezca el continuous trigger threshold en 1. Habilite no-data alert, configure su severity en Medium, su título de anotación en ${alert_name}: No data y su descripción en No data was returned when this alert rule was evaluated.