

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
<a name="CWL_QuerySyntax-Stats"></a>

 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`

**Topics**
+ [Visualisieren von Zeitreihendaten](#CWL_Insights-Visualizing-TimeSeries)
+ [Visualisieren von nach Feldern gruppierten Protokolldaten](#CWL_Insights-Visualizing-ByFields)
+ [Verwenden mehrerer Statistikbefehle in einer einzigen Abfrage](#CWL_QuerySyntax-stats-multi)
+ [Funktionen zur Verwendung mit „stats“](#CWL_QuerySyntax-stats-functions)

## Visualisieren von Zeitreihendaten
<a name="CWL_Insights-Visualizing-TimeSeries"></a>

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](#CWL_Insights_Aggregation_Functions).
+ 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](CWL_AnalyzeLogData_VisualizationQuery.md). 

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](#CWL_Insights-Visualizing-ByFields).

## Visualisieren von nach Feldern gruppierten Protokolldaten
<a name="CWL_Insights-Visualizing-ByFields"></a>

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](#CWL_Insights_Aggregation_Functions).

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](CWL_AnalyzeLogData_VisualizationFieldQuery.md). 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
<a name="CWL_QuerySyntax-stats-multi"></a>

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“
<a name="CWL_QuerySyntax-stats-functions"></a><a name="CWL_Insights_Aggregation_Functions"></a>

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 | Description | 
| --- | --- | --- | 
|  `avg(fieldName: NumericLogField)` |  number |  Der Mittelwert der Werte im angegebenen Feld.  | 
|  `count()` `count(fieldName: LogField)` |  number |  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)` |  number |  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)` |  number |  Die Standardabweichung der Werte im angegebenen Feld.  | 
|  `sum(fieldName: NumericLogField)` |  number |  Die Summe der Werte im angegebenen Feld.  | 

 **Statistik-Nicht-Aggregations-Funktionen** <a name="CWL_Insights_Non-Aggregation_Functions"></a>

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


| Funktion | Ergebnistyp | Description | 
| --- | --- | --- | 
|  `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.  | 