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
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 |
---|---|
|
Utilisez ce paramètre pour spécifier le champ selon lequel les résultats doivent être regroupés. |
|
Utilisez ce paramètre pour spécifier le nouveau nom du champ après l'application de la commande |
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. |
|
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. |
|
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. |
|
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. |
|
Moyenne Note : Cette fonction n'est prise en charge que pour les champs numériques. |
|
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. |
|
Nombre d'éléments distincts |
|
Maximum Note : Cette fonction n'est prise en charge que pour les champs numériques. |
|
Médiane Note : Cette fonction n'est prise en charge que pour les champs numériques. |
|
Minimum Note : Cette fonction n'est prise en charge que pour les champs numériques. |
|
Pourcentage Note : Cette fonction n'est prise en charge que pour les champs numériques. |
|
Somme Note : Cette fonction n'est prise en charge que pour les champs numériques. |
|
Écart-type Note : Cette fonction n'est prise en charge que pour les champs numériques. |
|
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). |
|
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 :
|
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 :
|
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 :
|
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 :
|
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 :
|
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 :
|
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 :
|
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 :
|
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 :
|
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 :
|
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'

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.
Pour des exemples d'utilisation de la commande eventstats
dans des scénarios types, voir :
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'
]