stats - CloudWatch Amazon-Protokolle

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

stats

Verwenden Sie stats, um Visualisierungen Ihrer Protokolldaten zu erstellen, z. B. Balkendiagramme, Liniendiagramme und gestapelte Flächendiagramme. Auf diese Weise können Sie Muster in Ihren Protokolldaten effizienter identifizieren. CloudWatch Logs Insights generiert Visualisierungen für Abfragen, die die stats Funktion und eine oder mehrere Aggregationsfunktionen verwenden.

Beispielsweise gibt die folgende Abfrage in einer Route-53-Protokollgruppe Visualisierungen zurück, die die Verteilung der Route-53-Datensätze pro Stunde nach Abfragetyp zeigen.

stats count(*) by queryType, bin(1h)

Mit all diesen Abfragen können Balkendiagramme erzeugt werden. Wenn Ihre Abfrage die Funktion bin() verwendet, um Daten nach einem einzelnen Feld im Zeitverlauf zu gruppieren, können Sie auch Liniendiagramme und gestapelte Flächendiagramme anzeigen.

Für die Funktion bin werden folgende Zeiteinheiten und Abkürzungen unterstützt. Alle Einheiten und Abkürzungen, die mehr als ein Zeichen enthalten, können durch Hinzufügen von „s“ pluralisiert werden. Somit kann sowohl hr als auch hrs verwendet werden, um Stunden anzugeben.

  • 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

Visualisieren von Zeitreihendaten

Visualisierungen von Zeitreihen funktionieren für Abfragen mit folgenden Merkmalen:

  • Die Abfrage enthält eine oder mehrere Aggregationsfunktionen. Weitere Informationen finden Sie unter Aggregation Functions in the Stats Command.

  • Die Abfrage verwendet die bin()-Funktion. Damit können Sie die Daten nach einem Feld gruppieren.

Diese Abfragen können Linien-, Flächen- Balken- und Kreisdiagramme erzeugen.

Beispiele

Ein vollständiges Tutorial finden Sie unter Tutorial: Ausführen einer Abfrage, die eine Visualisierung von Zeitreihen erzeugt.

Im Folgenden finden Sie weitere Beispielabfragen, die für die Zeitreihenvisualisierung funktionieren.

Die folgende Abfrage erzeugt eine Visualisierung der Durchschnittswerte des myfield1-Felds an, mit einem Datenpunkt, der alle fünf Minuten erstellt wird. Jeder Datenpunkt ist die Aggregation der Durchschnitte der myfield1-Werte aus den Protokollen der letzten fünf Minuten.

stats avg(myfield1) by bin(5m)

Die folgende Abfrage erzeugt eine Visualisierung von drei Werten basierend auf verschiedenen Feldern, wobei alle fünf Minuten ein Datenpunkt erstellt wird. Die Visualisierung wird erzeugt, weil die Abfrage Aggregationsfunktionen enthält und bin() als Gruppierungsfeld verwendet.

stats avg(myfield1), min(myfield2), max(myfield3) by bin(5m)

Einschränkungen von Linien- und gestapelten Flächendiagrammen

Abfragen, die Protokolleintragsinformationen aggregieren, die Funktion bin() jedoch nicht verwenden, können Balkendiagramme generieren. Die Abfragen können jedoch keine Liniendiagramme oder gestapelte Flächendiagramme generieren. Weitere Informationen zu diesen Abfragetypen finden Sie unter Visualisieren von nach Feldern gruppierten Protokolldaten.

Visualisieren von nach Feldern gruppierten Protokolldaten

Sie können Balkendiagramme für Abfragen erstellen, die die stats-Funktion und eine oder mehrere Aggregationsfunktionen verwenden. Weitere Informationen finden Sie unter Aggregation Functions in the Stats Command.

Führen Sie die Abfrage aus, um die Visualisierung aufzurufen. Wählen Sie dann die Registerkarte Visualisierung aus, klicken Sie auf den Pfeil neben Linie und auf Balken. Visualisierungen sind mit maximal 100 Balken im Balkendiagramm beschränkt.

Beispiele

Ein vollständiges Tutorial finden Sie unter Tutorial: Ausführen einer Abfrage, die eine nach Protokollfeldern gruppierte Visualisierung erzeugt. Die folgenden Absätze enthalten weitere Beispielabfragen für die Visualisierung nach Feldern.

Die folgende VPC-Flow-Protokollabfrage ermittelt die durchschnittliche Anzahl von Bytes, die pro Sitzung für die einzelnen Zieladressen übertragen werden.

stats avg(bytes) by dstAddr

Sie können auch ein Diagramm erstellen, das mehr als einen Balken für jeden resultierenden Wert enthält. Die folgende VPC-Flow-Protokollabfrage ermittelt beispielsweise die durchschnittliche und maximale Anzahl von Bytes, die pro Sitzung an die einzelnen Zieladressen übertragen werden.

stats avg(bytes), max(bytes) by dstAddr

Die folgende Abfrage ermittelt die Anzahl der Amazon-Route-53-Abfrageprotokolle für jeden Abfragetyp.

stats count(*) by queryType

Verwenden mehrerer Statistikbefehle in einer einzigen Abfrage

Sie können bis zu zwei stats-Befehle in einer einzigen Abfrage verwenden. Auf diese Weise können Sie eine zusätzliche Aggregation für die Ausgabe der ersten Aggregation durchführen.

Beispiel: Abfrage mit zwei stats-Befehlen

Die folgende Abfrage ermittelt beispielsweise zuerst das gesamte Verkehrsaufkommen in 5-Minuten-Abschnitten und berechnet dann das höchste, niedrigste und durchschnittliche Verkehrsaufkommen unter diesen 5-Minuten-Abschnitten.

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

