Sintassi del modello di filtro per i filtri di parametri - 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à.

Sintassi del modello di filtro per i filtri di parametri

Nota

In che modo i filtri metrici differiscono dalle CloudWatch query di Logs Insights

I filtri metrici differiscono dalle query di CloudWatch Logs Insights in quanto un valore numerico specificato viene aggiunto a un filtro metrico ogni volta che viene trovato un log corrispondente. Per ulteriori informazioni, consulta Configurazione di valori di parametri per un filtro di parametri.

Per informazioni su come interrogare i tuoi gruppi di log con il linguaggio di query Amazon CloudWatch Logs Insights, consultaCloudWatch Sintassi delle interrogazioni in linguaggio Logs Insights.

Esempi di modelli di filtro generici

Per ulteriori informazioni sulla sintassi del modello di filtro generico applicabile ai filtri di parametri, nonché ai filtri di sottoscrizione e ai filtri di log eventi, consulta Sintassi del modello di filtro per filtri di parametri, filtri di sottoscrizione e filtri di log eventi, che include i seguenti esempi:

  • Sintassi delle espressioni regolari (regex) supportate

  • Corrispondenza dei termini nei log eventi non strutturati

  • Corrispondenza dei termini negli log eventi JSON

  • Corrispondenza dei termini in log eventi delimitati da spazi

I filtri metrici consentono di cercare e filtrare i dati di log che entrano in CloudWatch Logs, estrarre osservazioni metriche dai dati di log filtrati e trasformare i punti dati in una metrica Logs. CloudWatch Puoi definire i termini e i modelli da cercare nei dati di registro man mano che vengono inviati ai registri. CloudWatch I filtri di parametro vengono assegnati ai gruppi di log e tutti i filtri assegnati a un gruppo di log vengono applicati ai relativi flussi di log.

Quando un modello di filtro trova un termine corrispondente, aumenta il conteggio del parametro di un valore numerico specificato. Ad esempio, puoi creare un filtro di parametri per ricercare e contare l'occorrenza della parola ERROR nei tuoi log eventi.

È possibile assegnare unità e dimensioni ai parametri. Ad esempio, se crei un filtro di parametri che conta l'occorrenza della parola ERROR nei tuoi log eventi, puoi specificare una dimensione chiamata ErrorCode per mostrare il numero totale di log eventi che contengono la parola ERROR e filtrare i dati per codici di errore segnalati.

Suggerimento

Quando assegni un'unità di misura a un parametro, assicurati di specificare quella corretta. Se cambi l'unità in un secondo momento, la modifica potrebbe non avere effetto. Per l'elenco completo delle unità CloudWatch supportate, MetricDatumconsulta Amazon CloudWatch API Reference.

Configurazione di valori di parametri per un filtro di parametri

Quando crei un filtro di parametri, definisci il modello di filtro e specifichi il valore del parametro e il valore predefinito. Puoi impostare i valori dei parametri su numeri, identificatori di nome o identificatori numerici. Se non specifichi un valore predefinito, CloudWatch non riporterà i dati quando il filtro metrico non trova una corrispondenza. Consigliamo di specificare un valore predefinito, anche se il valore è 0. L'impostazione di un valore predefinito aiuta a CloudWatch riportare i dati in modo più accurato e CloudWatch impedisce l'aggregazione di metriche disomogenee. CloudWatch aggrega e riporta i valori delle metriche ogni minuto.

Quando il filtro di parametri trova una corrispondenza nei log eventi, aumenta il conteggio del parametro in base al valore dello stesso. Se il filtro metrico non trova una corrispondenza, CloudWatch riporta il valore predefinito della metrica. Ad esempio, il gruppo di log pubblica due record ogni minuto, il valore del parametro è 1 e quello predefinito è 0. Se il filtro di parametri rileva corrispondenze in entrambi i record di log nel primo minuto, il valore del parametro per quel minuto è pari a 2. Se il filtro di parametri non trova corrispondenze in entrambi i record durante il secondo minuto, il valore predefinito per quel minuto è 0. Se assegni dimensioni ai parametri generati dai filtri di parametri, non puoi specificare i valori predefiniti per tali parametri.

Puoi anche impostare un filtro di parametri per incrementare un parametro con un valore estratto da un log eventi, anziché un valore statico. Per ulteriori informazioni, consulta Utilizzo di valori nei log eventi per incrementare il valore di un parametro.

Pubblicazione di dimensioni con parametri da valori in JSON o log eventi delimitati da spazi

Puoi utilizzare la CloudWatch console o la AWS CLI per creare filtri metrici che pubblicano dimensioni con metriche generate da JSON e da eventi di registro delimitati da spazi. Le dimensioni sono coppie nome/valore e sono disponibili solo per modelli di filtro JSON e delimitati da spazi. Puoi creare filtri di parametri JSON e delimitati da spazi con un massimo di tre dimensioni. Per ulteriori informazioni sulle dimensioni e su come assegnare dimensioni ai parametri, consulta le seguenti sezioni:

