eventstats

Utilice el comando eventstats para obtener estadísticas de resumen generales, agrupadas opcionalmente por campos, sobre las propiedades de los grupos identificados por cualquier comando de agrupación, como stats, link o timestats. Su salida incluirá un campo para cada agregación.

Sintaxis

Nota

El operador agregado trend no está permitido con 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

En la siguiente tabla se muestran los parámetros utilizados con este comando, junto con sus descripciones.

Parámetro Descripción

field_name

Utilice este parámetro para especificar el campo en función del cual desea agrupar los resultados.

new_field_name

Utilice este parámetro para especificar el nuevo nombre para el campo después de aplicar el comando stats.

Para conocer las funciones soportadas, consulte Funciones, Funciones posicionales y Funciones de análisis de la serie de tiempo.

Funciones

En la siguiente tabla se muestran las funciones disponibles con este comando, junto con sus ejemplos.

Función Ejemplos

Valores

Muestra los 10 primeros valores de un campo concreto con delimitador opcional. Se puede aplicar a cualquier tipo de datos de campo.

values(field_name)

  • values(Label)

  • values(Severity)

  • values(‘Client Host City’)

  • values(‘Client Host Country’)

  • values(‘Client Host Continent’)

Único

Muestra los 10 primeros valores únicos para un campo concreto con delimitador opcional. Se puede aplicar a cualquier tipo de datos de campo.

unique(field_name)

  • unique(Label)

  • unique(Severity)

  • unique(‘Client Host City’)

  • unique(‘Client Host Country’)

  • unique(‘Client Host Continent’)

Primero

Devuelve el último valor no nulo para el campo especificado. Se devolverá un valor nulo si el campo está completamente vacío para resultados de consultas particulares.

earliest(field_name)

  • earliest(‘OS Process ID’)

Más reciente

Devuelve el valor no nulo más reciente para el campo especificado. Se devolverá un valor nulo si el campo está completamente vacío para resultados de consultas particulares.

latest(field_name)

  • latest(‘Error ID’)

Media

Nota: Esta función solo está soportada para campos numéricos.

avg(field_name)

  • avg(‘Content Size’)

Recuento

Nota: Con esta función se utiliza una semántica similar a sql; es decir, count devuelve el recuento de todas las filas; sin embargo, count(field) devuelve el recuento de todas las filas en las que el campo no sea nulo.

count(field_name)

  • count(Source)

Recuento distinto

distinctcount(field_name)

  • distinctcount(Severity)

Máximo

Nota: Esta función solo está soportada para campos numéricos.

max(field_name)

  • max('Content Size')

Mediana

Nota: Esta función solo está soportada para campos numéricos.

median(field_name)

  • median('Content Size')

Mínimo

Nota: Esta función solo está soportada para campos numéricos.

min(field_name)

  • min('Content Size')

Porcentaje

Nota: Esta función solo está soportada para campos numéricos.

pct(field_name, n)

  • pct('Content Size', 90)

Suma

Nota: Esta función solo está soportada para campos numéricos.

sum(field_name)

  • sum(‘Content Size’)

Desviación estándar

Nota: Esta función solo está soportada para campos numéricos.

stddev(field_name)

  • stddev(‘Content Size’)

Si es nulo

Cambia el valor si el valor es nulo.

Nota: esta función solo es para estadísticas de eventos, geostats, estadísticas y timestats (no después del enlace).

ifnull(stats_function(field_name), return value)

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

  • ifnull(latest(message), none)

Funciones posicionales

En la siguiente tabla se muestran las funciones que son exclusivas de este comando, junto con sus ejemplos.

Función Ejemplos

first

Recupera el valor de propiedad de la primera fila, según lo definido por la ordenación actual, dentro del resultado recuperado.

Sintaxis: first(field_name)

  • | eventstats first('Content Size')

last

Recupera el valor de propiedad de la última fila, según lo definido por la ordenación actual, dentro del resultado recuperado.

Sintaxis: last(field_name)

  • | eventstats last('Content Size')

nthval

Recupera el valor de propiedad de la fila n, según lo definido por la ordenación actual, dentro del resultado recuperado.

Sintaxis: nthval(field_name, n)

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

lag

Recupera el valor de propiedad de una fila en un desplazamiento determinado antes de la fila actual. El desplazamiento por defecto es 1.

Sintaxis: lag(field_name)

  • | eventstats lag('Content Size')

lead

Recupera el valor de propiedad de una fila en un desplazamiento determinado después de la fila actual. El desplazamiento por defecto es 1.

Sintaxis: lead(field_name)

  • | eventstats lead('Content Size')

rownum

Asigna un número único secuencialmente, a partir de 1, según lo definido por la ordenación actual a cada fila dentro del resultado recuperado.

Sintaxis: rownum

  • | eventstats rownum

Funciones de análisis de la serie de tiempo

En la siguiente tabla se muestran las funciones para el análisis de series de tiempo, junto con sus ejemplos.

Función Ejemplos

peak

Recupera el valor de propiedad con una magnitud máxima, dentro del resultado recuperado. Un valor superior de magnitud indica valores absolutos mayores.

Sintaxis: peak

  • | eventstats peak('Content Size')

peakscore

Recupera el valor de propiedad con la puntuación máxima normalizada entre 0 y 1, dentro del resultado recuperado. La puntuación se puede utilizar para comparar los picos, con el pico más alto obteniendo 1 como puntuación, y todos los demás valores entre 0 y 1.

Sintaxis: peakscore

  • | eventstats peakscore('Content Size')

valley

Recupera el valor de propiedad con una magnitud de valle, dentro del resultado recuperado. Un valor inferior de magnitud indica valores absolutos más pequeños.

Sintaxis: valley

  • | eventstats valley('Content Size')

valleyscore

Recupera el valor de propiedad con la puntuación de valle normalizada entre 0 y 1, dentro del resultado recuperado. La puntuación se puede utilizar para comparar los valles, con el valle más bajo obteniendo 0 como la puntuación, y todos los demás valores entre 0 y 1.

Sintaxis: valleyscore

  • | eventstats valleyscore('Content Size')

Utilice las funciones peak y peakscore para analizar los datos secuenciales en la visualización de enlaces para la magnitud máxima y una puntuación normalizada entre 0 y 1. Por ejemplo, la siguiente consulta resalta los máximos picos en el tiempo de respuesta del usuario, utilizando el campo Duración del origen de log de logs de acceso:

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

funciones peak y peakscore para analizar datos secuenciales en Visualización de enlaces

Esta función se puede utilizar para buscar y agrupar datos de series de tiempo, como identificar todos los eventos Sin memoria que se hayan producido después de un pico. Un valor superior de magnitud indica valores absolutos mayores. La puntuación se puede utilizar para comparar picos, con el pico más alto que obtiene 1 como puntuación, y otros un valor entre 0 y 1.

Agrupe todos los logs fatales por transacción y obtenga la media general de tiempo transcurrido en todos los 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 los logs fatales por tipo de entidad y transacción, y obtenga la media general del tiempo transcurrido en todos los grupos con el mismo tipo de entidad:

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'

En la visualización de enlaces, agregue un número a cada fila:

'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 el último evento utilizando el número de fila:

'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 los eventos anteriores y siguientes de un evento seleccionado:

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