Beispiel: Kombinieren Sie mehrere Statistikbefehle mit anderen Funktionen wie filter, fields, bin

Sie können zwei stats-Befehle mit anderen Befehlen wie filter und fields in einer einzigen Abfrage kombinieren. Die folgende Abfrage ermittelt beispielsweise die Anzahl der unterschiedlichen IP-Adressen in Sitzungen und ermittelt die Anzahl der Sitzungen nach Clientplattform, filtert diese IP-Adressen und ermittelt schließlich den Durchschnitt der Sitzungsanfragen pro Clientplattform.

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

Sie können die bin- und dateceil-Funktionen in Abfragen mit mehreren stats-Befehlen verwenden. Die folgende Abfrage fasst beispielsweise Nachrichten zunächst zu 5-Minuten-Blöcken zusammen, aggregiert diese 5-Minuten-Blöcke dann zu 10-Minuten-Blöcken und berechnet das höchste, niedrigste und durchschnittliche Verkehrsaufkommen innerhalb jedes 10-Minuten-Blocks.

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)

Hinweise und Einschränkungen

Eine Abfrage kann maximal zwei stats-Befehle haben. Dieses Kontingent kann nicht geändert werden.

Wenn Sie einen sort- oder limit-Befehl verwenden, muss er nach dem zweiten stats-Befehl angezeigt werden. Wenn sie vor dem zweiten stats-Befehl steht, ist die Abfrage nicht gültig.

Wenn eine Abfrage zwei stats-Befehle enthält, werden die Teilergebnisse der Abfrage erst angezeigt, wenn die erste stats-Aggregation abgeschlossen ist.

Im zweiten stats-Befehl in einer einzelnen Abfrage können Sie nur auf Felder verweisen, die im ersten stats-Befehl definiert wurden. Die folgende Abfrage ist beispielsweise nicht gültig, da das @message-Feld nach der ersten stats-Aggregation nicht verfügbar sein wird.

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

Alle Felder, auf die Sie nach dem ersten stats-Befehl verweisen, müssen in diesem ersten stats-Befehl definiert werden.

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
Wichtig

Die bin-Funktion verwendet das @timestamp-Feld immer implizit. Das bedeutet, dass Sie bin nicht im zweiten stats-Befehl verwenden können, ohne den ersten stats-Befehl zur Propagierung des timestamp-Felds zu verwenden. Beispielsweise ist die folgende Abfrage nicht zulässig.

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

Definieren Sie das @timestamp-Feld stattdessen im ersten stats-Befehl, und dann können Sie es zusammen mit dateceil im zweiten stats-Befehl verwenden, wie im folgenden Beispiel.

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)

Funktionen zur Verwendung mit „stats“

CloudWatch Logs Insights unterstützt sowohl Funktionen zur Aggregation von Statistiken als auch Funktionen ohne Aggregation von Statistiken.

Sie können statsaggregation-Funktionen im Befehl stats sowie als Argumente für andere Funktionen verwenden.

Funktion Ergebnistyp Beschreibung

avg(fieldName: NumericLogField)

Zahl

Der Mittelwert der Werte im angegebenen Feld.

count()

count(fieldName: LogField)

Zahl

Zählt die Protokollereignisse. count() (oder count(*)) zählt alle von der Abfrage zurückgegebenen Ereignisse, während count(fieldName) alle Datensätze, die den angegebenen Feldnamen enthalten, zählt.

count_distinct(fieldName: LogField)

Zahl

Liefert die Anzahl der eindeutigen Werte für das Feld. Wenn das Feld eine sehr hohe Kardinalität hat (zahlreiche eindeutige Werte enthält), ist der von count_distinct zurückgegebene Wert lediglich eine Annäherung.

max(fieldName: LogField)

LogFieldValue

Das Maximum der Werte für dieses Protokollfeld in den abgefragten Protokollen.

min(fieldName: LogField)

LogFieldValue

Das Minimum der Werte für dieses Protokollfeld in den abgefragten Protokollen.

pct(fieldName: LogFieldValue, percent: number)

LogFieldValue

Ein Perzentil gibt die relative Stelle eines Wertes in einer Datenmenge an. Zum Beispiel gibt pct(@duration, 95) den @duration-Wert zurück, bei dem 95 Prozent der Werte von @duration niedriger als dieser Wert und 5 Prozent höher als dieser Wert sind.

stddev(fieldName: NumericLogField)

Zahl

Die Standardabweichung der Werte im angegebenen Feld.

sum(fieldName: NumericLogField)

Zahl

Die Summe der Werte im angegebenen Feld.

Statistik-Nicht-Aggregations-Funktionen

Sie können Nicht-Aggregationsfunktionen im Befehl stats sowie als Argumente für andere Funktionen verwenden.

Funktion Ergebnistyp Beschreibung

earliest(fieldName: LogField)

LogField

Gibt den Wert von fieldName aus dem Protokollereignis mit dem frühesten Zeitstempel in den abgefragten Protokollen zurück.

latest(fieldName: LogField)

LogField

Gibt den Wert von fieldName aus dem Protokollereignis mit dem neuesten Zeitstempel in den abgefragten Protokollen zurück.

sortsFirst(fieldName: LogField)

LogField

Gibt den Wert von fieldName zurück, der in der Sortierung der abgefragten Protokolle an erster Stelle steht.

sortsLast(fieldName: LogField)

LogField

Gibt den Wert von fieldName zurück, der in der Sortierung der abgefragten Protokolle an letzter Stelle steht.