Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
stats
Utilisez stats
pour créer des visualisations les données de vos journaux, telles que des diagrammes à barres, des graphiques linéaires et des diagrammes à aires empilées. Cela vous permet d'identifier plus efficacement les modèles dans vos données de journal. CloudWatch Logs Insights génère des visualisations pour les requêtes qui utilisent la stats
fonction et une ou plusieurs fonctions d'agrégation.
Par exemple, la requête suivante dans un groupe de journaux Route 53 renvoie des visualisations présentant la distribution des enregistrements Route 53 par heure, par type de requête.
stats count(*) by queryType, bin(1h)
Toutes ces requêtes peuvent produire des graphiques à barres. En outre, si votre requête utilise la fonction bin()
pour regrouper les données en fonction d'un seul champ au fil du temps, vous pouvez également voir des graphiques linéaires et des graphiques en aires empilées.
les unités de temps et les abréviations suivantes sont prises en charge par la fonction bin
. Pour toutes les unités et abréviations qui incluent plus d'un caractère, l'ajout de s au pluriel est pris en charge. Donc, les deux hr
et hrs
travaillent pour spécifier les heures.
millisecond
ms
msec
second
s
sec
minute
m
min
hour
h
hr
day
d
week
w
month
mo
mon
quarter
q
qtr
year
y
yr
Rubriques
Visualisation des données de séries temporelles
Les visualisations chronologiques fonctionnent pour les requêtes présentant les caractéristiques suivantes :
-
La requête contient une ou plusieurs fonctions d'agrégation. Pour plus d'informations, consultez Aggregation Functions in the Stats Command.
-
La requête utilise la fonction
bin()
pour regrouper les données en un champ.
Ces requêtes peuvent produire des graphiques linéaires, des graphiques en aires empilées et des graphiques à barres et des graphiques circulaires.
Exemples
Pour un didacticiel complet, consultez Didacticiel : Exécuter une requête qui produit des séries temporelles.
Voici d'autres exemples de requêtes qui fonctionnent pour la visualisation chronologiques.
La requête suivante génère une visualisation des valeurs moyennes du champ myfield1
, avec un point de données créé toutes les cinq minutes. Chaque point de données correspond à l'agrégation des moyennes des valeurs myfield1
des journaux des cinq minutes précédentes.
stats avg(myfield1) by bin(5m)
La requête suivante génère une visualisation des trois valeurs basées sur différents champs, avec un point de données créé toutes les cinq minutes. La visualisation est générée, car la requête contient des fonctions d'agrégation et utilise bin()
comme champ de regroupement.
stats avg(myfield1), min(myfield2), max(myfield3) by bin(5m)
Restrictions pour les graphiques linéaires et les graphiques en aires empilées
Les requêtes qui regroupent les informations d'entrée de journal sans utiliser la fonction bin()
peuvent générer des graphiques à barres. Toutefois, les requêtes ne peuvent pas générer de graphique linéaire ou de graphique en aires empilées. Pour plus d'informations sur ces types de requête, consultez Visualisation des données de journal regroupées par champs.
Visualisation des données de journal regroupées par champs
Vous pouvez produire des graphiques à barres pour les requêtes qui utilisent la fonction stats
et une ou plusieurs fonctions d'agrégation. Pour plus d'informations, consultez Aggregation Functions in the Stats Command.
Pour afficher la visualisation, exécutez votre requête. Choisissez ensuite l'onglet Visualization (Visualisation), sélectionnez la flèche en regard de Line (Ligne), puis choisissez Bar (Barre). Les visualisations sont limitées à 100 barres dans le graphique à barres.
Exemples
Pour un didacticiel complet, consultez Didacticiel : Exécuter une requête qui génère une visualisation groupée par champs de journal. Les paragraphes suivants incluent d'autres exemples de requête pour la visualisation par champs.
La requête de journal de flux VPC suivante recherche le nombre moyen d'octets transférés par session pour chaque adresse de destination.
stats avg(bytes) by dstAddr
Vous pouvez également produire un graphique qui comprend plus d'une barre pour chaque valeur résultante. Par exemple, la requête de journal de flux VPC suivante recherche le nombre moyen et le nombre maximal d'octets transférés par session pour chaque adresse de destination.
stats avg(bytes), max(bytes) by dstAddr
La requête suivante recherche le nombre de journaux de requêtes Amazon Route 53 pour chaque type de requête.
stats count(*) by queryType
Utiliser plusieurs commandes stats dans une seule requête
Vous pouvez utiliser jusqu'à deux commandes stats
dans une seule requête. Cela vous permet d'effectuer une agrégation supplémentaire sur la sortie de la première agrégation.
Exemple : requête avec deux commandes stats
Par exemple, la requête suivante trouve d'abord le volume de trafic total par tranches de 5 minutes, puis calcule le volume de trafic le plus élevé, le plus bas et le volume de trafic moyen parmi ces tranches de 5 minutes.
FIELDS strlen(@message) AS message_length | STATS sum(message_length)/1024/1024 as logs_mb BY bin(5m) | STATS max(logs_mb) AS peak_ingest_mb, min(logs_mb) AS min_ingest_mb, avg(logs_mb) AS avg_ingest_mb
Exemple : combiner plusieurs commandes stats avec d'autres fonctions telles que filter
, fields
, bin
Vous pouvez combiner deux commandes stats
avec d'autres commandes, telles que filter
et fields
dans une seule requête. Par exemple, la requête suivante trouve le nombre d'adresses IP distinctes dans les sessions et le nombre de sessions par plateforme client, filtre ces adresses IP et enfin trouve la moyenne des demandes de session par plateforme client.
STATS count_distinct(client_ip) AS session_ips, count(*) AS requests BY session_id, client_platform | FILTER session_ips > 1 | STATS count(*) AS multiple_ip_sessions, sum(requests) / count(*) AS avg_session_requests BY client_platform
Vous pouvez utiliser les fonctions bin
et dateceil
dans des requêtes comportant plusieurs commandes stats
. Par exemple, la requête suivante combine d'abord les messages en blocs de 5 minutes, puis agrège ces blocs de 5 minutes en blocs de 10 minutes et calcule les volumes de trafic les plus élevés, les plus bas et la moyenne dans chaque bloc de 10 minutes.
FIELDS strlen(@message) AS message_length | STATS sum(message_length) / 1024 / 1024 AS logs_mb BY BIN(5m) as @t | STATS max(logs_mb) AS peak_ingest_mb, min(logs_mb) AS min_ingest_mb, avg(logs_mb) AS avg_ingest_mb BY dateceil(@t, 10m)
Remarques et limitations
Une requête peut avoir un maximum de deux commandes stats
. Ce quota ne peut pas être modifié.
Si vous utilisez une commande sort
ou limit
, elle doit apparaître après la deuxième commande stats
. Si elle est antérieure à la deuxième commande stats
, la requête n'est pas valide.
Lorsqu'une requête comporte deux commandes stats
, les résultats partiels de la requête ne commencent pas à s'afficher tant que la première agrégation stats
n'est pas terminée.
Dans la deuxième commande stats
d'une seule requête, vous ne pouvez faire référence qu'aux champs définis dans la première commande stats
. Par exemple, la requête suivante n'est pas valide, car le champ @message
ne sera plus disponible après la première agrégation stats
.
FIELDS @message | STATS SUM(Fault) by Operation # You can only reference `SUM(Fault)` or Operation at this point | STATS MAX(strlen(@message)) AS MaxMessageSize # Invalid reference to @message
Tous les champs auxquels vous faites référence après la première commande stats
doivent être définis dans cette première commande stats
.
STATS sum(x) as sum_x by y, z | STATS max(sum_x) as max_x by z # You can only reference `max(sum_x)`, max_x or z at this point
Important
La fonction bin
utilise toujours implicitement le champ @timestamp
. Cela signifie que vous ne pouvez pas utiliser bin
dans la deuxième commande stats
sans utiliser la première commande stats
pour propager le champ timestamp
. Par exemple, la requête suivante n'est pas valide.
FIELDS strlen(@message) AS message_length | STATS sum(message_length) AS ingested_bytes BY @logStream | STATS avg(ingested_bytes) BY bin(5m) # Invalid reference to @timestamp field
Définissez plutôt le champ @timestamp
dans la première commande stats
, puis utilisez-le avec dateceil
dans la deuxième commande stats
, comme dans l'exemple suivant.
FIELDS strlen(@message) AS message_length | STATS sum(message_length) AS ingested_bytes, max(@timestamp) as @t BY @logStream | STATS avg(ingested_bytes) BY dateceil(@t, 5m)
Fonctions à utiliser avec stats
CloudWatch Logs Insights prend en charge à la fois les fonctions d'agrégation des statistiques et les fonctions de non-agrégation des statistiques.
Utilisez des fonctions statistiques d'agrégation dans la commande stats
et en tant qu'arguments pour d'autres fonctions.
Fonction | Type de résultat | Description |
---|---|---|
|
nombre |
Moyenne des valeurs dans le champ spécifié. |
|
nombre |
Compte les événements du journal. |
|
nombre |
Renvoie le nombre de valeurs uniques pour le champ. Si le champ a une cardinalité très élevée (contient de nombreuses valeurs uniques), la valeur renvoyée par |
|
LogFieldValue |
Valeur maximale des valeurs pour ce journal dans le champ interrogé. |
|
LogFieldValue |
Valeur minimale des valeurs pour ce journal dans le champ interrogé. |
|
LogFieldValue |
Un centile indique la position relative d'une valeur dans un ensemble de données. Par exemple, |
|
nombre |
Déviation standard des valeurs dans le champ spécifié. |
|
nombre |
Somme des valeurs dans le champ spécifié. |
Fonctions statiques de non-agrégation
Utilisez des fonctions de non-agrégation dans la commande stats
et en tant qu'arguments d'autres fonctions.
Fonction | Type de résultat | Description |
---|---|---|
|
LogField |
Renvoie la valeur de |
|
LogField |
Renvoie la valeur de |
|
LogField |
Renvoie la valeur de |
|
LogField |
Renvoie la valeur de |