OpenSearch PPL-Sprache - 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.

OpenSearch PPL-Sprache

Dieser Abschnitt enthält eine grundlegende Einführung in das Abfragen von CloudWatch Logs mit OpenSearch PPL. Mit PPL können Sie Daten mithilfe von in der Pipeline zusammengefügten 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.

Sie können OpenSearch PPL nur für Abfragen von Protokollgruppen in der Standard-Protokollklasse verwenden. Wenn Sie auswählen, welche Protokollgruppen abgefragt werden sollen, können Sie eine einzelne Protokollgruppe, eine Gruppe von Protokollgruppen mit einem gemeinsamen Präfix oder alle Protokollgruppen auswählen

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.

Befehl oder Funktion Beispielabfrage Beschreibung

fields

fields field1, field2

Zeigt eine Reihe von Feldern an, die projiziert werden müssen.

join

LEFT JOIN left=l, right=r on l.id = r.id `join_right_lg` | fields l.field_1, r.field_2

Verbindet zwei Datensätze miteinander.

where

where field1="success" | where field2 != "i-023fe0a90929d8822" | fields field3, field4, field5,field6 | head 1000

Filtert die Daten auf der Grundlage der von Ihnen angegebenen Bedingungen.

stats

stats count(), count(field1), min(field1), max(field1), avg(field1) by field2 | head 1000

Führt Aggregationen und Berechnungen durch

parse

parse field1 ".*/(?<field2>[^/]+$)" | where field2 = "requestId" | fields field1, field2 | head 1000

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

stats count(), count(field1), min(field1) as field1Alias, max(`field1`), avg(`field1`) by field2 | sort -field1Alias | head 1000

Sortiert die angezeigten Ergebnisse nach einem Feldnamen. Verwenden Sie sort -FieldName , um in absteigender Reihenfolge zu sortieren.

eval

eval field2 = field1 * 2 | fields field1, field2 | head 20

Ä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

rename field2 as field1 | fields field1;

Benennt ein oder mehrere Felder im Suchergebnis um.

head

fields `@message` | head 20

Beschränkt die angezeigten Abfrageergebnisse auf die ersten N Zeilen.

top

top 2 field1 by field2

Findet die häufigsten Werte für ein Feld.

dedup

dedup field1 | fields field1, field2, field3

Entfernt doppelte Einträge auf der Grundlage der von Ihnen angegebenen Felder.

selten

rare field1 by field2

Findet die seltensten Werte aller Felder in der Feldliste.

subquery

where field_1 IN [ search source= `subquery_lg` | fields field_2 ] | fields id, field_1

Führt komplexe, verschachtelte Abfragen innerhalb Ihrer PPL-Anweisungen durch.

Trendlinie

trendline sma(2, field1) as field1Alias

Berechnet die gleitenden Durchschnitte von Feldern.

EventStats

eventstats sum(field1) by field2

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.

erweitern

eval tags_array_string = json_extract(`@message`, '$.tags')| eval tags_array = json_array(json_extract(tags_string, '$[0]'), json_extract(tags_string, '$[1]'))| expand tags_array as color_tags

Zerlegt ein Feld, das mehrere Werte enthält, in separate Zeilen und erstellt für jeden Wert im angegebenen Feld eine neue Zeile.

fillnull

fields `@timestamp`, error_code, status_code | fillnull using status_code = "UNKNOWN", error_code = "UNKNOWN"

Füllt Nullfelder mit dem von Ihnen angegebenen Wert. Es kann in einem oder mehreren Feldern verwendet werden.

flatten

eval metadata_struct = json_object('size', json_extract(metadata_string, '$.size'), 'color', json_extract(metadata_string, '$.color')) | flatten metadata_struct as (meta_size, meta_color)

Macht ein Feld flach. Das Feld muss von diesem Typ sein: struct<?,?> oder. array<struct<?,?>>

cidrmatch

where cidrmatch(ip, '2003:db8::/32') | fields ip

Prüft, ob die angegebene IP-Adresse innerhalb des angegebenen CIDR-Bereichs liegt.

Zusammenfassung des Feldes

where field1 != 200 | fieldsummary includefields= field1 nulls=true

Berechnet grundlegende Statistiken für jedes Feld (Anzahl, eindeutige Anzahl, Min., Max, Durchschnitt, Standardwert und Mittelwert).

grok

grok email '.+@%{HOSTNAME:host}' | fields email, host

Analysiert ein Textfeld mit einem Grok-Muster und hängt die Ergebnisse an das Suchergebnis an.

Zeichenfolgenfunktionen

eval field1Len = LENGTH(field1) | fields field1Len

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

eval newDate = ADDDATE(DATE('2020-08-26'), 1) | fields newDate

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

eval field2 = isnull(field1) | fields field2, field1, field3

Integrierte Funktionen, die nach bestimmten Feldbedingungen suchen und Ausdrücke bedingt auswerten. Wenn beispielsweise field1 null ist, wird field2 zurückgegeben.

Mathematische Funktionen

eval field2 = ACOS(field1) | fields field1

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

eval crypto = MD5(field)| head 1000

Um den Hash eines bestimmten Feldes zu berechnen

JSON-Funktionen

eval valid_json = json('[1,2,3,{"f1":1,"f2":[5,6]},4]') | fields valid_json

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.