Todos os produtos
Search
Central de documentação

Simple Log Service:Instruções de consulta e análise

Última atualização: Jul 10, 2026

Correlacione resultados de monitoramento em vários conjuntos de resultados de consulta usando operações de conjunto e configure alertas de ausência de dados para detectar interrupções na coleta.

Tempestividade do monitoramento

  1. Funcionamento do monitoramento

    O sistema de alertas executa periodicamente a instrução de consulta configurada com base na Check Frequency, processa os dados em um intervalo de tempo especificado e avalia os resultados em relação à condição de alerta. O alerta é acionado quando a condição é avaliada como verdadeira.

  2. Análise de problemas de tempestividade

    1. Latência de indexação de dados: existe um atraso entre a gravação dos dados no Simple Log Service e sua disponibilidade para consulta. Mesmo um atraso curto pode causar perda de dados.

      Por exemplo, uma verificação de alerta é executada às 12:03:30. A consulta está configurada para um intervalo de tempo relativo do último minuto, e a Check Frequency está definida como um intervalo fixo de 1 minuto. Isso estabelece o intervalo de tempo da consulta como [12:02:30, 12:03:30). Uma entrada de log gravada às 12:03:29 pode não estar indexada e disponível para consulta até as 12:03:30, podendo ser ignorada pela consulta.

    2. Precisão da consulta: quando logs com timestamps diferentes dentro do mesmo minuto são gravados em lote, o Simple Log Service pode indexar todo o lote usando o timestamp do log mais antigo.

      Por exemplo, uma verificação de alerta é executada às 12:03:30 com um intervalo de tempo relativo de um minuto, ou seja, [12:02:30, 12:03:30). Suponha que várias entradas de log sejam gravadas em lote às 12:02:50, mas seus timestamps individuais sejam 12:02:20, 12:02:50 e assim por diante. Todo o lote pode ser indexado sob o timestamp 12:02:20. Como resultado, uma consulta que usa o intervalo de tempo [12:02:30, 12:03:30) não encontrará esses logs.

  3. Recomendações para otimizar a tempestividade

    • Priorizando a precisão: siga estas recomendações se você precisar de alta precisão nos alertas, sem duplicatas ou perdas.

      • Para resolver a latência de indexação de dados: na caixa de diálogo Query Statistics, defina um Query Time Range relativo que termine ligeiramente no passado. Por exemplo, defina o Start At relativo para 70 segundos atrás e o End Time para 10 segundos atrás. Essa margem de 10 segundos ajuda a evitar a perda de dados causada por atrasos de indexação.

      • Para resolver imprecisões na consulta: na caixa de diálogo Query Time Range, alinhe seu Query Time Range a janelas de tempo fixas, como 1 Minute (Time Frame), 5 Minute (Time Frame) ou 1 Hour (Time Frame). Defina a Check Frequency para corresponder à janela de tempo selecionada, como 1 minuto, 5 minutos ou 1 hora.

    • Priorizando a tempestividade: siga estas recomendações se você precisar de alertas imediatos e puder tolerar a possibilidade de alertas duplicados.

      • Para resolver a latência de indexação de dados: na caixa de diálogo Query Statistics, em Query Time Range, mova o horário relativo de Start At mais para o passado, por exemplo, para 70 segundos atrás (relativo).

      • Para resolver imprecisões na consulta: na caixa de diálogo Query Statistics, garanta que o Query Time Range seja amplo o suficiente para cobrir o intervalo anterior, por exemplo, definindo-o como 90 segundos relativos e configurando a Check Frequency para 1 minuto.

Associação de resultados de consulta e análise

O sistema de alertas do Simple Log Service trata os resultados de consulta como conjuntos e oferece suporte ao monitoramento correlacionado entre múltiplos conjuntos.

Na página de configuração, cada consulta é identificada por um número (0, 1 ou 2) e inclui um editor de consultas e configurações de intervalo de tempo. Consultas adjacentes são vinculadas pela lista suspensa de set operations. Use os botões de ordenação para reorganizar ou excluir consultas. A opção Grouped Evaluation encontra-se na parte inferior.

