eventstats

Utilisez la commande eventstats pour obtenir des statistiques sommaires globales, éventuellement regroupées par champs, sur les propriétés des groupes identifiés par une commande de regroupement telle que stats, link ou timestats. Sa sortie inclut un champ pour chaque agrégation.

Syntaxe

Note

L'opérateur d'agrégation de tendance n'est pas autorisé avec eventstats.
eventstats <stats_function> (<field_name>) [as <new_field_name>] [, <stats_function> (<field_name>) [as <new_field_name>]]* [by <field_name> [, <field_name>]*]

Paramètres

Le tableau suivant répertorie les paramètres utilisés avec cette commande, ainsi que leur description.

Paramètre Description

field_name

Utilisez ce paramètre pour spécifier le champ selon lequel les résultats doivent être regroupés.

new_field_name

Utilisez ce paramètre pour spécifier le nouveau nom du champ après l'application de la commande stats.

Pour les fonctions prises en charge, voir Fonctions, Fonctions positionnelles et Fonctions d'analyse de séries chronologiques.

Fonctions

Le tableau suivant répertorie les fonctions disponibles avec cette commande, ainsi que des exemples.

Fonction Exemples

Valeurs

Répertorie les 10 premières valeurs d'un champ particulier avec un délimiteur facultatif. Peut être appliqué à n'importe quel type de données de champ.

values(field_name)

  • values(Label)

  • values(Severity)

  • values(‘Client Host City’)

  • values(‘Client Host Country’)

  • values(‘Client Host Continent’)

Unique

Répertorie les 10 premières valeurs uniques d'un champ particulier avec délimiteur facultatif. Peut être appliqué à n'importe quel type de données de champ.

unique(field_name)

  • unique(Label)

  • unique(Severity)

  • unique(‘Client Host City’)

  • unique(‘Client Host Country’)

  • unique(‘Client Host Continent’)

La plus ancienne

Retourne la valeur non nulle la plus ancienne pour le champ spécifié. Une valeur nulle sera retournée si le champ est complètement vide pour les résultats d'une interrogation particulière.

earliest(field_name)

  • earliest(‘OS Process ID’)

La plus récente

Retourne la valeur non nulle la plus récente pour le champ spécifié. Une valeur nulle sera retournée si le champ est complètement vide pour les résultats d'une interrogation particulière.

latest(field_name)

  • latest(‘Error ID’)

Moyenne

Note : Cette fonction n'est prise en charge que pour les champs numériques.

avg(field_name)

  • avg(‘Content Size’)

Nombre

Note : Cette fonction utilise une sémantique similaire à sql, c'est-à-dire que count retourne le nombre pour toutes les rangées; toutefois, count(field) retourne le nombre pour toutes les rangées où le champ n'est pas nul.

count(field_name)

  • count(Source)

Nombre d'éléments distincts

distinctcount(field_name)

  • distinctcount(Severity)

Maximum

Note : Cette fonction n'est prise en charge que pour les champs numériques.

max(field_name)

  • max('Content Size')

Médiane

Note : Cette fonction n'est prise en charge que pour les champs numériques.

median(field_name)

  • median('Content Size')

Minimum

Note : Cette fonction n'est prise en charge que pour les champs numériques.

min(field_name)

  • min('Content Size')

Pourcentage

Note : Cette fonction n'est prise en charge que pour les champs numériques.

pct(field_name, n)

  • pct('Content Size', 90)

Somme

Note : Cette fonction n'est prise en charge que pour les champs numériques.

sum(field_name)

  • sum(‘Content Size’)

Écart-type

Note : Cette fonction n'est prise en charge que pour les champs numériques.

stddev(field_name)

  • stddev(‘Content Size’)

Si nul

Modifie la valeur si la valeur est nulle.

Note : Cette fonction s'applique uniquement aux statistiques d'événement, aux géostats, aux statistiques et aux statistiques temporelles (et non après le lien).

ifnull(stats_function(field_name), return value)

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

  • ifnull(latest(message), none)

Fonctions positionnelles

