Boolesche, Vergleichs-, numerische, Datetime- und andere Funktionen - 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.

Boolesche, Vergleichs-, numerische, Datetime- und andere Funktionen

CloudWatch Logs Insights unterstützt viele andere Operationen und Funktionen in Abfragen, wie in den folgenden Abschnitten erläutert.

Arithmetische Operatoren

Arithmetische Operationen akzeptieren numerische Datentypen als Argumente und liefern numerische Ergebnisse. Sie können arithmetische Operationen in den Befehlen filter und fields sowie als Argumente für andere Funktionen verwenden.

Operation Beschreibung

a + b

Addition

a - b

Subtraktion

a * b

Multiplikation

a / b

Division

a ^ b

Potenzierung. 2 ^ 3 gibt 8 zurück

a % b

Rest oder Modulus. 10 % 3 gibt 1 zurück

Boolesche Operatoren

Sie können die booleschen Operatoren and, or, und not verwenden.

Anmerkung

Verwenden Sie boolesche Operatoren nur in Funktionen, die den Wert vonWAHRoderFALSCHaus.

Vergleichsoperatoren

Vergleichsoperationen akzeptieren alle Datentypen als Argumente und liefern ein boolesches Ergebnis. Sie können Vergleichsoperationen im Befehl filter sowie als Argumente für andere Funktionen verwenden.

Operator Beschreibung

=

Gleich

!=

Ungleich

<

kleiner als

>

größer als

<=

kleiner als oder gleich

>=

größer als oder gleich

Numerische Operatoren

Numerische Operationen akzeptieren numerische Datentypen als Argumente und liefern numerische Ergebnisse. Sie können numerische Operationen in den Befehlen filter und fields sowie als Argumente für andere Funktionen verwenden.

Operation Ergebnistyp Beschreibung

abs(a: number)

Zahl

Absoluter Wert

ceil(a: number)

Zahl

Aufrunden (die kleinste ganze Zahl, die größer ist als der Wert von a).

floor(a: number)

Zahl

Abrunden (die größte ganze Zahl, die kleiner ist als der Wert von a).

greatest(a: number, ...numbers: number[])

Zahl

Liefert den größten Wert.

least(a: number, ...numbers: number[])

Zahl

Liefert den kleinsten Wert.

log(a: number)

Zahl

Natürlicher Logarithmus

sqrt(a: number)

Zahl

Quadratwurzel

Datum-/Uhrzeit-Funktionen

Datum-/Uhrzeit-Funktionen

Sie können die Datums-/Uhrzeit-Funktionen in den Befehlen fields und filter sowie als Argumente für andere Funktionen verwenden. Mit diesen Funktionen können Sie Zeiträume für Abfragen mit Aggregationsfunktionen anlegen. Verwenden Sie Zeiträume, die aus einer Zahl und einem der folgenden Werte bestehen:

  • msfür Millisekunden

  • sfür Sekunden

  • mfür Minuten

  • hstundenlang

Zum Beispiel steht 10m für 10 Minuten und 1h ist 1 Stunde.

Anmerkung

Verwenden Sie die am besten geeignete Zeiteinheit für Ihre Datetime-Funktion. CloudWatch Logs begrenzt Ihre Anfrage auf die von Ihnen gewählte Zeiteinheit. Beispielsweise wird für jede Anfrage, die verwendet, eine Obergrenze von 60 als Maximalwert festgelegts. Wenn Sie also angebenbin(300s), implementiert CloudWatch Logs dies tatsächlich als 60 Sekunden, da 60 die Anzahl der Sekunden in einer Minute ist, sodass CloudWatch Logs keine höhere Zahl als 60 verwendets. Um einen 5-Minuten-Bucket zu erstellen, verwenden Sie bin(5m) stattdessen.

Die Obergrenze für ms ist 1000, die Obergrenzen für s und m sind 60 und die Obergrenze für h ist 24.

Die folgende Tabelle enthält eine Liste der verschiedenen Datetime-Funktionen, die Sie in Ihren Abfragebefehlen verwenden können. Die Tabelle listet den Ergebnistyp jeder Funktion auf und enthält zu jeder Funktion eine Beschreibung.

