Funzioni booleane, di confronto, numeriche, datetime e altre - CloudWatch Registri Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzioni booleane, di confronto, numeriche, datetime e altre

CloudWatch Logs Insights supporta molte altre operazioni e funzioni nelle query, come spiegato nelle sezioni seguenti.

Operatori aritmetici

Le operazioni aritmetiche accettano tipi di dati numerici come argomenti e restituiscono risultati numerici. Puoi utilizzare operazioni aritmetiche nei comandi filter e fields e come argomenti per altre funzioni.

Operazione Descrizione

a + b

Addizione

a - b

Sottrazione

a * b

Moltiplicazione

a / b

Divisione

a ^ b

Elevamento a potenza (2 ^ 3 restituisce 8)

a % b

Resto o modulo (10 % 3 restituisce 1)

Operatori booleani

Utilizza gli operatori booleani and, or e not.

Nota

Utilizzate gli operatori booleani solo nelle funzioni che restituiscono il valore o. TRUEFALSE

Operatori di confronto

Le operazioni di confronto accettano tutti i tipi di dati come argomenti e restituiscono un risultato booleano. Utilizza operazioni di confronto nel comando filter e come argomenti per altre funzioni.

Operatore Descrizione

=

Uguale

!=

Non uguale

<

Minore di

>

Maggiore di

<=

Minore o uguale a

>=

Maggiore o uguale a

Operatori numerici

Le operazioni numeriche accettano tipi di dati numerici come argomenti e restituiscono risultati numerici. Utilizza operazioni aritmetiche nei comandi filter e fields, oltre che come argomenti per altre funzioni.

Operazione Tipo di risultato Descrizione

abs(a: number)

number

Valore assoluto

ceil(a: number)

number

Arrotonda per eccesso (l'intero più piccolo che è maggiore del valore di a)

floor(a: number)

number

Arrotonda per difetto (l'intero più grande che è minore del valore di a)

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

number

Restituisce il valore più grande

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

number

Restituisce il valore di piccolo

log(a: number)

number

Log naturale

sqrt(a: number)

number

Radice quadrata

Tipi di struttura

Una mappa o un elenco è un tipo di struttura in CloudWatch Logs Insights che consente di accedere e utilizzare gli attributi per le query.

Esempio: per ottenere una mappa o un elenco

Si usa jsonParse per analizzare un campo che è una stringa json in una mappa o in un elenco.

fields jsonParse(@message) as json_message
Esempio: per accedere agli attributi

Utilizza l'operatore dot access (map.attribute) per accedere agli elementi in una mappa. Se un attributo in una mappa contiene caratteri speciali, usa i backtick per racchiudere il nome dell'attributo (map.attributes). `special.char`).

fields jsonParse(@message) as json_message | stats count() by json_message.status_code

Usa l'operatore di accesso tra parentesi (list [index]) per recuperare un elemento in una posizione specifica all'interno dell'elenco.

fields jsonParse(@message) as json_message | filter json_message.users[1].action = "PutDat

Se nel nome della chiave sono presenti caratteri speciali, racchiudi i caratteri speciali nei backtick (``).

fields jsonParse(@message) as json_message | filter json_message.`user.id` = "123"
Esempio: risultati vuoti

Le mappe e gli elenchi vengono considerati nulli per le funzioni di tipo stringa, numerico e datetime.

fields jsonParse(@message) as json_message | display toupper(json_message)

Il risultato del confronto della mappa e dell'elenco con qualsiasi altro campo risulta. false

Nota

L'utilizzo di map and list in deduppattern,sort, e stats non è supportato.

Funzioni DateTime

Funzioni DateTime

Utilizza le funzioni datetime nei comandi fields e filter e come argomenti per altre funzioni. Utilizza queste funzioni per creare bucket temporali per le query con funzioni di aggregazione. Utilizza periodi di tempo composti da un numero e da uno dei seguenti:

  • msper millisecondi

  • sper secondi

  • mper minuti

  • hper ore

Ad esempio, 10m è 10 minuti e 1h è un'ora.

Nota

Usa l'unità di tempo più appropriata per la tua funzione datetime. CloudWatch Logs limita la richiesta in base all'unità di tempo scelta. Ad esempio, limita 60 come valore massimo per qualsiasi richiesta che utilizza. s Quindi, se si specificabin(300s), CloudWatch Logs lo implementa effettivamente come 60 secondi, poiché 60 è il numero di secondi in un minuto, quindi CloudWatch Logs non utilizzerà un numero superiore a 60 con. s Per creare un bucket da 5 minuti, usa invece. bin(5m)

Il limite di ms è 1000, i cappucci di s e m sono 60 e il limite di h è 24.

La tabella seguente contiene un elenco delle diverse funzioni datetime che è possibile utilizzare nei comandi di query. La tabella elenca il tipo di risultato di ciascuna funzione e contiene una descrizione di ciascuna funzione.

Suggerimento

Quando crei un comando di query, puoi utilizzare il selettore temporale per selezionare un periodo di tempo per il quale desideri eseguire query. Ad esempio, puoi impostare un periodo di tempo con intervalli di 5 e 30 minuti, intervalli di 1, 3 e 12 ore oppure un intervallo di tempo personalizzato. Puoi anche impostare periodi di tempo tra date specifiche.

Funzione Tipo di risultato Descrizione

bin(period: Period)

Timestamp

Arrotonda il valore di @timestamp al periodo di tempo specificato per poi troncarlo. Ad esempio, bin(5m) arrotonda il valore @timestamp ai 5 minuti più vicini.

È possibile utilizzarlo per raggruppare più voci di log in un'interrogazione. L'esempio seguente restituisce il numero di eccezioni all'ora:

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

La funzione bin supporta le seguenti abbreviazioni e unità di tempo. Per tutte le unità e le abbreviazioni che includono più di un carattere, è supportata l'aggiunta di s per il plurale. Quindi entrambi hr e hrs lavorano per specificare gli orari.

  • 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)

