As instruções de agregação executam análises estatísticas, ordenação e limitação de linhas nos resultados de consultas de log.
stats
A instrução stats executa análises estatísticas em logs, semelhante às funções de agregação SQL, como COUNT, SUM e AVG. Ela agrupa e agrega campos específicos nos dados de log.
Use esta instrução apenas para consulta e análise em um LogStore. Ela não se aplica a cenários como transformação de dados, consumo de regras da Structured Process Language (SPL), Ingest Processors ou configurações do Logtail.
Por padrão, a instrução stats retorna os primeiros 100 resultados de agregação. Para obter mais resultados, use a instrução limit.
Sintaxe
stats <output>=<aggOperator> by <group>,[<group>...]
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
output |
String |
Sim |
Define um alias para o campo de resultado estatístico. |
|
aggOperator |
SQLExp |
Sim |
Funções de agregação compatíveis:
|
|
group |
String |
Não |
Especifique a dimensão para agregação. Equivale ao campo GROUP BY em SQL. |
Exemplos
-
Exemplo 1: Calcular o
pvdos logs de acesso porip.-
Instrução SPL
* | stats pv=count(*) by ip -
Dados de entrada
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 10 -
Dados de saída
ip: 192.168.1.2 pv: 1 ip: 192.168.1.1 pv: 2
-
-
Exemplo 2: Calcular a latência
min/maxpara todos os endereçosipnoaccesslog.-
Instrução SPL
* | extend latencyMs=cast(latencyMs as bigint) | stats minLatencyMs=min(latencyMs), maxLatencyMs=max(latencyMs) by ip -
Dados de entrada
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 10 -
Dados de saída
ip: 192.168.1.2 minLatencyMs: 10 maxLatencyMs: 20 ip: 192.168.1.1 minLatencyMs: 10 maxLatencyMs: 10
-
-
Exemplo 3: Calcular o total de
pvem um log de acesso.-
Instrução SPL
* | stats pv=count(*) -
Dados de entrada
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 10 -
Dados de saída
pv: 3
-
sort
A instrução sort ordena os resultados da consulta com base nos valores dos campos ou resultados estatísticos, em ordem crescente (asc) ou decrescente (desc).
Use esta instrução apenas para consulta e análise em um LogStore. Ela não se aplica a cenários como transformação de dados, consumo de regras SPL, Ingest Processors ou configurações do Logtail.
Sintaxe
sort <field> [asc/desc] ,(<field> [asc/desc])
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
field |
String |
Sim |
Especifique o campo de ordenação. Tipos de campo compatíveis:
|
|
asc/desc |
String |
Não |
|
Exemplo
Ordenar o accesslog por latencyMs.
-
Instrução SPL
* | extend latencyMs=cast(latencyMs as bigint) | sort latencyMs desc -
Dados de entrada
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 15 -
Dados de saída
ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 15 ip: 192.168.1.1 latencyMs: 10
limit
A instrução limit restringe o número de linhas de log retornadas nos resultados da consulta e ajuda a evitar problemas de desempenho causados por conjuntos de resultados muito grandes.
Use esta instrução apenas para consulta e análise em um LogStore. Ela não se aplica a cenários como transformação de dados, consumo de regras SPL, Ingest Processors ou configurações do Logtail.
Sem a instrução sort para definir uma ordenação, a saída da instrução limit será apresentada em ordem aleatória, pois a ordem natural dos logs não é garantida durante o armazenamento.
Sintaxe
limit (<offset>,) <size>
Parâmetros
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
offset |
Integer |
Não |
Ignora as primeiras |
|
size |
Integer |
Sim |
O limite de linhas. |
Exemplo
Ordenar um log de acesso pelo campo latencyMs e recuperar a primeira linha.
-
Instrução SPL
* | extend latencyMs=cast(latencyMs as bigint) | sort latencyMs | limit 1 -
Dados de entrada
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 15 -
Dados de saída
ip: 192.168.1.1 latencyMs: 20