Importante
  • O Simple Log Service suporta monitoramento correlacionado em até três conjuntos.

  • Por padrão, as primeiras 1.000 linhas dos resultados da consulta são usadas nas operações de conjunto. Se você usar três consultas e definir a set operation com um valor diferente de No Merge, apenas as primeiras 100 linhas de cada consulta serão utilizadas.

  • Ao utilizar três conjuntos, o sistema executa primeiro uma operação de conjunto nos dois primeiros conjuntos e, em seguida, realiza uma segunda operação entre esse resultado e o terceiro conjunto. Por exemplo:

    • Conjunto A LEFT JOIN Conjunto B LEFT JOIN Conjunto C: o sistema executa primeiro um LEFT JOIN entre o Conjunto A e o Conjunto B e, depois, une esse resultado ao Conjunto C usando outro LEFT JOIN.

    • Conjunto A JOIN Conjunto B INNER JOIN Conjunto C: o sistema executa primeiro um JOIN entre o Conjunto A e o Conjunto B e, depois, une esse resultado ao Conjunto C usando um INNER JOIN.

    • Conjunto A LEFT EXCLUDE JOIN Conjunto B No Merge Conjunto C: o sistema executa um LEFT EXCLUDE JOIN entre o Conjunto A e o Conjunto B, ignorando o Conjunto C.

A lista suspensa de set operations oferece as nove opções a seguir.

Set operations

Ilustração

Descrição

No Merge

不合并

Os dois conjuntos não são associados.

O Conjunto A fornece os resultados da consulta, enquanto o Conjunto B serve apenas como source de variáveis para o modelo de notificação de alerta.

CROSS JOIN

Nenhuma

Combina cada linha do Conjunto A com cada linha do Conjunto B. Esta operação é normalmente usada para filtrar dados para avaliação.

JOIN

拼接

Mescla dados do Conjunto B nas linhas correspondentes do Conjunto A, alinhando as linhas pelo nome do campo.

INNER JOIN

内联

Retorna apenas linhas do Conjunto A que possuem uma linha correspondente no Conjunto B. Isso efetivamente usa o Conjunto B como uma lista de permissões para o Conjunto A.

LEFT JOIN

左联

Enriquece o Conjunto A com dados correspondentes do Conjunto B. Neste caso, o Conjunto B atua como uma tabela de dimensões para o Conjunto A.

RIGHT JOIN

右联

Enriquece o Conjunto B com dados correspondentes do Conjunto A. Neste caso, o Conjunto A atua como uma tabela de dimensões para o Conjunto B.

FULL JOIN

全联

Mescla todas as linhas do Conjunto A e do Conjunto B, enriquecendo as linhas correspondentes com dados do outro conjunto.

LEFT EXCLUDE JOIN

左斥

Retorna apenas linhas do Conjunto A que não têm correspondência no Conjunto B. Isso efetivamente usa o Conjunto B como uma lista de bloqueios para o Conjunto A.

RIGHT EXCLUDE JOIN

右斥

Retorna apenas linhas do Conjunto B que não têm correspondência no Conjunto A. Isso efetivamente usa o Conjunto A como uma lista de bloqueios para o Conjunto B.

No merge

  • Requisito

    Monitore logs de acesso do NGINX. Acione um alerta se o número de erros 5xx exceder 500 em um período de 15 minutos. O alerta deve listar os hosts específicos que retornaram erros.

  • A configuração é a seguinte: a consulta para Query and Statistics 0 é status > 500 | select count(1) as cnt, e a set operation está definida como No merge. A consulta para Query and Statistics 1 é status > 500 | select host, count(1) as pv group by host order by pv desc limit 5. A group evaluation está definida como No Grouping, e a trigger condition está definida como has data, com a condição cnt > 500.

  • Resultado

    • Resultados da Query and Statistics 0

      Conta o número de erros 5xx dentro de um período de 15 minutos.

      cnt

      1234

    • Resultados da Query and Statistics 1

      Identifica os 5 principais hosts com o maior número de erros 5xx dentro de um período de 15 minutos e suas respectivas contagens de erros.

      host

      pv

      host1

      60

      host2

      55

      host3

      47

      host4

      45

      host5

      30

    • Resultado da operação de conjunto

      Quando a set operation está definida como No merge, a operação de conjunto retorna o resultado da Query and Statistics 0.

