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

statistiche

Utilizza stats per creare visualizzazioni dei dati di log come grafici a barre, grafici a linee e grafici ad area in pila. Ciò consente di identificare in modo più efficiente i modelli nei dati di registro. CloudWatch Logs Insights genera visualizzazioni per le query che utilizzano la stats funzione e una o più funzioni di aggregazione.

Ad esempio, la seguente query in un gruppo di log Route 53 restituisce visualizzazioni che mostrano la distribuzione dei record di Route 53 all'ora, per tipo di query.

stats count(*) by queryType, bin(1h)

Tutte queste query possono produrre grafici a barre. Se la query utilizza la funzione bin() per raggruppare i dati per un campo nel tempo, è anche possibile visualizzare grafici a linee e grafici ad area in pila.

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

Visualizzazione dei dati di serie temporali

Le visualizzazioni delle serie temporali funzionano per le query con le seguenti caratteristiche:

Queste query possono produrre grafici a linee, grafici ad area in pila, grafici a barre e grafici a torta.

Examples (Esempi)

Per un tutorial completo, consulta Esercitazione: eseguire una query che produce una visualizzazione serie temporale.

Di seguito sono riportati altri esempi di query che funzionano per la visualizzazione delle serie temporali.

La seguente query genera una visualizzazione dei valori medi del campo myfield1, con un punto dati creato ogni cinque minuti. Ogni punto dati è l'aggregazione delle medie dei valori myfield1 dei log dei cinque minuti precedenti.

stats avg(myfield1) by bin(5m)

La seguente query genera una visualizzazione di tre valori basati su campi diversi, con un punto dati creato ogni cinque minuti. La visualizzazione viene generata perché la query contiene funzioni di aggregazione e usa bin() come campo di raggruppamento.

stats avg(myfield1), min(myfield2), max(myfield3) by bin(5m)

Restrizioni del grafico a linee e del grafico ad area in pila

Le query che aggregano le informazioni sulle voci di log, ma non utilizzano la funzione bin(), possono generare grafici a barre. Tuttavia, le query non possono generare grafici a linee o grafici ad area in pila. Per ulteriori informazioni su questi tipi di query, consulta Visualizzazione dei dati di log raggruppati per campi.

Visualizzazione dei dati di log raggruppati per campi

È possibile produrre grafici a barre per le query che utilizzano la funzione stats e una o più funzioni di aggregazione. Per ulteriori informazioni, consulta Aggregation Functions in the Stats Command.

Per visualizzare la visualizzazione, eseguire la query. Quindi scegliere la scheda Visualization (Visualizzazione) selezionare la freccia accanto a Linea (Linea), e scegliere Bar (barra). Le visualizzazioni sono limitate a un massimo di 100 barre nel grafico a barre.

Examples (Esempi)

Per un tutorial completo, consulta Esercitazione: eseguire una query che produce una visualizzazione raggruppata per campi di log. I paragrafi seguenti includono ulteriori query di esempio per la visualizzazione in base ai campi.

La seguente query di log di flusso VPC trova il numero medio di byte trasferiti per sessione per ogni indirizzo di destinazione.

stats avg(bytes) by dstAddr

È inoltre possibile produrre un grafico che include più di una barra per ogni valore risultante. Ad esempio, la query del log di flusso VPC seguente trova il numero medio e massimo di byte trasferiti per sessione per ogni indirizzo di destinazione.

stats avg(bytes), max(bytes) by dstAddr

La query seguente trova il numero di registro di query Amazon Route 53 per ogni tipo di query.

stats count(*) by queryType

Utilizzo di più comandi stats in un'unica query

È possibile utilizzare fino a due comandi stats in un'unica query. Ciò consente di eseguire un'aggregazione aggiuntiva sull'output della prima aggregazione.

Esempio: interrogazione con due comandi stats

Ad esempio, la seguente query trova innanzitutto il volume di traffico totale in contenitori da 5 minuti, quindi calcola il volume di traffico più alto, più basso e medio tra questi contenitori da 5 minuti.

FIELDS strlen(@message) AS message_length | STATS sum(message_length)/1024/1024 as logs_mb BY bin(5m) | STATS max(logs_mb) AS peak_ingest_mb, min(logs_mb) AS min_ingest_mb, avg(logs_mb) AS avg_ingest_mb

Esempio: combinazione di più comandi stats con altre funzioni come filter, fields e bin

È possibile combinare due comandi stats con altri comandi come filter e fields in un'unica query. Ad esempio, la seguente query trova il numero di indirizzi IP distinti nelle sessioni e trova il numero di sessioni per piattaforma client, filtra tali indirizzi IP e infine trova la media delle richieste di sessione per piattaforma client.

STATS count_distinct(client_ip) AS session_ips, count(*) AS requests BY session_id, client_platform | FILTER session_ips > 1 | STATS count(*) AS multiple_ip_sessions, sum(requests) / count(*) AS avg_session_requests BY client_platform