Timestamp

Tronca il time stamp al periodo specificato. Ad esempio, datefloor(@timestamp, 1h) tronca tutti i valori di @timestamp alla mezzora.

dateceil(timestamp: Timestamp, period: Period)

Timestamp

Arrotonda il time stamp al periodo specificato e quindi tronca. Ad esempio, dateceil(@timestamp, 1h) tronca tutti i valori di @timestamp all'inizio di ogni ora.

fromMillis(fieldName: number)

Timestamp

Interpreta il campo di input come il numero di millisecondi dall'epoca Unix e lo converte in un timestamp.

toMillis(fieldName: Timestamp)

number

Converte il timestamp trovato nel campo denominato in un numero che rappresenta i millisecondi dall'epoca di Unix. Ad esempio, toMillis(@timestamp) converte il timestamp 2022-01-14T13:18:031.000-08:00 in 1642195111000.

Nota

Attualmente, CloudWatch Logs Insights non supporta il filtraggio dei log con timestamp leggibili dall'uomo.

Funzioni generali

Funzioni generali

Utilizza le funzioni generali nei comandi fields e filter e come argomenti per altre funzioni.

Funzione Tipo di risultato Descrizione

ispresent(fieldName: LogField)

Booleano

Restituisce true se il campo esiste

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

LogField

Restituisce il primo valore non nullo dall'elenco.

Funzioni JSON

Funzioni JSON

Usa JSON le funzioni nei filter comandi fields and e come argomenti per altre funzioni.

Funzione Tipo di risultato Descrizione

jsonParse(fieldName: string)

Mappa | Elenco | Vuoto

Restituisce una mappa o un elenco quando l'input è una rappresentazione in formato stringa di un JSON oggetto o di un JSON array. Restituisce un valore vuoto, se l'input non è una delle rappresentazioni.

jsonStringify(fieldName: string)

Stringa

Restituisce una mappa o un elenco quando l'input è una rappresentazione in formato stringa di un JSON oggetto o di un JSON array. Restituisce un valore vuoto, se l'input non è una delle rappresentazioni. Restituisce una JSON stringa da una mappa o da un elenco di dati.

Funzioni della stringa di indirizzi IP

Funzioni della stringa di indirizzi IP

Utilizza le funzioni stringa per gli indirizzi IP nei comandi filter e fields, oltre che come argomenti per altre funzioni.

Funzione Tipo di risultato Descrizione

isValidIp(fieldName: string)