Tipp

Wenn Sie einen Abfragebefehl erstellen, können Sie mit der Zeitintervallauswahl einen Zeitraum für Ihre Abfrage festlegen. Sie können beispielsweise Intervalle von 5 bis 30 Minuten, Intervalle von 1, 3 und 12 Stunden oder einen benutzerdefinierten Zeitrahmen festlegen. Sie können auch Zeiträume zwischen bestimmten Daten festlegen.

Funktion Ergebnistyp Beschreibung

bin(period: Period)

Zeitstempel

Rundet den Wert von @timestamp auf den angegebenen Zeitraum und kürzt ihn dann. bin(5m) rundet beispielsweise den Wert von @timestamp auf die nächstgelegenen fünf Minuten.

So können mehrere Protokolleinträge in einer Abfrage gruppiert werden. Im folgenden Beispiel wird die Anzahl von Ausnahmen pro Stunde zurückgegeben:

filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc

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

datefloor(timestamp: Timestamp, period: Period)

Zeitstempel

Kürzt den Zeitstempel auf den angegebenen Zeitraum. Zum Beispiel kürzt datefloor(@timestamp, 1h) alle Werte von @timestamp auf die letzte volle Stunde.

dateceil(timestamp: Timestamp, period: Period)

Zeitstempel

Rundet den Zeitstempel auf den angegebenen Zeitraum auf und kürzt ihn dann. Zum Beispiel kürzt dateceil(@timestamp, 1h) alle Werte von @timestamp auf die nächste volle Stunde.

fromMillis(fieldName: number)

Zeitstempel

Interpretiert das Eingabefeld als die Anzahl der Millisekunden seit der Unix-Epoche und konvertiert es in einen Zeitstempel.

toMillis(fieldName: Timestamp)

Zahl

Konvertiert den im benannten Feld gefundenen Zeitstempel in eine Zahl, die die Millisekunden seit der Unix-Epoche darstellt. Beispiel: toMillis(@timestamp) konvertiert den Zeitstempel 2022-01-14T13:18:031.000-08:00 zu 1642195111000.

Anmerkung

Derzeit unterstützt CloudWatch Logs Insights das Filtern von Protokollen mit menschenlesbaren Zeitstempeln nicht.

Allgemeine Funktionen

Allgemeine Funktionen

Sie können allgemeine Funktionen in den Befehlen fields und filter sowie als Argumente für andere Funktionen verwenden.

Funktion Ergebnistyp Beschreibung

ispresent(fieldName: LogField)

Boolesch

Gibt true zurück, wenn das Feld existiert.

coalesce(fieldName: LogField, ...fieldNames: LogField[])

LogField

Liefert den ersten Nicht-Null-Wert aus der Liste.

IP-Adressenzeichenfolgen

IP-Adressenzeichenfolgen

Sie können IP-Adressen-Zeichenfolgenfunktionen in den Befehlen filter und fields sowie als Argumente für andere Funktionen verwenden.

Funktion Ergebnistyp Beschreibung

isValidIp(fieldName: string)

boolesch

Gibt true zurück, wenn das Feld eine gültige IPv4- oder IPv6-Adresse ist.

isValidIpV4(fieldName: string)

boolesch

Gibt true zurück, wenn das Feld eine gültige IPv4-Adresse ist.

isValidIpV6(fieldName: string)

boolesch

Gibt true zurück, wenn das Feld eine gültige IPv6-Adresse ist.

isIpInSubnet(fieldName: string, subnet: string)

boolesch

Gibt true zurück, wenn das Feld eine gültige IPv4- oder IPv6-Adresse innerhalb des angegebenen IPv4- oder IPv6-Subnetzes ist. Verwenden Sie bei der Angabe des Subnetzes die CIDR-Notation wie 192.0.2.0/24 oder 2001:db8::/32, wobei 192.0.2.0 oder 2001:db8:: der Anfang des CIDR-Blocks ist.

isIpv4InSubnet(fieldName: string, subnet: string)

boolesch

