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.
OpenSearch Piped Processing Language (PPL)
Dieser Abschnitt enthält eine grundlegende Einführung in das Abfragen von CloudWatch Protokollen mit PPL. OpenSearch Mit PPL können Sie Daten mithilfe von zusammengesetzten Befehlen abrufen, abfragen und analysieren, was das Verständnis und die Erstellung komplexer Abfragen erleichtert. Die Syntax basiert auf Unix-Pipes und ermöglicht die Verkettung von Befehlen zur Transformation und Verarbeitung von Daten. Mit PPL können Sie Daten filtern und aggregieren und eine Vielzahl von mathematischen, Zeichenketten-, Datums-, Bedingungs- und anderen Funktionen für Analysen verwenden.
Das Einbeziehen SOURCE in eine PPL-Abfrage ist eine nützliche Methode, um die Protokollgruppen, Feldindizes und Datenquellen anzugeben, die in eine Abfrage aufgenommen werden sollen, wenn Sie die AWS CLI OR-API verwenden, um eine Abfrage zu erstellen. Der SOURCE Befehl wird nur in der AWS CLI and-API unterstützt, nicht in der CloudWatch Konsole. Wenn Sie die CloudWatch Konsole verwenden, um eine Abfrage zu starten, verwenden Sie die Konsolenschnittstelle, um die Protokollgruppen sowie den Namen und Typ der Datenquelle anzugeben.
Wird verwendet, aws:fieldIndex um nur indizierte Daten zurückzugeben, indem eine Abfrage erzwungen wird, nur Protokollgruppen zu scannen, die in einem von Ihnen in der Abfrage angegebenen Feld indexiert sind. Die relevanten Protokollgruppen werden automatisch auf der Grundlage der im Befehl angegebenen Felder ausgewählt. filterIndex Dadurch wird das gescannte Volumen reduziert, indem Protokollgruppen übersprungen werden, die keine Protokollereignisse enthalten, die das in der Abfrage angegebene Feld enthalten, und nur Protokollgruppen gescannt werden, die dem in der Abfrage angegebenen Wert für diesen Feldindex entsprechen. Wird verwendet, aws:fieldIndex um den Feldnamen zusammen mit dem Feldnamen und dem Wert im Quellbefehl anzugeben, um nur indizierte Daten abzufragen, die das angegebene Feld und den angegebenen Wert enthalten. Weitere Informationen finden Sie unter Erstellen Sie Feldindizes, um die Abfrageleistung zu verbessern und das Scanvolumen zu reduzieren.
Sie können OpenSearch PPL für Abfragen von Protokollgruppen in der Standard-Log-Klasse verwenden.
Anmerkung
Informationen zu allen OpenSearch PPL-Abfragebefehlen, die in CloudWatch Logs unterstützt werden, sowie detaillierte Informationen zu Syntax und Einschränkungen finden Sie im OpenSearch Service Developer Guide unter Unterstützte PPL-Befehle.
Informationen zu anderen Abfragesprachen, die Sie verwenden können, finden Sie unter CloudWatch Logs, Insights, OpenSearch Service SQL und CloudWatch Metrics Insights
| Befehl oder Funktion | Beispielabfrage | Description |
|---|---|---|
|
|
|
Zeigt eine Reihe von Feldern an, die projiziert werden müssen. |
|
|
|
Verbindet zwei Datensätze miteinander. |
|
|
|
Filtert die Daten auf der Grundlage der von Ihnen angegebenen Bedingungen. |
|
|
|
Gibt nur indizierte Daten zurück, indem bei einer Abfrage erzwungen wird, nur Protokollgruppen zu scannen, die in einem von Ihnen in der Abfrage angegebenen Feld indexiert sind. |
|
|
|
Führt Aggregationen und Berechnungen durch |
|
|
|
Extrahiert ein Muster für reguläre Ausdrücke (Regex) aus einer Zeichenfolge und zeigt das extrahierte Muster an. Das extrahierte Muster kann weiter verwendet werden, um neue Felder zu erstellen oder Daten zu filtern. |
|
|
|
Sortieren Sie die angezeigten Ergebnisse nach einem Feldnamen. Verwenden Sie sort -FieldName , um in absteigender Reihenfolge zu sortieren. |
|
|
|
Ändert oder verarbeitet den Wert eines Felds und speichert ihn in einem anderen Feld. Dies ist nützlich, um eine Spalte mathematisch zu ändern, Zeichenkettenfunktionen auf eine Spalte anzuwenden oder Datumsfunktionen auf eine Spalte anzuwenden. |
|
|
|
Benennt ein oder mehrere Felder im Suchergebnis um. |
|
|
|
Beschränkt die angezeigten Abfrageergebnisse auf die ersten N Zeilen. |
|
|
|
Findet die häufigsten Werte für ein Feld. |
|
|
|
Entfernt doppelte Einträge auf der Grundlage der von Ihnen angegebenen Felder. |
|
|
|
Findet die seltensten Werte aller Felder in der Feldliste. |
|
|
|
Führt komplexe, verschachtelte Abfragen innerhalb Ihrer PPL-Anweisungen durch. |
|
|
|
Berechnet die gleitenden Durchschnitte von Feldern. |
|
|
|
Reichert Ihre Veranstaltungsdaten mit berechneten zusammenfassenden Statistiken an. Es analysiert bestimmte Felder innerhalb Ihrer Ereignisse, berechnet verschiedene statistische Kennzahlen und hängt diese Ergebnisse dann als neue Felder an jedes ursprüngliche Ereignis an. |
|
|
|
Zerlegt ein Feld, das mehrere Werte enthält, in separate Zeilen und erstellt für jeden Wert im angegebenen Feld eine neue Zeile. |
|
|
|
Füllt Nullfelder mit dem von Ihnen angegebenen Wert. Es kann in einem oder mehreren Feldern verwendet werden. |
|
|
|
Glättet ein Feld ab. Das Feld muss diesen Typ haben: |
|
|
|
Prüft, ob die angegebene IP-Adresse innerhalb des angegebenen CIDR-Bereichs liegt. |
|
|
|
Berechnet grundlegende Statistiken für jedes Feld (count, distinct count, min, max, avg, stddev und mean). |
|
|
|
Analysiert ein Textfeld mit einem Grok-Muster und hängt die Ergebnisse an das Suchergebnis an. |
|
Zeichenfolgenfunktionen |
|
Built-in Funktionen in PPL, die Zeichenketten- und Textdaten in PPL-Abfragen manipulieren und transformieren können. Beispielsweise das Konvertieren von Groß- und Kleinschreibung, das Kombinieren von Zeichenketten, das Extrahieren von Teilen und das Bereinigen von Text. |
|
Date-Time Funktionen |
|
Built-in Funktionen zur Behandlung und Transformation von Datums- und Zeitstempeldaten in PPL-Abfragen. Zum Beispiel date_add, date_format, datediff, date-sub, timestampadd, timestampdiff, current_timezone, utc_timestamp und current_date. |
|
Bedingungsfunktionen |
|
Built-in Funktionen, die nach bestimmten Feldbedingungen suchen und Ausdrücke bedingt auswerten. Wenn Feld1 beispielsweise Null ist, geben Sie Feld2 zurück. |
|
Mathematische Funktionen |
|
Built-in Funktionen zur Durchführung mathematischer Berechnungen und Transformationen in PPL-Abfragen. Zum Beispiel abs (absoluter Wert), round (rundet Zahlen), sqrt (Quadratwurzel), pow (Leistungsberechnung) und ceil (rundet auf die nächste Ganzzahl auf). |
|
CryptoGraphic Funktionen |
|
Um den Hash eines bestimmten Feldes zu berechnen |
|
JSON-Funktionen |
|
Built-in Funktionen für den Umgang mit JSON, einschließlich Arrays, Extrahieren und Validieren. Zum Beispiel json_object, json_array, to_json_string, json_array_length, json_extract, json_keys und json_valid. |
Umfang der Abfrage
Das Einbeziehen von SOURCE in eine Abfrage ist eine nützliche Methode, um die Protokollgruppen anzugeben, die in eine Abfrage aufgenommen werden sollen, wenn Sie die AWS CLI OR-API verwenden, um eine Abfrage zu erstellen. Der SOURCE-Befehl wird nur in der AWS CLI and-API unterstützt, nicht in der CloudWatch Konsole. Wenn Sie die CloudWatch Konsole verwenden, um eine Abfrage zu starten, verwenden Sie die Konsolenschnittstelle, um die Protokollgruppen sowie den Namen und Typ der Datenquelle anzugeben.
Der Quellbefehl von PPL unterstützt jetzt mehrere Möglichkeiten, sie anzugeben:
-
Gruppe protokollieren
-
Feldindizes — Neu
-
Datenquelle und -typ — Neu
Protokollgruppe
Die Quellenauswahl für Protokollgruppen kann verwendet werden, wenn Kunden wissen, welche Protokollgruppe (n) genau durchsucht werden muss
source = [lg:`/aws/lambda/my-function`] | where status = 200 | head 10
Feldindizes
Die feldindexbasierte Quellauswahl reduziert die Menge der abgefragten Daten, indem die Ergebnisse auf indizierte Daten beschränkt werden, wenn Ihre Filter auf indizierte Felder abzielen. Die relevanten Protokollgruppen werden automatisch auf der Grundlage der im Befehl angegebenen Felder ausgewählt. filterIndex Weitere Informationen zu Feldindizes und deren Erstellung finden Sie unter Feldindizes erstellen, um die Abfrageleistung zu verbessern und das Scanvolumen zu reduzieren.
Wird verwendet, aws:fieldIndex um nur indizierte Daten zurückzugeben, indem eine Abfrage erzwungen wird, nur Protokollgruppen zu scannen, die in einem Feld indiziert sind, das Sie in der Abfrage angeben. Für diese Protokollgruppen, die in diesem Feld indiziert sind, wird die Abfrage weiter optimiert, indem die Protokollgruppen übersprungen werden, die keine Protokollereignisse enthalten, die das in der Abfrage für das indizierte Feld angegebene Feld enthalten. Das gescannte Volumen wird weiter reduziert, indem versucht wird, nur Protokollereignisse aus diesen Protokollgruppen zu scannen, die dem in der Abfrage für diesen Feldindex angegebenen Wert entsprechen. Weitere Informationen zu Feldindizes und deren Erstellung finden Sie unter Feldindizes erstellen, um die Abfrageleistung zu verbessern und das Scanvolumen zu reduzieren.
aws:fieldIndexWird in PPL verwendet, um anzugeben, welche Schlüssel-Wert-Paare als Indizes behandelt werden sollen. Die Syntax lautet wie folgt
source = [`aws:fieldIndex`="region", `region` = "us-west-2"] | where status = 200 | head 10
wobei
-
`aws:fieldIndex`="region"identifiziert die Region als Feldindex.-
Hinweis: Statt = können Kunden IN verwenden, um mehrere Indizes anzugeben (Beispiel unten)
-
-
`region`="us-west-2"identifiziert die anzuwendende Filterbedingung-
Hinweis: Statt = können Kunden IN verwenden, um mehrere Werte anzugeben (Beispiel unten)
-
Kunden können mehrere FieldIndexes wie folgt angeben
source = [`aws:fieldIndex` IN ("status", "region"), `status` = 200, `region` IN ("us-west-2", "us-east-1")] | head 10
Datenquelle und -typ
Die datenquellen- und typbasierte Quellenauswahl kann verwendet werden, wenn Kunden wissen, welche Datenquellen genau abgefragt werden müssen. Diese Abfrage wird über eine oder mehrere Protokollgruppen ausgeführt, die die angegebene Datenquelle und den angegebenen Datentyp enthalten.
source = [ds:`data_source.type`] | where status = 200 | head 10
PPL für Datenquellenabfragen wird unterstützt
Um den Anwendungsfall für das Abfragen von Datenquellen in PPL zu unterstützen, können Sie die dynamische Quellenauswahlklausel verwenden. Mithilfe dieser Syntax können Sie Datenquellen abfragen, indem Sie sie im Suchbefehl angeben. Sie können bis zu 10 Datenquellen angeben.
Syntax
source=[ds:`DataSource1.Type1`, ds:`DataSource2.Type2`, ...ds:`DataSourcen.Typen`]
Beispiel für eine Abfrage
search source=[ds:`DataSource1.Type1`, ds:`DataSource2.Type2`] | fields field1, field2
Kombiniertes Beispiel
Kunden können alle Operatoren für die Quellenauswahl in beliebiger Reihenfolge angeben. Die Ergebnisse wären die Schnittmenge aller angewendeten Bedingungen.
Beispielsweise könnte/aws/lambda/my-function-1 mehrere Datenquellen und -typen einschließlich einer Vielzahl von Indizes enthalten. Wenn die folgende Abfrage ausgeführt wurde, enthalten die zurückgegebenen Ergebnisse nur Ereignisse der Quelle und des Typs DataSource1.Type1 , die den Kriterien 'status' = 200 entsprechen.
search source=[ ds:`DataSource1.Type1`, lg:`/aws/lambda/my-function-1`, `aws:fieldIndex` IN ("status"), `status` = 200 ]
Einschränkungen
Die folgenden Einschränkungen gelten, wenn Sie OpenSearch PPL für Abfragen in Logs Insights verwenden. CloudWatch
-
Sie können keine Join- oder Subquery-Befehle mit Datenquellenabfragen verwenden.