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

Observação

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

field_name

Use esse parâmetro para especificar o campo de acordo com o qual deseja que os resultados sejam agrupados.

new_field_name

Use esse parâmetro para especificar o novo nome do campo após a aplicação do comando stats.

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.

values(field_name)

  • values(Label)

  • values(Severity)

  • values(‘Client Host City’)

  • values(‘Client Host Country’)

  • values(‘Client Host Continent’)

Exclusivo

Lista os primeiros 10 valores exclusivos para um determinado campo com delimitador opcional. Pode ser aplicado a qualquer tipo de dados de campo.

unique(field_name)

  • unique(Label)

  • unique(Severity)

  • unique(‘Client Host City’)

  • unique(‘Client Host Country’)

  • unique(‘Client Host Continent’)

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.

earliest(field_name)

  • earliest(‘OS Process ID’)

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.

latest(field_name)

  • latest(‘Error ID’)

Média

Observação: Essa função só é suportada para campos numéricos.

avg(field_name)

  • avg(‘Content Size’)

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.

count(field_name)

  • count(Source)

Contagem Distinta

distinctcount(field_name)

  • distinctcount(Severity)

Máximo

Observação: Essa função só é suportada para campos numéricos.

max(field_name)

  • max('Content Size')

Mediano

Observação: Essa função só é suportada para campos numéricos.

median(field_name)

  • median('Content Size')

Mínimo

Observação: Essa função só é suportada para campos numéricos.

min(field_name)

  • min('Content Size')

Porcentagem

Observação: Essa função só é suportada para campos numéricos.

pct(field_name, n)

  • pct('Content Size', 90)

Soma

Observação: Essa função só é suportada para campos numéricos.

sum(field_name)

  • sum(‘Content Size’)

Desvio Padrão

Observação: Essa função só é suportada para campos numéricos.

stddev(field_name)

  • stddev(‘Content Size’)

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).

ifnull(stats_function(field_name), return value)

  • ifnull(avg('Content Size)', 0)

  • ifnull(latest(message), none)

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: first(field_name)

  • | eventstats first('Content Size')

último

Recupera o valor da propriedade da última linha, conforme definido pela ordem de classificação atual, dentro do resultado recuperado.

Sintaxe: last(field_name)

  • | eventstats last('Content Size')

nthval

Recupera o valor de propriedade da enésima linha, conforme definido pela ordem de classificação atual, dentro do resultado recuperado.

Sintaxe: nthval(field_name, n)

  • | eventstats nthval('Content Size', 2)

atraso

Recupera o valor de propriedade de uma linha em um determinado deslocamento antes da linha atual. O deslocamento padrão é 1.

Sintaxe: lag(field_name)

  • | eventstats lag('Content Size')

espera

Recupera o valor de propriedade de uma linha em um determinado deslocamento após a linha atual. O deslocamento padrão é 1.

Sintaxe: lead(field_name)

  • | eventstats lead('Content Size')

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: rownum

  • | eventstats rownum

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: peak

  • | eventstats peak('Content Size')

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: peakscore

  • | eventstats peakscore('Content Size')

vale

Recupera valor de propriedade com magnitude de vale, dentro do resultado recuperado. Um valor mais baixo de magnitude indica valores absolutos menores.

Sintaxe: valley

  • | eventstats valley('Content Size')

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: valleyscore

  • | eventstats valleyscore('Content Size')

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'

funções peak e peakscore para analisar dados sequenciais na Visualização de Link

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.

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'
   ]