Importante

Le dimensioni contengono valori che raccolgono addebiti identici ai parametri personalizzati. Per evitare addebiti imprevisti, non specificare come dimensioni campi ad alta cardinalità, ad esempio IPAddress o requestID.

Se estrai parametri dai log eventi, ti verranno fatturati come parametri personalizzati. Per aiutare a prevenire addebiti accidentali elevati, Amazon potrebbe disabilitare un filtro di parametri se genera 1000 coppie nome/valore diverse per le dimensioni specificate entro un determinato periodo di tempo.

Puoi creare allarmi di fatturazione per ricevere una notifica sugli addebiti stimati. Per ulteriori informazioni, consulta Creazione di un allarme di fatturazione per monitorare gli addebiti stimati. AWS

Gli esempi seguenti contengono frammenti di codice che descrivono come specificare le dimensioni in un filtro di parametri JSON.

Example: JSON log event
{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ {"name": "a", "id": 1 }, {"name": "b", "id": 2 } ] }
Nota

Se testi il filtro di parametri di esempio con il log eventi JSON di esempio, devi inserire il log JSON di esempio su una singola riga.

Example: Metric filter

Il filtro di parametri incrementa il parametro ogni volta che un log eventi JSON contiene le proprietà eventType e "sourceIPAddress".

{ $.eventType = "*" && $.sourceIPAddress != 123.123.* }

Quando crei un filtro di parametri JSON, puoi specificare una qualsiasi proprietà del filtro di parametri come dimensione. Ad esempio, per impostare eventType come dimensione, segui questa procedura:

"eventType" : $.eventType

La metrica di esempio contiene una dimensione denominata "eventType" e il valore della dimensione nel log eventi di esempio è "UpdateTrail".

Gli esempi seguenti contengono frammenti di codice che descrivono come specificare le dimensioni in un filtro di parametri delimitato da spazi.

Example: Space-delimited log event
127.0.0.1 Prod frank [10/Oct/2000:13:25:15 -0700] "GET /index.html HTTP/1.0" 404 1534
Example: Metric filter
[ip, server, username, timestamp, request, status_code, bytes > 1000]

Il filtro di parametri incrementa il parametro quando un log eventi delimitato da spazi include uno dei campi specificati nel filtro. Ad esempio, il filtro di parametri trova i seguenti campi e valori nell'esempio del log eventi delimitato da spazi.

{ "$bytes": "1534", "$status_code": "404", "$request": "GET /index.html HTTP/1.0", "$timestamp": "10/Oct/2000:13:25:15 -0700", "$username": "frank", "$server": "Prod", "$ip": "127.0.0.1" }

Quando crei un filtro di parametri delimitato da spazi, puoi specificare uno dei campi nel filtro di parametri come dimensione. Ad esempio, per impostare server come dimensione, segui questa procedura:

"server" : $server

Il filtro di parametri di esempio ha una dimensione denominata server e il valore della dimensione nel log eventi di esempio è "Prod".

Example: Match terms with AND (&&) and OR (||)

Puoi utilizzare gli operatori logici AND ("&&") e OR ("||") per creare filtri di parametri delimitati da spazi che contengono condizioni. Il seguente modello di filtro restituisce log eventi in cui la prima parola è ERROR o WARNING.

[w1=ERROR || w1=%WARN%, w2]

Utilizzo di valori nei log eventi per incrementare il valore di un parametro

Puoi creare filtri di parametri che pubblicano i valori numerici trovati nei log eventi. La procedura in questa sezione utilizza il seguente filtro di parametri di esempio per mostrare come è possibile pubblicare un valore numerico in un log eventi JSON in un parametro.

{ $.latency = * } metricValue: $.latency
Creazione di un filtro di parametri che pubblica un valore in un log eventi
  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel pannello di navigazione scegli Log, quindi Gruppi di log.

  3. Seleziona o crea un gruppo di log.

    Per informazioni su come creare un gruppo di log, consulta Creare un gruppo di log in CloudWatch Logs nella Amazon CloudWatch Logs User Guide.

  4. Scegli Actions (Operazioni) e quindi Create metric filter (Crea filtro parametri).

  5. In Modello di filtro, digita { $.latency = * }, quindi scegli Next (Successivo).

  6. In Metric Name (Nome parametro), digita myMetric.

  7. Per Valore parametro, immettere $.latency.

  8. (Facoltativo) In Valore predefinito immetti 0, quindi scegli Next (Successivo).

    Consigliamo di specificare un valore predefinito, anche se il valore è 0. L'impostazione di un valore predefinito aiuta a CloudWatch riportare i dati in modo più accurato e CloudWatch impedisce l'aggregazione di metriche errate. CloudWatch aggrega e riporta i valori delle metriche ogni minuto.

  9. Scegli Crea filtro parametri.

Il filtro di parametri di esempio corrisponde al termine "latency" nel log eventi JSON di esempio e pubblica un valore numerico pari a 50 per il parametro myMetric.

{ "latency": 50, "requestType": "GET" }