Le tableau suivant répertorie les fonctions propres à cette commande, ainsi que des exemples.

Fonction Exemples

first

Extrait la valeur de propriété de la première rangée, telle que définie par l'ordre de tri courant, dans le résultat extrait.

Syntaxe : first(field_name)

  • | eventstats first('Content Size')

last

Extrait la valeur de propriété de la dernière rangée, telle que définie par l'ordre de tri courant, dans le résultat extrait.

Syntaxe : last(field_name)

  • | eventstats last('Content Size')

nthval

Extrait la valeur de propriété de la nème rangée, telle que définie par l'ordre de tri courant, dans le résultat extrait.

Syntaxe : nthval(field_name, n)

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

lag

Extrait la valeur de propriété d'une rangée à un décalage indiqué avant la rangée courante. Le décalage par défaut est 1.

Syntaxe : lag(field_name)

  • | eventstats lag('Content Size')

lead

Extrait la valeur de propriété d'une rangée à un décalage indiqué après la rangée courante. Le décalage par défaut est 1.

Syntaxe : lead(field_name)

  • | eventstats lead('Content Size')

rownum

Affecte un numéro unique séquentiellement, en commençant par 1, tel que défini par l'ordre de tri actuel, à chaque rangée dans le résultat extrait.

Syntaxe : rownum

  • | eventstats rownum

Fonctions d'analyse de séries chronologiques

Le tableau suivant répertorie les fonctions d'analyse des séries chronologiques, ainsi que des exemples.

Fonction Exemples

peak

Extrait la valeur de propriété avec l'amplitude de pic, dans le résultat extrait. Une valeur supérieure de magnitude indique des valeurs absolues plus grandes.

Syntaxe : peak

  • | eventstats peak('Content Size')

peakscore

Extrait la valeur de propriété avec un score de pic normalisé compris entre 0 et 1, dans le résultat extrait. Le score peut être utilisé pour comparer les pics, le pic le plus élevé obtenant 1 comme score, et toutes les autres valeurs entre 0 et 1.

Syntaxe : peakscore

  • | eventstats peakscore('Content Size')

valley

Extrait la valeur de la propriété avec l'amplitude de vallée, dans le résultat extrait. Une valeur inférieure indique des valeurs absolues plus petites.

Syntaxe : valley

  • | eventstats valley('Content Size')

valleyscore

Extrait la valeur de propriété avec un score de vallée normalisé compris entre 0 et 1, dans le résultat extrait. Le score peut être utilisé pour comparer les vallées, la vallée la plus faible obtenant 0 comme score, et toutes les autres valeurs entre 0 et 1.

Syntaxe : valleyscore

  • | eventstats valleyscore('Content Size')

Utilisez les fonctions peak et peakscore pour analyser les données séquentielles dans la visualisation Link pour l'amplitude de pic et un score normalisé compris entre 0 et 1. Par exemple, l'interrogation suivante met en évidence les pics les plus élevés de temps de réponse de l'utilisateur, en utilisant le champ Duration (Durée) de la source de journaux des journaux d'accès :

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

fonctions peak et peakscore pour analyser les données séquentielles dans la visualisation Link

Cette fonction peut être utilisée pour la recherche et le regroupement de données de série chronologique, comme l'identification de tous les événements hors mémoire qui se sont produits après un pic. Une valeur supérieure pour la magnitude indique des valeurs absolues plus grandes. Le score peut être utilisé pour comparer les pics, le pic le plus élevé obtenant 1 comme score, et les autres une valeur comprise entre 0 et 1.

Regrouper tous les journaux ayant une gravité fatale par transaction et obtenir le temps total moyen écoulé pour tous les groupes :

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'

Regrouper tous les journaux ayant une gravité fatale par type d'entité et par transaction et obtenir le temps total moyen écoulé pour tous les groupes ayant le même type d'entité :

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'

Dans la visualisation Link, ajoutez un numéro à chaque rangée :

'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

Identifier le dernier événement à l'aide du numéro de rangée :

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

Identifier les événements précédents et suivants d'un événement sélectionné :

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