eventstats
Utilisez la commande eventstats
pour obtenir des statistiques récapitulatives globales, éventuellement regroupées par champ, sur les propriétés des groupes identifiés par une commande de regroupement telle que stats
, link
ou timestats
. La sortie inclut un champ pour chaque agrégation.
Syntaxe
L'opérateur d'agrégation trend 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 regrouper les résultats. |
|
Utilisez ce paramètre pour indiquer le nouveau nom du champ après application de la commande |
Pour les fonctions prises en charge, reportez-vous à Fonctions, à Fonctions positionnelles et à Fonctions d'analyse des séries temporelles.
Fonctions
Le tableau suivant répertorie les fonctions disponibles avec cette commande, accompagnées d'exemples.
Fonction | Exemples |
---|---|
Valeurs Répertorie les 10 premières valeurs d'un champ donné avec délimiteur facultatif. S'applique à tout type de données de champ. |
|
Uniques Répertorie les 10 premières valeurs uniques d'un champ donné avec délimiteur facultatif. S'applique à tout type de données de champ. |
|
Le plus ancien Renvoie la valeur non NULL la plus ancienne du champ spécifié. Une valeur NULL est renvoyée si le champ est complètement vide pour les résultats d'une requête particulière. |
|
Le plus récent Renvoie la valeur non NULL la plus récente du champ spécifié. Une valeur NULL est renvoyée si le champ est complètement vide pour les résultats d'une requête particulière. |
|
Moyenne Remarque : cette fonction est prise en charge uniquement pour les champs numériques. |
|
Nombre Remarque : cette fonction utilise une sémantique semblable à sql, c'est-à-dire que count renvoie le nombre pour toutes les lignes. Cependant, count(field) renvoie le nombre pour toutes les lignes sur lesquelles le champ n'est pas NULL. |
|
Nombre distinct |
|
Valeur maximale Remarque : cette fonction est prise en charge uniquement pour les champs numériques. |
|
Médiane Remarque : cette fonction est prise en charge uniquement pour les champs numériques. |
|
Valeur minimale Remarque : cette fonction est prise en charge uniquement pour les champs numériques. |
|
Pourcentage Remarque : cette fonction est prise en charge uniquement pour les champs numériques. |
|
Somme Remarque : cette fonction est prise en charge uniquement pour les champs numériques. |
|
Ecart type Remarque : cette fonction est prise en charge uniquement pour les champs numériques. |
|
Si NULL Modifie la valeur si elle est NULL. Remarque : cette fonction concerne uniquement les statistiques d'événement, les statistiques géographiques, les statistiques et les statistiques temporelles (et non après le lien). |
|
Fonctions positionnelles
Le tableau suivant répertorie les fonctions propres à cette commande, accompagnées d'exemples.
Fonction | Exemples |
---|---|
first Extrait la valeur de propriété de la première ligne, telle que définie par l'ordre de tri en cours, dans le résultat extrait. |
Syntaxe :
|
last Extrait la valeur de propriété de la dernière ligne, telle que définie par l'ordre de tri en cours, dans le résultat extrait. |
Syntaxe :
|
nthval Extrait la valeur de propriété de la nième ligne, telle que définie par l'ordre de tri en cours, dans le résultat extrait. |
Syntaxe :
|
lag Extrait la valeur de propriété d'une ligne selon un décalage donné avant la ligne en cours. Le décalage par défaut est de 1. |
Syntaxe :
|
lead Extrait la valeur de propriété d'une ligne selon un décalage donné après la ligne en cours. Le décalage par défaut est de 1. |
Syntaxe :
|
rownum Affecte un numéro unique de manière séquentielle, à partir de 1, tel que défini par l'ordre de tri en cours à chaque ligne du résultat extrait. |
Syntaxe :
|
Fonctions d'analyse des séries temporelles
Le tableau suivant répertorie les fonctions d'analyse de séries temporelles, accompagnées d'exemples.
Fonction | Exemples |
---|---|
peak Extrait la valeur de propriété représentant la valeur maximale dans le résultat extrait. Plus cette valeur est élevée, plus les valeurs absolues sont importantes. |
Syntaxe :
|
peakscore Extrait la valeur de propriété avec un score maximal normalisé compris entre 0 et 1 dans le résultat extrait. Le score peut être utilisé pour comparer les valeurs maximales, la valeur la plus élevée obtenant un score de 1, et toutes les autres valeurs un score compris entre 0 et 1. |
Syntaxe :
|
valley Extrait la valeur de propriété représentant la valeur minimale dans le résultat extrait. Plus cette valeur est basse, plus les valeurs absolues sont faibles. |
Syntaxe :
|
valleyscore Extrait la valeur de propriété avec un score minimal normalisé compris entre 0 et 1 dans le résultat extrait. Le score peut être utilisé pour comparer les valeurs minimales, la valeur la plus basse obtenant un score de 0, et toutes les autres valeurs un score compris entre 0 et 1. |
Syntaxe :
|
Utilisez les fonctions peak et peakscore pour analyser les données séquentielles dans la visualisation de lien et obtenir la valeur maximale et le score maximal compris entre 0 et 1. Par exemple, la requête suivante met en évidence les temps de réponse utilisateur maximaux, à l'aide du champ Duration de la source de journal Access Logs :
'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 fonctionnalité peut être utilisée pour rechercher et regrouper des données de séries temporelles, par exemple pour identifier tous les événements de mémoire saturée survenus après un pic. Plus la valeur maximale est élevée, plus les valeurs absolues sont importantes. Le score peut être utilisé pour comparer les valeurs maximales, la valeur la plus élevée obtenant un score de 1, et les autres valeurs un score compris entre 0 et 1.
Pour obtenir des exemples d'utilisation de la commande eventstats
dans des scénarios standard, reportez-vous aux sections suivantes :
Regroupez tous les journaux dont la gravité est Fatal par transaction, et obtenez le temps moyen écoulé global 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'
Regroupez tous les journaux dont la gravité est Fatal par type d'entité et par transaction, et obtenez le temps moyen écoulé global pour tous les groupes avec 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 de lien, ajoutez un numéro à chaque ligne :
'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
Identifiez le dernier événement à l'aide du numéro de ligne :
'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'
]
Identifiez les événements précédent et suivant pour l'é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'
]