filter - 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à.

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 = value o filter requestId IN [value, value, ...] 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.

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 fieldName =... e filter fieldName IN... trarranno vantaggio dai miglioramenti apportati all'indice di campo. Le query con filter fieldName like non utilizzano indici e analizzano sempre tutti gli eventi di registro nei gruppi di log selezionati.

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/