booleano

Restituisce true se il campo è un IPv6 indirizzo IPv4 o valido.

isValidIpV4(fieldName: string)

booleano

Restituisce true se il campo è un IPv4 indirizzo valido.

isValidIpV6(fieldName: string)

booleano

Restituisce true se il campo è un IPv6 indirizzo valido.

isIpInSubnet(fieldName: string, subnet: string)

booleano

Restituisce true se il campo è un IPv6 indirizzo IPv4 or valido all'interno della sottorete v4 o v6 specificata. Quando specificate la sottorete, utilizzate una CIDR notazione come 192.0.2.0/24 o2001:db8::/32, dove 192.0.2.0 o 2001:db8:: è l'inizio del blocco. CIDR

isIpv4InSubnet(fieldName: string, subnet: string)

booleano

Restituisce true se il campo è un IPv4 indirizzo valido all'interno della sottorete v4 specificata. Quando specifichi la sottorete, utilizzate una CIDR notazione come 192.0.2.0/24 192.0.2.0 dov'è l'inizio del blocco.. CIDR

isIpv6InSubnet(fieldName: string, subnet: string)

booleano

Restituisce true se il campo è un IPv6 indirizzo valido all'interno della sottorete v6 specificata. Quando specificate la sottorete, utilizzate una CIDR notazione come 2001:db8::/32 2001:db8:: dov'è l'inizio del blocco. CIDR

Funzioni stringa

Funzioni stringa

Utilizza le funzioni stringa nei comandi fields e filter, oltre che come argomenti per altre funzioni.

Funzione Tipo di risultato Descrizione

isempty(fieldName: string)

Numero

Restituisce 1 se il campo manca o è una stringa vuota.

isblank(fieldName: string)

Numero

Restituisce 1 se il campo manca, è una stringa vuota o contiene solo spazi vuoti.

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

string

Concatena le stringhe.

ltrim(str: string)

ltrim(str: string, trimChars: string)

string

Se la funzione non dispone di un secondo argomento, rimuove gli spazi vuoti dalla sinistra della stringa. Se la funzione dispone di un secondo argomento stringa, non rimuove gli spazi vuoti. Invece, rimuove i caratteri in trimChars dalla sinistra di str. Ad esempio, ltrim("xyZxyfooxyZ","xyZ") restituisce "fooxyZ".

rtrim(str: string)

rtrim(str: string, trimChars: string)

string

Se la funzione dispone di un secondo argomento stringa, rimuove gli spazi vuoti dalla destra della stringa. Se la funzione dispone di un secondo argomento stringa, non rimuove gli spazi vuoti. Invece, rimuove i caratteri di trimChars dalla destra di str. Ad esempio, rtrim("xyZfooxyxyZ","xyZ") restituisce "xyZfoo".

trim(str: string)

trim(str: string, trimChars: string)

string

Se la funzione dispone di un secondo argomento, rimuove gli spazi vuoti da entrambe le estremità della stringa. Se la funzione dispone di un secondo argomento stringa, non rimuove gli spazi vuoti. Invece, rimuove i caratteri di trimChars da entrambi i lati di str. Ad esempio, trim("xyZxyfooxyxyZ","xyZ") restituisce "foo".

strlen(str: string)

number

Restituisce la lunghezza della stringa in punti di codice Unicode.

toupper(str: string)

string

Converte la stringa in maiuscolo.

tolower(str: string)

string

Converte la stringa in minuscolo.

substr(str: string, startIndex: number)

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

string

Restituisce una sottostringa partendo dall'indice specificato dall'argomento numero fino alla fine della stringa. Se la funzione dispone di un secondo argomento numero, contiene la lunghezza della sottostringa da recuperare. Ad esempio, substr("xyZfooxyZ",3, 3) restituisce "foo".

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

string

Sostituisce tutte le istanze di searchValue in fieldName: string con replaceValue.

Ad esempio, la funzione replace(logGroup,"smoke_test","Smoke") cerca log eventi in cui il campo logGroup contiene il valore della stringa smoke_test e sostituisce il valore con la stringa Smoke.

strcontains(str: string, searchValue: string)

number

Restituisce 1 se str contiene searchValue e 0 in caso contrario.