eventstats
Use o comando eventstats
para obter estatísticas gerais resumidas, opcionalmente agrupadas por campos, em propriedades de grupos identificados por qualquer comando de agrupamento, como stats
, link
ou timestats
. A saída incluirá um campo para cada agregação.
Sintaxe
O operador de agregação trend não é permitido com
eventstats
.
eventstats <stats_function> (<field_name>) [as <new_field_name>] [, <stats_function> (<field_name>) [as <new_field_name>]]* [by <field_name> [, <field_name>]*]
Parâmetros
A tabela a seguir lista os parâmetros usados com esse comando, com suas descrições.
Parâmetro | Descrição |
---|---|
|
Use esse parâmetro para especificar o campo de acordo com o qual deseja que os resultados sejam agrupados. |
|
Use esse parâmetro para especificar o novo nome do campo após a aplicação do comando |
Para as funções suportadas, consulte Funções, Funções Posicionais e Funções de Análise de Série de Tempo.
Funções
A tabela a seguir lista as funções disponíveis com este comando, em conjunto com seus exemplos.
Função | Exemplos |
---|---|
Valores Lista os primeiros 10 valores de um determinado campo com delimitador opcional. Pode ser aplicado a qualquer tipo de dados de campo. |
|
Exclusivo Lista os primeiros 10 valores exclusivos para um determinado campo com delimitador opcional. Pode ser aplicado a qualquer tipo de dados de campo. |
|
Mais Antigo Retorna o valor não nulo mais antigo do campo especificado. Será retornado nulo se o campo estiver completamente vazio para determinados resultados de consultas. |
|
Mais Recente Retorna o valor não nulo mais recente para o campo especificado. Será retornado nulo se o campo estiver completamente vazio para determinados resultados de consultas. |
|
Média Observação: Essa função só é suportada para campos numéricos. |
|
Contagem Observação: Esta função usa semântica semelhante a sql; ou seja, a contagem retorna a contagem de todas as linhas; no entanto, count(field) retorna a contagem de todas as linhas em que o campo não é nulo. |
|
Contagem Distinta |
|
Máximo Observação: Essa função só é suportada para campos numéricos. |
|
Mediano Observação: Essa função só é suportada para campos numéricos. |
|
Mínimo Observação: Essa função só é suportada para campos numéricos. |
|
Porcentagem Observação: Essa função só é suportada para campos numéricos. |
|
Soma Observação: Essa função só é suportada para campos numéricos. |
|
Desvio Padrão Observação: Essa função só é suportada para campos numéricos. |
|
Se Nulo Altera o valor se ele for nulo. Observação: Esta função é somente para estatísticas de eventos, estatísticas, estatísticas e timestats (não após o link). |
|
Funções Posicionais
A tabela a seguir lista as funções exclusivas desse comando, com seus exemplos.
Função | Exemplos |
---|---|
primeiro Recupera o valor da propriedade da primeira linha, conforme definido pela ordem de classificação atual, dentro do resultado recuperado. |
Sintaxe:
|
último Recupera o valor da propriedade da última linha, conforme definido pela ordem de classificação atual, dentro do resultado recuperado. |
Sintaxe:
|
nthval Recupera o valor de propriedade da enésima linha, conforme definido pela ordem de classificação atual, dentro do resultado recuperado. |
Sintaxe:
|
atraso Recupera o valor de propriedade de uma linha em um determinado deslocamento antes da linha atual. O deslocamento padrão é 1. |
Sintaxe:
|
espera Recupera o valor de propriedade de uma linha em um determinado deslocamento após a linha atual. O deslocamento padrão é 1. |
Sintaxe:
|
rownum Designa um número exclusivo sequencialmente, começando em 1, conforme definido pela ordem de classificação atual a cada linha dentro do resultado recuperado. |
Sintaxe:
|
Funções de Análise de Série de Tempo
A tabela a seguir lista as funções da análise de série de tempo, com seus exemplos.
Função | Exemplos |
---|---|
pico Recupera o valor de propriedade com magnitude de pico, dentro do resultado recuperado. Um valor mais alto de magnitude indica valores absolutos maiores. |
Sintaxe:
|
peakscore Recupera o valor de propriedade com pontuação de pico normalizada entre 0 e 1, dentro do resultado recuperado. A pontuação pode ser usada para comparar os picos, com o pico mais alto obtendo 1 como pontuação e todos os outros valores entre 0 e 1. |
Sintaxe:
|
vale Recupera valor de propriedade com magnitude de vale, dentro do resultado recuperado. Um valor mais baixo de magnitude indica valores absolutos menores. |
Sintaxe:
|
valleyscore Recupera o valor de propriedade com a pontuação de vale normalizada entre 0 e 1, dentro do resultado recuperado. A pontuação pode ser usada para comparar os vales, com o valor mínimo 0 como pontuação e todos os outros valores entre 0 e 1. |
Sintaxe:
|
Use as funções peak e peakscore para analisar dados sequenciais na Visualização de Link para obter a magnitude de pico e uma pontuação normalizada entre 0 e 1. Por exemplo, a seguinte consulta destaca os picos mais altos no tempo de resposta do usuário, usando o campo Duração na Origem de Log dos Logs de Acesso:
'Log Source' = 'OCI API Gateway Access Logs'
| link span = 5minute Time, Server
| stats avg(Duration) as 'Avg. Duration'
| sort Server, 'Start Time'
| eventstats peak('Avg. Duration') as 'Peak Magnitude',
peakscore('Avg. Duration') as 'Peak Score' by Server
| highlightgroups priority = high
[ * | where 'Peak Score' > 0.9 ] as 'High Response Time - Needs Attention'

Esse recurso pode ser usado para procurar e agrupar dados de série de tempo, como identificar todos os eventos de Memória Insuficiente que ocorreram após um pico. Um valor mais alto para magnitude indica valores absolutos maiores. A pontuação pode ser usada para comparar picos, com o pico mais alto obtendo 1 como pontuação e os outros um valor entre 0 e 1.
Para ver exemplos de como usar o comando eventstats
em cenários típicos, consulte:
Agrupe todos os logs fatais por transação e obtenha o tempo médio decorrido geral entre todos os grupos:
severity = fatal | link 'Transaction ID' | stats avg('Elapsed Time (System)') as 'Average Elapsed Time' | eventstats avg('Average Elapsed Time') as 'Overall Average Elapsed Time'
severity = fatal | stats avg('Elapsed Time (system)') as 'Average Elapsed Time' | eventstats avg('Average elapsed time') as 'Overall Average elapsed time'
Agrupe todos os logs fatais por tipo de entidade e transação e obtenha o tempo médio geral decorrido entre todos os grupos com o mesmo tipo de entidade:
severity = fatal | link 'Entity Type', 'Transaction ID' | stats avg('Elapsed Time (System)') as 'Average Elapsed Time' | eventstats avg('Average Elapsed Time') as 'Overall Average Elapsed Time' by 'Entity Type'
severity = fatal | stats avg('Elapsed Time (System)') as 'Average Elapsed Time' by 'Entity Type', 'Transaction ID' | eventstats avg('Average Elapsed Time') as 'Overall Average Elapsed Time' by 'Entity Type'
Na visualização Link, adicione um número a cada linha:
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
Identifique o último evento usando o número da linha:
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
[ * | where Label = 'Abnormal Termination'
| eventstats last('Row Number') as 'Crash Row'
]
Identifique os eventos anteriores e seguintes de um evento selecionado:
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| addfields
[ *
| where Label != null
| eventstats lag(Label) as 'Previous Event',
lead(Label) as 'Next Event'
]