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à.
filter
Utilizza filter
per ottenere log eventi che corrispondono a una o più condizioni.
Esempio: filtrare i log eventi utilizzando una condizione
Il frammento di codice mostra un esempio di query che restituisce tutti i log eventi in cui il valore per range
è maggiore di 3000. La query limita i risultati a 20 log eventi e li ordina per @timestamp
e in ordine decrescente.
fields @timestamp, @message | filter (range>3000) | sort @timestamp desc | limit 20
Esempio: filtrare i log eventi utilizzando più di una condizione
È possibile utilizzare le parole chiave and
e or
per combinare più condizioni.
Il frammento di codice mostra un esempio di query che restituisce tutti i log eventi in cui il valore per range
è maggiore di 3000 e il valore per accountId
è uguale a 123456789012. La query limita i risultati a 20 log eventi e li ordina per @timestamp
e in ordine decrescente.
fields @timestamp, @message | filter (range>3000 and accountId=123456789012) | sort @timestamp desc | limit 20
Campi indicizzati e comando filter
Se hai creato indici di campo per un gruppo di log, puoi sfruttare tali indici di campo per rendere le tue filter
query più efficienti e ridurre il volume di scansioni. Ad esempio, supponiamo di aver creato un indice di campo per. requestId
Quindi, qualsiasi query di CloudWatch Logs Insights su quel gruppo di log che includa filter requestId =
o value
filter requestId IN [
tenterà di ignorare l'elaborazione di eventi di registro di cui è noto che non includono il campo indicizzato. Tentando di scansionare solo gli eventi di registro che sono noti per contenere quel campo indicizzato, è possibile ridurre il volume di scansione e velocizzare la query.value
, value
, ...]
Per ulteriori informazioni sugli indici di campo e su come crearli, vedere. Crea indici di campo per migliorare le prestazioni delle query e ridurre il volume di scansione
Importante
Solo le interrogazioni che prevedono filter
e fieldName
=...filter
trarranno vantaggio dai miglioramenti apportati all'indice di campo. Le query con fieldName
IN...filter
non utilizzano indici e analizzano sempre tutti gli eventi di registro nei gruppi di log selezionati.fieldName
like
Esempio: trova gli eventi di registro correlati a un determinato ID di richiesta, utilizzando gli indici
L'esempio presuppone che sia stato creato un indice di campo su. requestId
Per i gruppi di log che utilizzano questo indice di campo, la query sfrutterà gli indici di campo per tentare di analizzare il minor numero di eventi di registro per trovare eventi con requestId
un valore di 123456
fields @timestamp, @message | filter requestId = "1234656" | limit 20
Corrispondenze ed espressioni regolari nel comando di filtro
Il comando di filtro supporta l'uso di espressioni regolari. Puoi utilizzare i seguenti operatori di confronto (=
, !=
, <
, <=
, >
, >=
) e operatori booleani (and
, or
e not
).
Puoi utilizzare la parola chiave in
per verificare l'appartenenza impostata e la presenza di elementi in una matrice. Per verificare la presenza di elementi in una matrice, posiziona la matrice subito dopo in
. Puoi utilizzare l'operatore booleano not
con in
. Puoi creare query che utilizzano in
per restituire log eventi in cui i campi sono le stringhe corrispondenti. I campi devono essere stringhe complete. Ad esempio, il seguente frammento di codice mostra una query che utilizza in
per restituire log eventi in cui il campo logGroup
è la stringa completa example_group
.
fields @timestamp, @message | filter logGroup in ["example_group"]
Puoi utilizzare le frasi di parole chiave like
e not like
per restituire le sottostringhe corrispondenti. Puoi utilizzare l'operatore di espressione regolare =~
per restituire le sottostringhe corrispondenti. Per restituire una sottostringa corrispondente con like
e not like
, racchiudi la sottostringa tra virgolette singole o doppie. Puoi utilizzare modelli di espressioni regolari con like
e not like
. Per restituire una sottostringa corrispondente con l'operatore dell'espressione regolare, racchiudi la sottostringa tra le barre. Gli esempi seguenti contengono frammenti di codice che mostrano come è possibile restituire le sottostringhe corrispondenti utilizzando il comando filter
.
Esempi: corrispondenza di sottostringhe
I tre esempi seguenti restituiscono log eventi in cui f1
contiene la parola Exception. I tre esempi fanno distinzione tra lettere maiuscole e minuscole.
Il primo esempio restituisce una sottostringa corrispondente con like
.
fields f1, f2, f3 | filter f1 like "Exception"
Il secondo esempio restituisce una sottostringa corrispondente con like
e un modello di espressione regolare.
fields f1, f2, f3 | filter f1 like /Exception/
Il terzo esempio restituisce una sottostringa corrispondente con un'espressione regolare.
fields f1, f2, f3 | filter f1 =~ /Exception/
Esempio: corrispondenza di sottostringhe con caratteri jolly
Puoi utilizzare il simbolo dei due punti (.
) come carattere jolly nelle espressioni regolari per restituire le sottostringhe corrispondenti. Nell'esempio seguente, la query restituisce le corrispondenze in cui il valore per f1
inizia con la stringa ServiceLog
.
fields f1, f2, f3 | filter f1 like /ServiceLog./
Puoi posizionare un asterisco dopo il simbolo del punto (.*
) per creare un quantificatore greedy che restituisca il maggior numero possibile di corrispondenze. Ad esempio, la query seguente restituisce i risultati in cui il valore per f1
non inizia solo con la stringa ServiceLog
, ma include anche la stringa ServiceLog
.
fields f1, f2, f3 | filter f1 like /ServiceLog.*/
Le possibili corrispondenze possono essere formattate come segue:
-
ServiceLogSampleApiLogGroup
-
SampleApiLogGroupServiceLog
Esempio: esclusione di sottostringhe dalle corrispondenze
Il seguente esempio mostra una query che restituisce log eventi in cui f1
non contiene la parola Exception. L'esempio fa distinzione tra maiuscole e minuscole.
fields f1, f2, f3 | filter f1 not like "Exception"
Esempio: corrispondenza di sottostringhe con modelli che non fanno distinzione tra maiuscole e minuscole
Puoi associare le sottostringhe che non fanno distinzione tra maiuscole e minuscole con espressioni like
e regolari. Posiziona il parametro (?i) prima della sottostringa corrispondente che desideri restituire. Il seguente esempio mostra una query che restituisce log eventi in cui f1
contiene la parola Exception o exception.
fields f1, f2, f3 | filter f1 like /(?i)Exception/