Gibt true zurück, wenn das Feld eine gültige IPv4-Adresse innerhalb des angegebenen v4-Subnetzes ist. Verwenden Sie bei der Angabe des Subnetzes die CIDR-Notation wie 192.0.2.0/24, wobei 192.0.2.0 der Anfang des CIDR-Blocks ist.

isIpv6InSubnet(fieldName: string, subnet: string)

boolesch

Gibt true zurück, wenn das Feld eine gültige IPv6-Adresse innerhalb des angegebenen v6-Subnetzes ist. Verwenden Sie bei der Angabe des Subnetzes die CIDR-Notation wie 2001:db8::/32, wobei 2001:db8:: der Anfang des CIDR-Blocks ist.

Zeichenfolgenfunktionen

Zeichenfolgenfunktionen

Sie können Zeichenfolgenfunktionen in den Befehlen fields und filter sowie als Argumente für andere Funktionen verwenden.

Funktion Ergebnistyp Beschreibung

isempty(fieldName: string)

Zahl

Gibt 1 zurück, wenn das Feld fehlt oder eine leere Zeichenkette ist.

isblank(fieldName: string)

Zahl

Gibt 1 zurück, wenn das Feld fehlt, eine leere Zeichenkette ist oder nur Leerzeichen enthält.

concat(str: string, ...strings: string[])

Zeichenfolge

Verkettet die Zeichenketten.

ltrim(str: string)

ltrim(str: string, trimChars: string)

Zeichenfolge

Wenn die Funktion kein zweites Argument hat, entfernt sie die Whitespaces von der linken Seite der Zeichenfolge. Wenn die Funktion ein zweites Zeichenfolgen-Argument hat, entfernt sie keine Whitespaces. Stattdessen entfernt sie die Zeichen in trimChars links von str. Beispielsweise gibt ltrim("xyZxyfooxyZ","xyZ") "fooxyZ" zurück.

rtrim(str: string)

rtrim(str: string, trimChars: string)

Zeichenfolge

Wenn die Funktion kein zweites Argument hat, entfernt sie die Whitespaces von der rechten Seite der Zeichenfolge. Wenn die Funktion ein zweites Zeichenfolgen-Argument hat, entfernt sie keine Whitespaces. Stattdessen entfernt sie die Zeichen von trimChars rechts von str. Beispielsweise gibt rtrim("xyZfooxyxyZ","xyZ") "xyZfoo" zurück.

trim(str: string)

trim(str: string, trimChars: string)

Zeichenfolge

Wenn die Funktion kein zweites Argument hat, entfernt sie die Whitespaces von beiden Seiten der Zeichenfolge. Wenn die Funktion ein zweites Zeichenfolgen-Argument hat, entfernt sie keine Whitespaces. Stattdessen entfernt sie die Zeichen aus trimChars von beiden Seiten von str. Beispielsweise gibt trim("xyZxyfooxyxyZ","xyZ") "foo" zurück.

strlen(str: string)

Zahl

Liefert die Länge der Zeichenkette in Unicode-Codepunkten.

toupper(str: string)

Zeichenfolge

Konvertiert die Zeichenkette in Großbuchstaben.

tolower(str: string)

Zeichenfolge

Konvertiert die Zeichenkette in Kleinbuchstaben.

substr(str: string, startIndex: number)

substr(str: string, startIndex: number, length: number)

Zeichenfolge

Gibt eine Teilzeichenkette aus dem durch das Zahlenargument angegebenen Index bis zum Ende der Zeichenkette zurück. Wenn die Funktion ein zweites Zahlenargument hat, enthält sie die Länge der abzurufenden Teilzeichenkette. Beispielsweise gibt substr("xyZfooxyZ",3, 3) "foo" zurück.

replace(fieldName: string, searchValue: string, replaceValue: string)

Zeichenfolge

Ersetzt alle Instances von searchValue in fieldName: string mit replaceValue.

Beispiel: Die Funktion replace(logGroup,"smoke_test","Smoke") sucht nach Protokollereignissen, bei denen das Feld logGroup den Zeichenfolgenwert smoke_test enthält und den Wert durch die Zeichenfolge Smoke ersetzt.

strcontains(str: string, searchValue: string)

Zahl

Gibt 1 zurück, wenn str searchValue enthält; ansonsten 0.