

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

# stats
<a name="CWL_QuerySyntax-Stats"></a>

 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`

**Topics**
+ [Visualizzazione dei dati di serie temporali](#CWL_Insights-Visualizing-TimeSeries)
+ [Visualizzazione dei dati di log raggruppati per campi](#CWL_Insights-Visualizing-ByFields)
+ [Utilizzo di più comandi stats in un'unica query](#CWL_QuerySyntax-stats-multi)
+ [Funzioni da utilizzare con le statistiche](#CWL_QuerySyntax-stats-functions)

## Visualizzazione dei dati di serie temporali
<a name="CWL_Insights-Visualizing-TimeSeries"></a>

Le visualizzazioni delle serie temporali funzionano per le query con le seguenti caratteristiche:
+ La query contiene una o più funzioni di aggregazione. Per ulteriori informazioni, consulta [Aggregation Functions in the Stats Command](#CWL_Insights_Aggregation_Functions).
+ La query utilizza la funzione `bin()` per raggruppare i dati di un campo. 

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

**Esempi**

Per un tutorial completo, consulta [Esercitazione: eseguire una query che produce una visualizzazione serie temporale](CWL_AnalyzeLogData_VisualizationQuery.md). 

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](#CWL_Insights-Visualizing-ByFields).

## Visualizzazione dei dati di log raggruppati per campi
<a name="CWL_Insights-Visualizing-ByFields"></a>

È 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](#CWL_Insights_Aggregation_Functions).

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.

**Esempi**

Per un tutorial completo, consulta [Esercitazione: eseguire una query che produce una visualizzazione raggruppata per campi di log](CWL_AnalyzeLogData_VisualizationFieldQuery.md). 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
<a name="CWL_QuerySyntax-stats-multi"></a>

È 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
<a name="CWL_QuerySyntax-stats-functions"></a><a name="CWL_Insights_Aggregation_Functions"></a>

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 | Description | 
| --- | --- | --- | 
|  `avg(fieldName: NumericLogField)` |  numero |  La media dei valori nel campo specificato.  | 
|  `count()` `count(fieldName: LogField)` |  numero |  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)` |  numero |  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)` |  numero |  La deviazione standard dei valori nel campo specificato.  | 
|  `sum(fieldName: NumericLogField)` |  numero |  La somma dei valori nel campo specificato.  | 

 **Funzioni di non aggregazione delle statistiche** <a name="CWL_Insights_Non-Aggregation_Functions"></a>

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


| Funzione | Tipo di risultato | Description | 
| --- | --- | --- | 
|  `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.  | 