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 Logs mit PPL. OpenSearch Mit PPL können Sie Daten mithilfe von in der Pipeline hinterlegten 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 die Analyse verwenden.
Die Aufnahme 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 zum Erstellen einer Abfrage verwenden. 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 Feld indexiert sind, das Sie in der Abfrage angeben. 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 für diesen Feldindex angegebenen Wert entsprechen. Geben Sie aws:fieldIndex hier den Feldnamen zusammen mit dem Feldnamen und dem Feldwert im Quellbefehl an, 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-Protokollklasse verwenden.
Anmerkung
Informationen zu allen in CloudWatch Logs unterstützten OpenSearch PPL-Abfragebefehlen sowie ausführliche Informationen zu Syntax und Einschränkungen finden Sie unter Unterstützte PPL-Befehle im OpenSearch Service Developer Guide.
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 |
|---|---|---|
|
fields |
|
Zeigt eine Reihe von Feldern an, die projiziert werden müssen. |
|
join |
|
Verbindet zwei Datensätze miteinander. |
|
where |
|
Filtert die Daten auf der Grundlage der von Ihnen angegebenen Bedingungen. |
|
aws:FieldIndex |
|
Gibt nur indizierte Daten zurück, indem eine Abfrage erzwungen wird, nur Protokollgruppen zu scannen, die für ein Feld indiziert sind, das Sie in der Abfrage angeben. |
|
stats |
|
Führt Aggregationen und Berechnungen durch |
|
parse |
|
Extrahiert ein Muster mit regulären Ausdrücken (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. |
|
sort |
|
Sortiert die angezeigten Ergebnisse nach einem Feldnamen. Verwenden Sie sort -FieldName , um in absteigender Reihenfolge zu sortieren. |
|
eval |
|
Ändert oder verarbeitet den Wert eines Felds und speichert ihn in einem anderen Feld. Dies ist nützlich, um eine Spalte mathematisch zu modifizieren, Zeichenkettenfunktionen auf eine Spalte anzuwenden oder Datumsfunktionen auf eine Spalte anzuwenden. |
|
umbenennen |
|
Benennt ein oder mehrere Felder im Suchergebnis um. |
|
head |
|
Beschränkt die angezeigten Abfrageergebnisse auf die ersten N Zeilen. |
|
top |
|
Findet die häufigsten Werte für ein Feld. |
|
dedup |
|
Entfernt doppelte Einträge auf der Grundlage der von Ihnen angegebenen Felder. |
|
selten |
|
Findet die seltensten Werte aller Felder in der Feldliste. |
|
subquery |
|
Führt komplexe, verschachtelte Abfragen innerhalb Ihrer PPL-Anweisungen aus. |
|
Trendlinie |
|
Berechnet die gleitenden Durchschnitte von Feldern. |
|
EventStats |
|
Reichert Ihre Eventdaten mit berechneten zusammenfassenden Statistiken an. Es analysiert bestimmte Felder innerhalb Ihrer Ereignisse, berechnet verschiedene statistische Kennzahlen und fügt diese Ergebnisse dann als neue Felder an jedes ursprüngliche Ereignis an. |
|
expand |
|
Zerlegt ein Feld, das mehrere Werte enthält, in separate Zeilen und erstellt für jeden Wert im angegebenen Feld eine neue Zeile. |
|
fillnull |
|
Füllt Nullfelder mit dem von Ihnen angegebenen Wert. Es kann in einem oder mehreren Feldern verwendet werden. |
|
flatten |
|
Macht ein Feld flach. Das Feld muss von diesem Typ sein: |
|
cidrmatch |
|
Prüft, ob die angegebene IP-Adresse innerhalb des angegebenen CIDR-Bereichs liegt. |
|
Zusammenfassung der Felder |
|
Berechnet grundlegende Statistiken für jedes Feld (Anzahl, eindeutige Anzahl, Min., Max, Durchschnitt, Standardwert und Mittelwert). |
|
grok |
|
Analysiert ein Textfeld mit einem Grok-Muster und hängt die Ergebnisse an das Suchergebnis an. |
|
Zeichenfolgenfunktionen |
|
Integrierte Funktionen in PPL, mit denen Zeichenketten- und Textdaten in PPL-Abfragen bearbeitet und transformiert werden können. Zum Beispiel das Konvertieren von Groß- und Kleinschreibung, das Kombinieren von Zeichenketten, das Extrahieren von Teilen und das Bereinigen von Text. |
|
Funktionen für Datum und Uhrzeit |
|
Integrierte Funktionen für die Verarbeitung 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 |
|
Integrierte Funktionen, die nach bestimmten Feldbedingungen suchen und Ausdrücke bedingt auswerten. Wenn beispielsweise field1 null ist, wird field2 zurückgegeben. |
|
Mathematische Funktionen |
|
Integrierte Funktionen für die Durchführung mathematischer Berechnungen und Transformationen in PPL-Abfragen. Zum Beispiel abs (absoluter Wert), round (rundet Zahlen), sqrt (Quadratwurzel), pow (Potenzberechnung) und ceil (rundet auf die nächste Ganzzahl auf). |
|
CryptoGraphic Funktionen |
|
Um den Hash eines bestimmten Feldes zu berechnen |
|
JSON-Funktionen |
|
Integrierte 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. |
Gültigkeitsbereich 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 zum Erstellen einer Abfrage verwenden. Der Befehl SOURCE 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 Datentyp — Neu
Protokollgruppe
Die Quellenauswahl für die Protokollgruppe 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 auf Feldindexen basierende 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 für ein Feld indiziert sind, das Sie in der Abfrage angeben. Für diese Protokollgruppen, die in diesem Feld indexiert 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 wird für Datenquellenabfragen unterstützt
Um den Anwendungsfall für die Abfrage von Datenquellen in PPL zu unterstützen, können Sie die dynamische Quellenauswahlklausel verwenden. Mit 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`]
Beispielabfrage
search source=[ds:`DataSource1.Type1`, ds:`DataSource2.Type2`] | fields field1, field2
Kombiniertes Beispiel
Kunden können alle Operatoren zur Quellenauswahl in beliebiger Reihenfolge angeben. Die Ergebnisse wären dann der Schnittpunkt aller angewandten Bedingungen.
Beispielsweise könnte/aws/lambda/my-function-1 mehrere Datenquellen und -typen enthalten, einschließlich einer Vielzahl von Indizes. Wenn die folgende Abfrage ausgeführt wurde, enthielten die zurückgegebenen Ergebnisse nur Ereignisse der Quelle und des Typs DataSource 1.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 die Befehle join oder subquery nicht mit Datenquellenabfragen verwenden.