È possibile utilizzare le funzioni bin e dateceil nelle query con più comandi stats. Ad esempio, la seguente query combina prima i messaggi in blocchi da 5 minuti, quindi aggrega i blocchi da 5 minuti in blocchi da 10 minuti e calcola i volumi di traffico più alti, più bassi e medi all'interno di ogni blocco di 10 minuti.

FIELDS strlen(@message) AS message_length | STATS sum(message_length) / 1024 / 1024 AS logs_mb BY BIN(5m) as @t | STATS max(logs_mb) AS peak_ingest_mb, min(logs_mb) AS min_ingest_mb, avg(logs_mb) AS avg_ingest_mb BY dateceil(@t, 10m)

Note e limitazioni

Una query può avere al massimo due comandi stats. Questa quota non può essere modificata.

Se si utilizza un comando sort o limit, questo deve apparire dopo il secondo comando stats. Se è precedente al secondo comando stats, la query non è valida.

Quando una query ha due comandi stats, i risultati parziali della query non iniziano a essere visualizzati fino al completamento della prima aggregazione stats.

Nel secondo comando stats di un'unica query, è possibile fare riferimento solo ai campi definiti nel primo comando stats. Ad esempio, la seguente query non è valida perché il campo @message non sarà disponibile dopo la prima aggregazione stats.

FIELDS @message | STATS SUM(Fault) by Operation # You can only reference `SUM(Fault)` or Operation at this point | STATS MAX(strlen(@message)) AS MaxMessageSize # Invalid reference to @message

Tutti i campi a cui si fa riferimento dopo il primo comando stats devono essere definiti in tale primo comando stats.

STATS sum(x) as sum_x by y, z | STATS max(sum_x) as max_x by z # You can only reference `max(sum_x)`, max_x or z at this point
Importante

La funzione bin utilizza sempre implicitamente il campo @timestamp. Ciò significa che non è possibile utilizzare bin nel secondo comando stats senza utilizzare il primo comando stats per propagare il campo timestamp. Ad esempio, la query seguente non è valida.

FIELDS strlen(@message) AS message_length | STATS sum(message_length) AS ingested_bytes BY @logStream | STATS avg(ingested_bytes) BY bin(5m) # Invalid reference to @timestamp field

Definisci invece il campo @timestamp nel primo comando stats, quindi potrai utilizzarlo con dateceil nel secondo comando stats, come nell'esempio seguente.

FIELDS strlen(@message) AS message_length | STATS sum(message_length) AS ingested_bytes, max(@timestamp) as @t BY @logStream | STATS avg(ingested_bytes) BY dateceil(@t, 5m)

Funzioni da utilizzare con le statistiche

CloudWatch Logs Insights supporta sia le funzioni di aggregazione delle statistiche che le funzioni non di aggregazione delle statistiche.

Utilizza funzioni di aggregazione delle statistiche nel comando stats e come argomenti per altre funzioni.

Funzione Tipo di risultato Descrizione

avg(fieldName: NumericLogField)

number

La media dei valori nel campo specificato.

count()

count(fieldName: LogField)

number

Conta i log eventi. count() (o count(*)) conta tutti gli eventi restituiti dalla query, mentre count(fieldName) conta tutti i registri che includono il nome di campo specificato.

count_distinct(fieldName: LogField)

number

Restituisce il numero di valori univoci per il campo. Se il campo dispone di alta cardinalità (contiene molti valori univoci), il valore restituito da count_distinct è solo un'approssimazione.

max(fieldName: LogField)

LogFieldValue

Il numero massimo di valori per questo campo di log nei log di query.

min(fieldName: LogField)

LogFieldValue

Il numero minimo di valori per questo campo di log nei log di query.

pct(fieldName: LogFieldValue, percent: number)

LogFieldValue

Un percentile indica lo stato relativo di un valore in un set di dati. Ad esempio, pct(@duration, 95) restituisce il valore @duration a cui il 95% dei valori di @duration sono inferiori a questo valore e il 5% sono superiori a questo valore.

stddev(fieldName: NumericLogField)

number

La deviazione standard dei valori nel campo specificato.

sum(fieldName: NumericLogField)

number

La somma dei valori nel campo specificato.

Funzioni di non aggregazione delle statistiche

Utilizza funzioni di non aggregazione nel comando stats e come argomenti per altre funzioni.

Funzione Tipo di risultato Descrizione

earliest(fieldName: LogField)

LogField

Restituisce il valore di fieldName dal log eventi con il timestamp meno recente nei log oggetto della query.

latest(fieldName: LogField)

LogField

Restituisce il valore di fieldName dal log eventi con il timestamp più recente nei log oggetto della query.

sortsFirst(fieldName: LogField)

LogField

Restituisce il valore di fieldName che occupa la prima posizione dell'ordine nei log oggetto della query.

sortsLast(fieldName: LogField)

LogField

Restituisce il valore di fieldName che occupa l'ultima posizione dell'ordine nei log oggetto della query.