CROSS JOIN

  • Exemplo 1

    • Requisito

      Monitore logs de acesso do Object Storage Service (OSS) e do Server Load Balancer (SLB). Acione um alerta se a contagem combinada de erros 4xx do OSS e erros 5xx do SLB exceder 1.000 em um período de 15 minutos.

    • Configuração: a consulta para Query Statement 0 é status >= 400 and status < 500 | select count(1) as pv, e Set Operations está definido como CROSS JOIN. A consulta para Query Statement 1 é status >= 500 | select count(1) as pv. Para a regra de alerta, Group Evaluation está definido como Ungrouped, e a Trigger Condition está definida como Data exists com a condição ($0.pv + $1.pv) > 1000.

    • Resultados

      • Resultados da query statement 0

        O número de erros 4xx do OSS em um período de 15 minutos.

        pv

        890

      • Resultados da query statement 1

        O número de erros 5xx do SLB em um período de 15 minutos.

        pv

        567

      • Resultados da operação de conjunto

        Quando Set Operations está definido como CROSS JOIN, os resultados são os seguintes:

        $0.pv

        $1.pv

        890

        567

  • Exemplos adicionais

    • Resultados da query statement 0

      a

      b

      a1

      b1

      a2

      b2

      a5

      b5

    • Resultados da query statement 1

      a

      c

      a1

      c1

      a3

      c3

    • Resultados da operação de conjunto

      Quando Set Operations está definido como CROSS JOIN, os resultados são os seguintes:

      $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

    • Exemplo 1

      • Requisito

        Monitore logs de acesso do Nginx de dois LogStores, um na região China (Beijing) e outro na região China (Shanghai). Acione um alerta se o número total de hosts com mais de 30 erros 5xx em ambos os LogStores exceder 10 em um intervalo de 15 minutos.

      • A configuração é a seguinte: para Query Statistics 0, a instrução de consulta é status > 500 | select host, count(*) as pv group by host having pv > 30, e a Set Operation é JOIN. Para Query Statistics 1, a instrução de consulta é status > 500 | select host, count(*) as pv group by host having pv > 30, Group Evaluation é No Grouping, e a Trigger Condition é has specific number of results maior que 10.

      • Resultado

        • Resultados da Query Statement 0

          Esta consulta identifica hosts com mais de 30 erros 5xx em um período de 15 minutos e lista suas respectivas contagens de erros.

          Host

          Pv

          host1

          60

          host2

          55

          host3

          47

          host4

          45

          host5

          31

        • Resultados da Query Statement 1

          Esta consulta identifica hosts com mais de 30 erros 5xx em um período de 15 minutos e lista suas respectivas contagens de erros.

          Host

          Pv

          hosta

          70

          hostb

          45

          hostc

          44

          hostd

          42

        • Resultado da operação de conjunto

          Quando Set Operations está definido como JOIN, o resultado combinado é:

          Host

          Pv

          host1

          60

          host2

          55

          host3

          47

          host4

          45

          host5

          31

          hosta

          70

          hostb

          45

          hostc

          44

          hostd

          42

    • Outros exemplos

      • Se os campos de resultado de duas Query Statements não coincidirem, a operação JOIN preenche os campos não correspondentes com None.

        • Resultados da Query Statement 0

          A

          B

          a1

          b1

          a2

          b2

        • Resultados da Query Statement 1

          B

          C

          b1

          c1

          b2

          c2

        • Resultado da operação de conjunto

          A

          B

          C

          a1

          b1

          None

          a2

          b2

          None

          None

          b1

          c1

          None

          b2

          c2

      • Ao usar três Query Statements, o sistema executa primeiro uma operação de conjunto na Query Statement 0 e na Query Statement 1 e, em seguida, une esse resultado aos resultados da Query Statement 2.

        • Resultados da Query Statement 0

          A

          B

          a1

          b1

          a2

          b2

        • Resultados da Query Statement 1

          A

          B

          a1

          b11

          a2

          b22

          a3

          b33

        • Resultado da união da Query Statement 0 e Query Statement 1

          O resultado da operação INNER JOIN com a condição $0.a == $1.a é:

          A

          $0.b

          $1.b

          a1

          b1

          b11

          a2

          b2

          b22

        • Resultados da Query Statement 2

          A

          B

          a3

          b333

          a4

          b444

        • Resultado da operação de conjunto final

          O resultado final da operação JOIN é:

          Nota

          Os valores do campo b nos resultados da Query Statement 2 preenchem a coluna $0.b no resultado final.

          A

          $0.b

          $1.b

          a1

          b1

          b11

          a2

          b2

          b22

          a3

          b333

          None

          a4

          b444

          None

    • Inner join

      • Exemplo 1

        • Requisito

          Monitore o número de erros 5xx em um bucket especificado. Acione um alerta se a contagem exceder 1.000 dentro de um período de 15 minutos. Para atender a esse requisito, adicione dados de resource para manter uma lista de permissões de buckets.

        • A configuração é a seguinte: a instrução de consulta para Query Statement 0 é status >=500 | select bucket, count(*) as pv group by bucket having pv > 1000 limit 1000. Set Operations está definido como INNER JOIN com a condição de junção $0.bucket = $1.bucket. Para Query Statement 1, a source de dados OSS (user.test) está selecionada, especificando os buckets bucket_03, bucket_04, bucket_05 e bucket_06. Group Evaluation está definido como Ungrouped, e a Trigger Condition está definida como Data exists.

        • Resultados

          • Resultados da Query Statement 0

            Identifica buckets que têm mais de 1.000 erros 5xx dentro de um período de 15 minutos.

            Bucket

            Pv

            bucket_01

            1600

            bucket_02

            1550

            bucket_03

            1470

            bucket_04

            1450

          • Resultados da Query Statement 1

            Os dados de resource para os buckets.

            Bucket

            Description

            bucket_03

            for dev team

            bucket_04

            for test team

            bucket_05

            for service team

            bucket_06

            for support team

          • Resultados da operação de conjunto

            Quando Set Operation está definido como INNER JOIN com a condição $0.bucket == $1.bucket, o resultado da operação de conjunto é o seguinte:

            Bucket

            Pv

            Description

            bucket_03

            1470

            for dev team

            bucket_04

            1450

            for test team

      • Exemplo 2

        • Requisito

          Dois logstores, um na região China (Beijing) e outro na região China (Shanghai), armazenam logs de acesso do Nginx. A cada 15 minutos, o sistema consulta clientes com mais de 30 erros 5xx. Um alerta é acionado se ocorrerem erros 5xx em ambas as regiões e a contagem de erros na região China (Beijing) exceder a da região China (Shanghai).

        • A configuração é a seguinte: a instrução de consulta para Query Statement 0 é status >= 500 | select client_ip, count(1) as pv group by client_ip having pv > 30. Set Operations está definido como INNER JOIN com as condições de junção $0.client_ip = $1.client_ip e $0.pv > $1.pv. A instrução de consulta para Query Statement 1 é status >= 500 | select client_ip, count(1) as pv group by client_ip having pv > 30. Group Evaluation está definido como Ungrouped, e a Trigger Condition está definida como Data exists.

        • Resultados

          • Resultados da Query Statement 0

            Identifica clientes na região China (Beijing) que têm mais de 30 erros 5xx dentro de um período de 15 minutos e suas contagens de erros.

            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 da Query Statement 1

            Identifica clientes na região China (Shanghai) que têm mais de 30 erros 5xx dentro de um período de 15 minutos e suas contagens de erros.

            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 da operação de conjunto

            Quando Set Operations está definido como INNER JOIN, $0.client_ip == $1.client_ip e $0.pv > $1.pv, o resultado da operação de conjunto é o seguinte:

            Client ip

            Pv

            192.0.2.6

            47

            192.0.2.7

            45

      • Outros exemplos

        Se os conjuntos de resultados de duas instruções de consulta contiverem campos com nomes idênticos que não sejam chaves de junção, o sistema adicionará automaticamente os prefixos $0. e $1. a esses nomes de campo no conjunto de resultados final.

        • Resultados da Query Statement 0

          A

          B

          C

          D

          a1

          b1

          c1

          d1

          a2

          b2

          c2

          d2

          a3

          b3

          c3

          d3

        • Resultados da Query Statement 1

          A

          B

          C

          a1

          b11

          c11

          a2

          b22

          c22

        • Resultados da operação de conjunto

          Quando a Set Operation é INNER JOIN e $0.a == $1.a, o resultado da operação de conjunto é o seguinte:

          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 da query statement 0

          A

          B

          a1

          b1

          a2

          b2

          a3

          b3

        • Resultados da query statement 1

          A

          B

          C

          a1

          b11

          c1

          a2

          b22

          c2

        • Resultados da operação de conjunto

          Quando Set Operations está definido como LEFT JOIN com a condição de junção $0.a == $1.a, o resultado é o seguinte:

          A

          $0.b

          $1.b

          C

          a1

          b1

          b11

          c1

          a2

          b2

          b22

          c2

          a3

          b3

          None

          None

        Right join

        • Resultados da Query 0

          a

          b

          c

          a1

          b11

          c1

          a2

          b22

          c2

        • Resultados da Query 1

          a

          b

          a1

          b1

          a2

          b2

          a3

          b3

        • Resultado da operação de conjunto

          Quando Set Operations está definido como RIGHT JOIN com a condição $0.a == $1.a, o resultado é:

          a

          $0.b

          c

          $1.b

          a1

          b11

          c1

          b1

          a2

          b22

          c2

          b2

          a3

          NULL

          NULL

          b3

        Full join

        • Dados de source 0

          a

          b

          c

          a1

          b1

          c1

          a2

          b2

          c2

          a5

          b5

          c3

        • Dados de source 1

          a

          b

          d

          a1

          b11

          d1

          a2

          b22

          d2

          a3

          b33

          d3

        • Resultados da operação de conjunto

          Ao definir o parâmetro Set Operations como FULL JOIN com a condição de junção $0.a == $1.a, o resultado é o seguinte:

          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

          Monitore erros 5xx para todos os buckets, exceto aqueles na lista de bloqueios. Acione um alerta se a contagem de erros exceder 1.000 em um período de 15 minutos. Para isso, use dados de resource para manter a lista de bloqueios de buckets.

        • A configuração é a seguinte: a consulta para Query Statement 0 é status >=500 | select bucket, count(*) as pv group by bucket having pv > 1000 limit 1000. A set operation está definida como LEFT EXCLUDE JOIN com a condição de junção $0.bucket = $1.bucket. Para Query Statement 1, a source de dados OSS é (user.test) e os buckets são bucket_03 e bucket_04. Group Evaluation está definido como Ungrouped, e a trigger condition está definida como data exists.

        • Resultado

          • Resultados da Query Statement 0

            Identifica buckets que têm mais de 1.000 erros 5xx dentro de um período de 15 minutos.

            Bucket

            Pv

            bucket_01

            1060

            bucket_02

            1055

            bucket_03

            1047

            bucket_04

            1045

          • Resultados da Query Statement 1

            Os dados de resource para os buckets.

            Bucket

            Description

            bucket_03

            for dev team

            bucket_04

            for test team

          • Resultado da operação de conjunto

            Quando a set operation está definida como LEFT EXCLUDE JOIN com a condição $0.bucket = $1.bucket, o resultado é o seguinte:

            Bucket

            Pv

            bucket_01

            1060

            bucket_02

            1055

        Right exclude join

        • Requisito

          Monitore erros 5xx para todos os buckets que não estão na lista de bloqueios. Acione um alerta se a contagem de erros exceder 1.000 dentro de um período de 15 minutos. Para isso, adicione dados de resource para manter a lista de bloqueios de buckets.

        • Configure as definições da seguinte forma: para Query Statement 0, selecione a source de dados OSS (user.test) e especifique bucket_03 e bucket_04. Defina Set Operations como RIGHT EXCLUDE JOIN, com a condição de junção $0.bucket = $1.bucket. Para Query Statement 1, defina a instrução de consulta como status > 500 | select bucket, count(*) as pv group by bucket having pv > 1000 limit 1000. Defina Group Evaluation como No Grouping e a Trigger Condition como Data exists.

        • Resultado

          • Resultados da Query Statement 0

            Retorna os dados de resource para os buckets na lista de bloqueios.

            Bucket

            Description

            bucket_03

            for dev team

            bucket_04

            for test team

          • Resultados da Query Statement 1

            Retorna buckets com mais de 1.000 erros 5xx em um período de 15 minutos.

            Bucket

            Pv

            bucket_01

            60

            bucket_02

            55

            bucket_03

            47

            bucket_04

            45

          • Resultado da operação de conjunto

            Quando Set Operations está definido como RIGHT EXCLUDE JOIN com a condição de junção $0.bucket = $1.bucket, o resultado é o seguinte:

            Bucket

            Pv

            bucket_01

            60

            bucket_02

            55

        Alerta de ausência de dados

        Alertas de ausência de dados detectam perdas de dados despercebidas durante a coleta. Por exemplo, crie uma regra de alerta para monitorar a utilização de CPU de cada host e receba uma notificação de alerta se qualquer uma das seguintes condições for atendida:

        • A utilização de CPU excede 95%.

        • Nenhum dado é retornado pela consulta e análise.

        Configure a regra de alerta da seguinte forma:

        • Query statistics: especifique uma consulta para calcular a utilização de CPU.

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

          Se o campo value nos resultados da consulta e análise exceder 95, um alerta de severidade média será acionado.

        • Threshold of Continuous Triggers: o número de vezes consecutivas que a condição de acionamento deve ser atendida antes que um alerta seja gerado.

        • No-data alert: ative a chave no-data alert e defina a severidade e a anotação.

          Quando ativado, um alerta é acionado se o número de consultas consecutivas que não retornam dados exceder o limiar de acionamento contínuo.

          Defina uma severidade e uma anotação separadas para alertas de ausência de dados.

        A página é configurada da seguinte maneira:

        Para grouping evaluation, selecione Automatic by label. Na seção Add annotation, defina o título como ${alert_name} alert triggered e a descrição como ${alert_name} alert triggered. Desative automatic annotation e recovery notification. Em advanced settings, defina o continuous trigger threshold como 1. Ative no-data alert e defina sua severity como Medium, seu título de anotação como ${alert_name}: No data e sua descrição como No data was returned when this alert rule was evaluated.