

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

 Utilice `stats` para crear visualizaciones de los datos de registro, como gráficos de barras, gráficos de líneas y gráficos de áreas apiladas. Esto le ayuda a identificar de forma más eficiente los patrones en los datos de registro. CloudWatch Logs Insights genera visualizaciones para las consultas que utilizan la `stats` función y una o más funciones de agregación. 

Por ejemplo, la siguiente consulta en un grupo de registro de Route 53 devuelve visualizaciones que muestran la distribución de los registros de Route 53 por hora, por tipo de consulta.

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

Todas estas consultas pueden generar gráficos de barras. Si la consulta utiliza la función `bin()` para agrupar los datos en función de un mismo campo a lo largo del tiempo, también puede ver gráficos de líneas y gráficos de áreas apiladas.

La función `bin` admite las siguientes unidades de tiempo y abreviaturas. Para todas las unidades y abreviaturas que incluyan más de un carácter, se admite agregar s para pluralizar. Así que tanto `hr` como `hrs` funcionan para especificar las horas.
+ `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**
+ [Visualización de datos de series temporales](#CWL_Insights-Visualizing-TimeSeries)
+ [Visualización de datos de registro agrupados por campos](#CWL_Insights-Visualizing-ByFields)
+ [Utilice varios comandos de estadísticas en una sola consulta](#CWL_QuerySyntax-stats-multi)
+ [Funciones para usar con estadísticas](#CWL_QuerySyntax-stats-functions)

## Visualización de datos de series temporales
<a name="CWL_Insights-Visualizing-TimeSeries"></a>

Las visualizaciones de series temporales funcionan con las consultas que tienen las siguientes características:
+ La consulta contiene una o varias funciones de agregación. Para obtener más información, consulte [Aggregation Functions in the Stats Command](#CWL_Insights_Aggregation_Functions).
+ La consulta utiliza la función `bin()` para agrupar los datos por un campo. 

Estas consultas pueden generar gráficos de líneas, de áreas apiladas, de barras y circulares. 

**Ejemplos**

Para ver un tutorial completo, consulte [Tutorial: Ejecutar una consulta que produce una visualización de serie temporal](CWL_AnalyzeLogData_VisualizationQuery.md). 

Aquí hay más consultas de ejemplo que funcionan para la visualización de series temporales.

La siguiente consulta genera una visualización de los valores medios del campo `myfield1`, con un punto de datos creado cada cinco minutos. Cada punto de datos es la agregación de las medias de los valores `myfield1` de los registros de los últimos cinco minutos.

```
stats avg(myfield1) by bin(5m)
```

La siguiente consulta genera una visualización de los tres valores basados en diferentes campos, con un punto de datos creado cada cinco minutos. La visualización se genera porque la consulta contiene las funciones de agregación y utiliza `bin()` como campo de agrupación.

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

**Restricciones de los gráficos de líneas y de áreas apiladas**

Las consultas que agregan información de entradas de registro pero no utilizan la función `bin()` pueden generar gráficos de barras. Sin embargo, las consultas no pueden generar gráficos de líneas ni gráficos de áreas apiladas. Para obtener más información sobre estos tipos de consultas, visite [Visualización de datos de registro agrupados por campos](#CWL_Insights-Visualizing-ByFields).

## Visualización de datos de registro agrupados por campos
<a name="CWL_Insights-Visualizing-ByFields"></a>

Puede generar gráficos de barras para consultas que utilizan la función `stats` y una o varias funciones de agregación. Para obtener más información, consulte [Aggregation Functions in the Stats Command](#CWL_Insights_Aggregation_Functions).

Para ver la visualización, ejecute la consulta. A continuación, elija la pestaña **Visualization (Visualización)**, seleccione la flecha situada junto a **Line (Línea)** y haga clic en **Bar (Barra)**. Las visualizaciones de los gráficos de barras tienen un límite máximo de 100 barras.

**Ejemplos**

Para ver un tutorial completo, consulte [Tutorial: Ejecutar una consulta que produce una visualización agrupada por campos de registro](CWL_AnalyzeLogData_VisualizationFieldQuery.md). Los párrafos siguientes incluyen más consultas de ejemplo de visualizaciones por campos.

La siguiente consulta de registro de flujo de VPC busca el número medio de bytes transferidos por sesión en cada dirección de destino.

```
stats avg(bytes) by dstAddr
```

También puede generar un gráfico que contenga varias barras para cada valor resultante. Por ejemplo, la siguiente consulta de registro de flujo de VPC busca el número medio y máximo de bytes transferidos por sesión en cada dirección de destino.

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

En la siguiente consulta, se busca el número de registros de Amazon Route 53 para cada tipo de consulta.

```
stats count(*) by queryType
```

## Utilice varios comandos de estadísticas en una sola consulta
<a name="CWL_QuerySyntax-stats-multi"></a>

Puede usar hasta dos comandos `stats` en una sola consulta. Esto le permite realizar una agregación adicional en el resultado de la primera agregación.

**Ejemplo: consulta con dos comandos `stats`**

Por ejemplo, la siguiente consulta busca primero el volumen de tráfico total en los intervalos de 5 minutos y, a continuación, calcula el volumen de tráfico más alto, más bajo y medio de esos intervalos de 5 minutos.

```
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
```

**Ejemplo: combine varios comandos de estadísticas con otras funciones, como `filter`, `fields`, `bin`**

Puede combinar dos comandos `stats` con otros comandos, como `filter` y `fields`, en una sola consulta. Por ejemplo, la siguiente consulta busca el número de direcciones IP distintas en las sesiones y busca el número de sesiones por plataforma de cliente, filtra esas direcciones IP y, finalmente, busca el promedio de solicitudes de sesión por plataforma del cliente.

```
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
```

Puede utilizar funciones `bin` y `dateceil` en consultas con varios comandos `stats`. Por ejemplo, la siguiente consulta combina primero los mensajes en bloques de 5 minutos, luego agrega esos bloques de 5 minutos en bloques de 10 minutos y calcula los volúmenes de tráfico más altos, más bajos y promedio dentro de cada bloque de 10 minutos.

```
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)
```

**Notas y limitaciones**

Una consulta puede tener un máximo de dos comandos `stats`. Esta cuota no se puede cambiar. 

Si utiliza un comando `sort` o `limit`, debe aparecer después del segundo comando `stats`. Si está antes del segundo comando `stats`, la consulta no es válida.

Cuando una consulta tiene dos comandos `stats`, los resultados parciales de la consulta no comienzan a mostrarse hasta que se completa la primera agregación `stats`.

En el segundo comando `stats` de una consulta única, solo puede hacer referencia a los campos definidos en el primer comando `stats`. Por ejemplo, la siguiente consulta no es válida porque el campo `@message` no estará disponible después de la primera agregación `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
```

Todos los campos a los que haga referencia después del primer comando `stats` deben definirse en ese primer 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 función `bin` siempre utiliza el campo `@timestamp` de forma implícita. Esto significa que no se puede usar `bin` en el segundo comando `stats` sin usar el primer comando `stats` para propagar el campo `timestamp`. Por ejemplo, la siguiente consulta no es válida.  

```
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
```
En su lugar, defina el campo `@timestamp` en el primer comando `stats` y, a continuación, podrá usarlo con `dateceil` en el segundo comando `stats`, como en el siguiente ejemplo.  

```
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)
```

## Funciones para usar con estadísticas
<a name="CWL_QuerySyntax-stats-functions"></a><a name="CWL_Insights_Aggregation_Functions"></a>

CloudWatch Logs Insights admite funciones de agregación de estadísticas y funciones de no agregación de estadísticas.

 Utilice las funciones de agregación de estadísticas en el comando `stats` y como argumentos para otras funciones. 


| Función | Tipo de resultado | Description (Descripción) | 
| --- | --- | --- | 
|  `avg(fieldName: NumericLogField)` |  número |  La media de los valores en el campo especificado.  | 
|  `count()` `count(fieldName: LogField)` |  número |  Cuenta los eventos de registro. `count()` (o `count(*)`) cuenta todos los eventos devueltos por la consulta, mientras que `count(fieldName)` cuenta todos los registros que incluyen el nombre de campo especificado.  | 
|  `count_distinct(fieldName: LogField)` |  número |  Devuelve el número de valores únicos para el campo. Si el campo tiene una cardinalidad muy alta (contiene muchos valores únicos), el valor devuelto por `count_distinct` es solo una aproximación.  | 
|  `max(fieldName: LogField)` |  LogFieldValue |  El máximo de los valores para este campo de registro en los registros consultados.  | 
|  `min(fieldName: LogField)` |  LogFieldValue |  El mínimo de los valores para este campo de registro en los registros consultados.  | 
|  `pct(fieldName: LogFieldValue, percent: number)` |  LogFieldValue |  Un percentil indica el peso relativo de un valor en un conjunto de datos. Por ejemplo, `pct(@duration, 95)` devuelve el valor `@duration` en que el 95 % de los valores de `@duration` son inferiores a este valor y un 5 por ciento son superiores a este valor.  | 
|  `stddev(fieldName: NumericLogField)` |  número |  El desvío estándar de los valores en el campo especificado.  | 
|  `sum(fieldName: NumericLogField)` |  número |  La suma de los valores en el campo especificado.  | 

 **Funciones sin agregación de estadísticas** <a name="CWL_Insights_Non-Aggregation_Functions"></a>

 Utilice las funciones de no agregación en el comando `stats` y como argumentos para otras funciones. 


| Función | Tipo de resultado | Description (Descripción) | 
| --- | --- | --- | 
|  `earliest(fieldName: LogField)` |  LogField |  Devuelve el valor de `fieldName` desde el evento de registro que tiene la primera marca temporal en los registros consultados.  | 
|  `latest(fieldName: LogField)` |  LogField |  Devuelve el valor de `fieldName` desde el evento de registro que tiene la última marca temporal en los registros consultados.  | 
|  `sortsFirst(fieldName: LogField)` |  LogField |  Devuelve el valor de `fieldName` que ordena en primer lugar los registros consultados.  | 
|  `sortsLast(fieldName: LogField)` |  LogField |  Devuelve el valor de `fieldName` que ordena al final los registros consultados.  | 