

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.

# Creación de métricas a partir de eventos de registro mediante filtros
<a name="MonitoringLogData"></a>

Puede buscar y filtrar los datos de registro que entran en CloudWatch los registros creando uno o más *filtros de métricas*. Los filtros métricos definen los términos y patrones que se deben buscar en los datos de registro a medida que se envían a CloudWatch los registros. CloudWatch Logs utiliza estos filtros de métricas para convertir los datos de registro en CloudWatch métricas numéricas que se pueden representar gráficamente o activar una alarma.

Al crear una métrica a partir de un filtro de registro, también puede optar por asignar dimensiones y una unidad a la métrica. Si especifica una unidad, asegúrese de especificar la correcta cuando cree el filtro. Cambiar la unidad del filtro más tarde no tendrá ningún efecto.

Si ha configurado cuentas de miembros AWS Organizations y trabaja con ellas, puede utilizar la centralización de registros para recopilar datos de registro de las cuentas de origen y convertirlos en una cuenta de supervisión central. 

Al trabajar con grupos de registros centralizados, puede utilizar estas dimensiones de los campos del sistema al crear filtros de métricas.
+ `@aws.account`- Esta dimensión representa el ID de AWS cuenta desde el que se originó el evento de registro.
+ `@aws.region`- Esta dimensión representa la AWS región en la que se generó el evento de registro. 

Estas dimensiones ayudan a identificar el origen de los datos de registro, lo que permite filtrar y analizar de forma más detallada las métricas derivadas de los registros centralizados. Para obtener más información, consulte [Centralización de registros entre cuentas y regiones](CloudWatchLogs_Centralization.md).

Si un grupo de registro con una suscripción utiliza la transformación de registros, el patrón de filtro se aplica a las versiones transformadas de los eventos de registro. Para obtener más información, consulte [Transformación de los registros durante la ingestión](CloudWatch-Logs-Transformation.md).

**nota**  
Los filtros de métricas solo se admiten en los grupos de registro de la clase de registro Estándar. Para obtener más información acerca de las clases de registros, consulte [Clases de registro](CloudWatch_Logs_Log_Classes.md).

Puede utilizar cualquier tipo de CloudWatch estadística, incluidas las estadísticas de percentiles, al ver estas métricas o configurar las alarmas.

**nota**  
Las métricas admiten estadísticas de percentiles solo si ninguno de sus valores es negativo. Si configura el filtro de métricas para que pueda notificar números negativos, las estadísticas de percentiles no estarán disponibles para esa métrica cuando tenga valores de números negativos. Para obtener más información, consulte [Percentiles](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Percentiles).

Los filtros no pueden filtrar datos retroactivamente. Los filtros solo publican los puntos de datos de métricas para eventos que ocurran después de la creación del filtro. Al probar un patrón de filtro, la vista previa **Resultados del filtro** muestra hasta las 50 primeras líneas de registro coincidentes con fines de validación. Si la marca de tiempo de los resultados filtrados es anterior a la hora de creación de la métrica, no se muestra ningún registro.

**Topics**
+ [Conceptos](#search-filter-concepts)
+ [Sintaxis del patrón de filtro para filtros métricos](FilterAndPatternSyntaxForMetricFilters.md)
+ [Creación de filtros de métricas](MonitoringPolicyExamples.md)
+ [Enumeración de filtros de métricas](ListingMetricFilters.md)
+ [Eliminación de un filtro de métricas](DeletingMetricFilter.md)

## Conceptos
<a name="search-filter-concepts"></a>

Cada filtro de métrica se compone de los siguientes elementos principales:

**valor predeterminado**  
El valor registrado en el filtro de métricas durante un periodo cuando se ingieren registros, pero no se encuentra ningún registro coincidente. Al configurar este valor como 0, garantiza que los datos se registran durante cada periodo, lo que impide métricas “irregulares” con periodos en los que no hay datos coincidentes. Si no se ingieren registros durante un periodo de un minuto, no se notifica ningún valor.  
Si asigna dimensiones a una métrica creada por un filtro de métrica, no puede asignar un valor predeterminado a esa métrica.

**dimensiones**  
Las dimensiones son los pares de valor de clave que definen aún más una métrica. Puede asignar dimensiones a la métrica creada a partir de un filtro de métrica. Como las dimensiones forman parte del identificador único de una métrica, cada vez que se extrae un name/value par único de los registros, se crea una nueva variación de esa métrica.

**patrón de filtro**  
Una descripción simbólica de cómo CloudWatch los registros deben interpretar los datos de cada evento de registro. Por ejemplo, una entrada de registro puede contener las marcas temporales, direcciones IP, cadenas, etc. Puede utilizar el patrón para especificar lo que hay que buscar en el archivo de registro.

**nombre de métrica**  
El nombre de la CloudWatch métrica en la que se debe publicar la información de registro supervisada. Por ejemplo, puede publicar en una métrica llamada ErrorCount.

**espacio de nombres de métrica**  
El espacio de nombres de destino de la nueva CloudWatch métrica.

**valor de métrica**  
El valor numérico para publicar en la métrica cada vez que se encuentra un registro coincidente. Por ejemplo, si está contando las incidencias de un término determinado como “Error”, el valor será “1” para cada incidencia. Si está contando los bytes transferidos, puede incrementar según el número real de bytes encontrados en el evento de registro.

# Sintaxis del patrón de filtro para filtros métricos
<a name="FilterAndPatternSyntaxForMetricFilters"></a>

**nota**  
**En qué se diferencian los filtros de métricas de las consultas de CloudWatch Logs Insights**  
Los filtros de métricas se diferencian de las consultas de CloudWatch Logs Insights en que se agrega un valor numérico específico a un filtro de métricas cada vez que se encuentra un registro coincidente. Para obtener más información, consulte [Configuración de valores de métrica para un filtro de métricas](#changing-default-increment-value).  
Para obtener información sobre cómo consultar sus grupos de CloudWatch registros con el lenguaje de consulta de Amazon Logs Insights, consulte[CloudWatch Registra la sintaxis de consulta del lenguaje Insights](CWL_QuerySyntax.md).  
**Ejemplos de patrones de filtro genéricos**  
Para obtener más información sobre la sintaxis del patrón de filtro genérico aplicable a los filtros de métricas, así como a [los filtros de suscripción](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html) y a los [eventos de registro de filtros](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SearchDataFilterPattern.html), consulte [Sintaxis de patrones de filtros para filtros de métricas, filtros de suscripción y eventos de registro de filtros](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html), que incluye los siguientes ejemplos:  
Sintaxis de expresiones regulares (regex) compatibles
Coincidencia de términos en eventos de registro no estructurado
Comparación de términos en eventos de registro JSON
Coincidencia de términos en eventos de registro delimitados por espacios

*Los filtros métricos* le permiten buscar y filtrar los datos de registro que ingresan en CloudWatch Logs, extraer observaciones métricas de los datos de registro filtrados y transformar los puntos de datos en una métrica de CloudWatch Logs. Usted define los términos y patrones que se deben buscar en los datos de registro a medida que se envían a CloudWatch Logs. Los filtros de métricas se asignan a grupos de registro y todos los filtros asignados a un grupo de registro se aplican a sus flujos de registro.

Cuando un filtro de métricas coincide con un término, incrementa el recuento de la métrica a un valor numérico especificado. Por ejemplo, puede crear un filtro de métricas cuente cuántas veces aparece la palabra ***ERROR*** en los eventos de registro.

Puede asignar unidades de medida y dimensiones a una métrica. Por ejemplo, si crea un filtro de métricas que cuenta las veces que aparece la palabra ***ERROR*** en los eventos de registro, puede especificar una dimensión denominada `ErrorCode` para mostrar el número total de eventos de registro que contienen la palabra ***ERROR*** y filtrar los datos por códigos de error notificados.

**sugerencia**  
Al asignar una unidad de medida a una métrica, asegúrese de especificar la correcta. Si cambia la unidad más adelante, es posible que el cambio no surta efecto. Para ver la lista completa de las unidades CloudWatch compatibles, consulta la referencia [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)de la CloudWatch API de Amazon.

**Topics**
+ [Configuración de valores de métrica para un filtro de métricas](#changing-default-increment-value)
+ [Publicar dimensiones con métricas de valores en JSON o eventos de registro delimitados por espacios](#logs-metric-filters-dimensions)
+ [Uso de valores en eventos de registro para aumentar el valor de una métrica](#publishing-values-found-in-logs)

## Configuración de valores de métrica para un filtro de métricas
<a name="changing-default-increment-value"></a>

Al crear un filtro de métricas, defina el patrón de filtro y especifique el valor y el valor predeterminado de la métrica. Puede establecer valores de métrica en números, identificadores con nombre o identificadores numéricos. Si no especificas un valor predeterminado, CloudWatch no se mostrarán los datos cuando el filtro de métricas no encuentre ninguna coincidencia. Se recomienda especificar un valor predeterminado, incluso si el valor es 0. Establecer un valor predeterminado ayuda a CloudWatch informar los datos con mayor precisión y CloudWatch evita la agregación de métricas irregulares. CloudWatch agrega e informa los valores de las métricas cada minuto.

 Cuando el filtro de métricas encuentra una coincidencia en los eventos de registro, incrementa el recuento de la métrica según el valor de esta. Si el filtro de métricas no encuentra ninguna coincidencia, muestra CloudWatch el valor predeterminado de la métrica. Por ejemplo, su grupo de registro publica dos registros cada minuto, el valor de la métrica es 1 y el valor predeterminado es 0. Si el filtro de métricas encuentra coincidencias en ambos registros en el primer minuto, el valor de la métrica para ese minuto es 2. Si el filtro de métricas no encuentra coincidencias en ninguno de los registros durante el segundo minuto, el valor predeterminado para ese minuto es 0. Si asigna dimensiones a las métricas que generan los filtros de métricas, no puede especificar los valores predeterminados para esas métricas.

También puede configurar un filtro de métricas para incrementar una métrica con un valor extraído de un evento de registro, en lugar de un valor estático. Para obtener más información, consulte [Uso de valores en eventos de registro para aumentar el valor de una métrica](#publishing-values-found-in-logs).

## Publicar dimensiones con métricas de valores en JSON o eventos de registro delimitados por espacios
<a name="logs-metric-filters-dimensions"></a>

Puede usar la CloudWatch consola o la AWS CLI para crear filtros de métricas que publiquen dimensiones con métricas generadas por JSON y eventos de registro delimitados por espacios. Las dimensiones son pares de name/value valores y solo están disponibles para JSON y patrones de filtro delimitados por espacios. Puede crear filtros de métricas JSON y delimitados por espacios con hasta tres dimensiones. Para obtener más información sobre las dimensiones y sobre cómo asignarlas a las métricas, consulte las siguientes secciones:
+ [Dimensiones](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension) en la *guía del CloudWatch usuario de Amazon*
+ [Ejemplo: extraer campos de un registro de Apache y asignar dimensiones](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/ExtractBytesExample.html) en la *Guía del usuario de Amazon CloudWatch Logs*

**importante**  
Las dimensiones contienen valores que recopilan cargos igual que las métricas personalizadas. Para evitar cargos inesperados, no especifique campos de alta cardinalidad, como `IPAddress` o `requestID`, como dimensiones.  
Si extrae métricas de eventos de registro, se le cobran como métricas personalizadas. Para evitar que cobres altos cargos accidentales, Amazon podría deshabilitar tu filtro de métricas si genera 1000 name/value pares diferentes para dimensiones específicas durante un período de tiempo determinado.   
Puede crear alarmas de facturación que le notifiquen los cargos estimados. Para obtener más información, consulte [Creación de una alarma de facturación para monitorear los cargos estimados de AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).

### Publicar dimensiones con métricas de eventos de registro JSON
<a name="logs-metric-filters-JSON"></a>

En los ejemplos siguientes, se incluyen fragmentos de código que describen cómo especificar dimensiones en un filtro de métricas 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**  
Si prueba el filtro de métricas de ejemplo con el evento de registro JSON de ejemplo, debe ingresar el registro JSON de ejemplo en una sola línea.

------
#### [ Example: Metric filter ]

El filtro de métricas incrementa la métrica siempre que un evento de registro JSON contiene las propiedades `eventType` y `"sourceIPAddress"`.

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

Al crear un filtro de métricas JSON, puede especificar cualquiera de las propiedades del filtro de métricas como una dimensión. Por ejemplo, para establecer `eventType` como dimensión, utilice lo siguiente:

```
"eventType" : $.eventType
```

La métrica de ejemplo contiene una dimensión denominada `"eventType"`, y el valor de la dimensión en el evento de registro de muestra es `"UpdateTrail"`.

------

### Publicar dimensiones con métricas de eventos de registro delimitados por espacios
<a name="logs-metric-filters-dimensions-space-delimited"></a>

En los ejemplos siguientes, se incluyen fragmentos de código que describen cómo especificar dimensiones en un filtro de métricas delimitado por espacios.

------
#### [ 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]
```

El filtro de métricas incrementa la métrica cuando un evento de registro delimitado por espacios incluye cualquiera de los campos especificados en el filtro. Por ejemplo, el filtro de métricas encuentra los siguientes campos y valores en el evento de registro delimitado por espacios de ejemplo.

```
{
   "$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"
}
```

Al crear un filtro de métricas delimitado por espacios, puede especificar cualquiera de los campos del filtro de métricas como una dimensión. Por ejemplo, para establecer `server` como dimensión, utilice lo siguiente:

```
"server" : $server
```

El filtro de métrica de ejemplo tiene una dimensión denominada `server`, y el valor de la dimensión en el evento de registro de muestra es `"Prod"`.

------
#### [ Example: Match terms with AND (&&) and OR (\$1\$1) ]

Puede utilizar los operadores lógicos AND (“&&”) y OR (“\$1\$1”) para crear filtros de métricas delimitados por espacios que contengan condiciones. El siguiente filtro de métricas devuelve eventos de registro en los que la primera palabra de los eventos es ERROR o supercadena de WARN.

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

------

## Uso de valores en eventos de registro para aumentar el valor de una métrica
<a name="publishing-values-found-in-logs"></a>

Puede crear filtros de métricas que publiquen los valores numéricos que se encuentran en los eventos de registro. El procedimiento de esta sección utiliza el siguiente filtro de métricas de ejemplo para mostrar cómo se puede publicar un valor numérico en un evento de registro JSON en una métrica.

```
{ $.latency = * } metricValue: $.latency
```

**Para crear un filtro de métricas que publique un valor en un evento de registro**

1. Abre la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, elija **Logs** (Registros) y, luego, **Log groups** (Grupos de registro).

1. Seleccione o cree un grupo de registro.

   Para obtener información sobre cómo crear un grupo de registros, consulte [Crear un grupo de CloudWatch registros en Logs en](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) la *Guía del usuario de Amazon CloudWatch Logs*.

1. Elija **Actions (Acciones)** y, a continuación, seleccione **Create metric filter (Crear filtro de métrica)**.

1. En **Filter Pattern** (Patrón de filtro), ingrese **\$1 \$1.latency = \$1 \$1** y, a continuación, elija **Next** (Siguiente).

1. En **Metric Name** (Nombre de métrica), ingrese **myMetric**.

1. En **Metric Value (Valor de métrica)**, escriba **\$1.latency**.

1. (Opcional) En **Default Value** (Valor predeterminado), ingrese **0** y, a continuación, elija **Next** (Siguiente).

   Se recomienda especificar un valor predeterminado, incluso si el valor es 0. Establecer un valor predeterminado ayuda a CloudWatch informar los datos con mayor precisión y CloudWatch evita la agregación de métricas irregulares. CloudWatch agrega e informa los valores de las métricas cada minuto.

1. Elija **Create metric filter (Crear filtro de métricas)**.

El filtro de métricas de ejemplo coincide con el término `"latency"` en el evento de registro JSON de muestra y publica un valor numérico de 50 en la métrica **myMetric**.

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

# Creación de filtros de métricas
<a name="MonitoringPolicyExamples"></a>

Los siguientes procedimientos y ejemplos muestran cómo crear filtros de métricas.

**Topics**
+ [Crear un filtro de métricas para un grupo de registro](CreateMetricFilterProcedure.md)
+ [Ejemplo: recuento de eventos de registro](CountingLogEventsExample.md)
+ [Ejemplo: contar incidencias de un término](CountOccurrencesExample.md)
+ [Ejemplo: contar códigos HTTP 404](Counting404Responses.md)
+ [Ejemplo: contar códigos HTTP 4xx](FindCountMetric.md)
+ [Ejemplo: extraer campos desde un registro de Apache y asignar dimensiones](ExtractBytesExample.md)

# Crear un filtro de métricas para un grupo de registro
<a name="CreateMetricFilterProcedure"></a>

Para crear un filtro de métrica para un grupo de registro, siga los siguientes pasos. La métrica no estará visible hasta que haya algunos puntos de datos para ella.

**Para crear un filtro de métricas mediante la CloudWatch consola**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1.  En el panel de navegación, elija **Logs** (Registros) y, luego, **Log groups** (Grupos de registro). 

1.  Elija el nombre del grupo de registro. 

1.  Elija `Actions` (Acciones) y, a continuación, seleccione **Create metric filter** (Crear filtro de métrica). 

1.  En **Filter pattern (Patrón de filtro)**, ingrese un patrón de filtro. Para obtener más información, consulte [Filtro de sintaxis de patrones para filtros de métricas, filtros de suscripción, eventos de registro de filtros y Live Tail](FilterAndPatternSyntax.md). 

1.  (Opcional) Si utiliza grupos de registros centralizados, en **Criterios de selección de filtros**, puede especificar los filtros en función de la cuenta de origen (`@aws.account`), la región de origen (`@aws.region`) o ambas condiciones.

1.  (Opcional) Para probar el patrón de filtro, en **Test Pattern** (Patrón de prueba), ingrese uno o más eventos de registro para probar el patrón. Cada evento de registro debe estar formateado en una línea. Los saltos de línea se utilizan para separar los eventos de registro en el cuadro **Mensajes de eventos de registro**. 

1.  Elija **Next** (Siguiente) y luego ingrese un nombre para el filtro de métricas. 

1.  En **Detalles de la métrica**, en Espacio de **nombres de métricas**, introduzca un nombre para el espacio de CloudWatch nombres en el que se publicará la métrica. Si este espacio de nombres no existe todavía, asegúrese de que la opción **Create new** (Crear nuevo) esté seleccionada. 

1.  Para **Metric name (Nombre de métrica)**, ingrese un nombre para la nueva métrica. 

1.  Para **Metric value (Valor de la métrica)**, si el filtro de métrica cuenta las ocurrencias de las palabras clave en el filtro, ingrese 1. Esto incrementa la métrica en 1 por cada evento de registro que incluye una de las palabras clave. 

    También puede ingresar un token, como **\$1size**. Esto incrementa la métrica por el valor del número en el campo `size` por cada evento de registro que contenga un campo `size`. 

1.  (Opcional) En **Unit (Unidad)**, seleccione una unidad para asignar a la métrica. Si no especifica una unidad, se configura como `None`. 

1.  (Opcional) Ingrese los nombres y tokens de hasta tres dimensiones para la métrica. Si asigna dimensiones a las métricas que generan los filtros de métricas, no puede asignar valores predeterminados para esas métricas. 
**nota**  
 Las dimensiones solo se admiten en JSON o en filtros de métricas delimitados por espacios. 

1.  Elija **Create metric filter (Crear filtro de métricas)**. Puede encontrar el filtro de métricas que ha creado desde el panel de navegación. Elija **Logs** (Registros) y, a continuación, elija **Log groups** (Grupo de registro). Elija el nombre del grupo de registro para el que ha creado el filtro de métricas y, a continuación, seleccione la pestaña **Metric filters** (Filtros de métricas). 

# Ejemplo: recuento de eventos de registro
<a name="CountingLogEventsExample"></a>

El tipo de monitorización de evento de registro más sencillo consiste en contar el número de eventos de registro que se producen. Es posible que desee hacerlo para llevar un recuento de todos los eventos, para crear un monitor de estilo “latido” o simplemente para practicar la creación de filtros de métricas.

En el siguiente ejemplo de CLI, MyAppAccessCount se aplica un filtro de métricas denominado MyApp /access.log al grupo de registros para crear la métrica EventCount en el espacio de CloudWatch nombres MyNamespace. El filtro está configurado para que compare cualquier contenido de eventos de registro y para aumentar la métrica en “1”.

**Para crear un filtro de métricas mediante la consola CloudWatch**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, seleccione **Grupos de registro**.

1. Elija el nombre de un grupo de registro.

1. Elija `Actions`, **Create metric filter (Crear filtro de métricas)**.

1. Deje **Filter Pattern (Patrón de filtro)** y **Select Log Data to Test (Seleccionar los datos de registro para probar)** en blanco.

1. Elija **Next (Siguiente)**, y, a continuación, en **Filter Name (Nombre de filtro)**, escriba **EventCount**.

1. En **Metric Details (Detalles de métrica)**, en **Metric Namespace (Espacio de nombres de métrica)**, escriba **MyNameSpace**.

1. En **Nombre de métrica**, escriba **MyAppEventCount**.

1. Confirme que el **Metric Value (Valor métrico)** es 1. Esto especifica que el recuento se incrementa en 1 para cada evento de registro.

1. En **Default Value (Valor predeterminado)**, escriba 0 y, a continuación, elija **Next (Siguiente)**. Al especificar un valor predeterminado se garantiza que los datos se registren incluso durante los periodos en los que no se producen eventos de registro, lo que impide que haya métricas irregulares en las que a veces no existen datos.

1. Elija **Create metric filter (Crear filtro de métricas)**.

**Para crear un filtro métrico mediante el AWS CLI**  
En el símbolo del sistema, ejecute el siguiente comando:

```
aws logs put-metric-filter \
  --log-group-name MyApp/access.log \
  --filter-name EventCount \
  --filter-pattern " " \
  --metric-transformations \
  metricName=MyAppEventCount,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

Puede probar esta nueva política publicando cualesquiera datos de eventos. Deberías ver los puntos de datos publicados en la métrica MyAppAccessEventCount.

**Para publicar los datos del evento mediante el AWS CLI**  
En el símbolo del sistema, ejecute el siguiente comando:

```
aws logs put-log-events \
  --log-group-name MyApp/access.log --log-stream-name TestStream1 \
  --log-events \
    timestamp=1394793518000,message="Test event 1" \
    timestamp=1394793518000,message="Test event 2" \
    timestamp=1394793528000,message="This message also contains an Error"
```

# Ejemplo: contar incidencias de un término
<a name="CountOccurrencesExample"></a>

Los eventos de registro suelen incluir mensajes importantes que desea contar, quizás referentes al éxito o fracaso de las operaciones. Por ejemplo, puede producirse un error y registrarse en un archivo de registro si falla una determinada operación. Es posible que desee monitorizar estas entradas para comprender la evolución de sus errores.

En el ejemplo siguiente, se crea un filtro de métricas para monitorizar el término Error. La política se creó y se agregó al grupo de registros **MyApp/message.log**. CloudWatch Logs publica un punto de datos ErrorCount en la métrica CloudWatch personalizada del espacio de nombres **MyApp/message.log** con un valor de «1" para cada evento que contenga un error. Si ningún evento contiene la palabra Error, entonces se publica un valor 0. Al graficar estos datos en la CloudWatch consola, asegúrese de utilizar la estadística de suma.

Después de crear un filtro de métricas, puede ver la métrica en la CloudWatch consola. Cuando seleccione la métrica que desea ver, seleccione el espacio de nombres de métrica que coincida con el nombre del grupo de registro. Para obtener más información, consulte [Viewing Available Metrics (Visualización de las métricas disponibles)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html).

**Para crear un filtro de métricas mediante la CloudWatch consola**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, seleccione **Grupos de registro**.

1. Elija el nombre del grupo de registro.

1. Elija **Actions (Acciones)**, **Create metric filter (Crear filtro de métricas)**.

1. En **Filter pattern (Patrón de filtro)**, escriba **Error**.
**nota**  
Todas las entradas de **Filter Pattern** distinguen entre mayúsculas y minúsculas.

1. (Opcional) Para probar el patrón de filtro, en **Test Pattern (Patrón de prueba)**, ingrese uno o más eventos de registro a utilizar para probar el patrón. Cada evento de registro debe estar dentro de una línea, ya que los saltos de línea se utilizan para separar los eventos de registro en el cuadro de **Log event messages (Mensajes de eventos de registro)**.

1. Elija **Next (Siguiente)**, y, a continuación, en la página **Filter Name (Asignar métrica)**, en **Filter Name (Nombre de filtro)**, escriba **MyAppErrorCount**.

1. En **Metric Details (Detalles de métrica)**, en **Metric Namespace (Espacio de nombres de métrica)**, escriba **MyNameSpace**.

1. En **Nombre de métrica**, escriba **ErrorCount**.

1. Confirme que el **Metric Value (Valor métrico)** es 1. Esto especifica que el recuento se incrementa en 1 para cada evento de registro que contenga “Error”.

1. En **Default Value (Valor predeterminado)** escriba 0 y, a continuación, elija **Next (Siguiente)**. 

1. Elija **Create metric filter (Crear filtro de métricas)**.

**Para crear un filtro métrico mediante el AWS CLI**  
En el símbolo del sistema, ejecute el siguiente comando:

```
aws logs put-metric-filter \
  --log-group-name MyApp/message.log \
  --filter-name MyAppErrorCount \
  --filter-pattern 'Error' \
  --metric-transformations \
      metricName=ErrorCount,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

Puede probar esta nueva política publicando eventos que contengan la palabra “Error” en el mensaje.

**Para publicar eventos mediante el AWS CLI**  
En el símbolo del sistema, ejecute el siguiente comando. Tenga en cuenta que los patrones distinguen entre mayúsculas y minúsculas.

```
aws logs put-log-events \
  --log-group-name MyApp/access.log --log-stream-name TestStream1 \
  --log-events \
    timestamp=1394793518000,message="This message contains an Error" \
    timestamp=1394793528000,message="This message also contains an Error"
```

# Ejemplo: contar códigos HTTP 404
<a name="Counting404Responses"></a>

Con CloudWatch los registros, puede controlar cuántas veces sus servidores Apache devuelven una respuesta HTTP 404, que es el código de respuesta de la página no encontrada. Es posible que le interese monitorizar esto para saber con qué frecuencia los visitantes no encuentran el recurso que buscan. Supongamos que los registros se estructuran para incluir la siguiente información para cada evento de registro (visita al sitio):
+ Dirección IP del solicitante
+ Identidad RFC 1413
+ Nombre de usuario
+ Timestamp
+ Solicitar método con recurso solicitado y protocolo
+ Código de respuesta HTTP para solicitud
+ Bytes transferidos en solicitud

Un ejemplo de esto podría ser el siguiente:

```
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326
```

Podría especificar una regla que intente comparar eventos con dicha estructura para errores HTTP 404, tal y como se muestra en el ejemplo siguiente:

**Para crear un filtro métrico mediante la CloudWatch consola**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, seleccione **Grupos de registro**.

1. Elija `Actions`, **Create metric filter (Crear filtro de métricas)**.

1. En **Filter pattern (Patrón de filtro)**, escriba **[IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes]**.

1. (Opcional) Para probar el patrón de filtro, en **Test Pattern (Patrón de prueba)**, ingrese uno o más eventos de registro a utilizar para probar el patrón. Cada evento de registro debe estar dentro de una línea, ya que los saltos de línea se utilizan para separar los eventos de registro en el cuadro de **Log event messages (Mensajes de eventos de registro)**.

1. Seleccione **Siguiente** y, a continuación, en **Nombre del filtro**, escriba **HTTP404Errores**.

1. En **Metric Details (Detalles de métrica)**, en **Metric Namespace (Espacio de nombres de métrica)**, escriba **MyNameSpace**.

1. En **Metric name (Nombre de métrica)**, escriba **ApacheNotFoundErrorCount**.

1. Confirme que el **Metric Value (Valor métrico)** es 1. Esto especifica que el recuento se incrementa en 1 para cada evento de Error 404.

1. En **Default Value (Valor predeterminado)**, escriba 0 y, a continuación, elija **Next (Siguiente)**.

1. Elija **Create metric filter (Crear filtro de métricas)**.

**Para crear un filtro métrico mediante AWS CLI**  
En el símbolo del sistema, ejecute el siguiente comando:

```
aws logs put-metric-filter \
  --log-group-name MyApp/access.log \
  --filter-name HTTP404Errors \
  --filter-pattern '[ip, id, user, timestamp, request, status_code=404, size]' \
  --metric-transformations \
      metricName=ApacheNotFoundErrorCount,metricNamespace=MyNamespace,metricValue=1
```

En este ejemplo, se han utilizado caracteres literales como los corchetes izquierdo y derecho, las comillas dobles y la cadena de caracteres 404. El patrón tiene que coincidir con todo el mensaje de evento de registro para que el evento de registro se tenga en cuenta para monitorización.

Puede verificar la creación del filtro de métricas a través del comando **describe-metric-filters**. Debería ver un resultado con un aspecto similar al siguiente:

```
aws logs describe-metric-filters --log-group-name MyApp/access.log

{
    "metricFilters": [
        {
            "filterName": "HTTP404Errors", 
            "metricTransformations": [
                {
                    "metricValue": "1", 
                    "metricNamespace": "MyNamespace", 
                    "metricName": "ApacheNotFoundErrorCount"
                }
            ], 
            "creationTime": 1399277571078, 
            "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]"
        }
    ]
}
```

Ahora puede publicar unos cuantos eventos manualmente:

```
aws logs put-log-events \
--log-group-name MyApp/access.log --log-stream-name hostname \
--log-events \
timestamp=1394793518000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 404 2326" \
timestamp=1394793528000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2326"
```

Poco después de colocar estos eventos de registro de ejemplo, puede recuperar la métrica denominada en la CloudWatch consola como ApacheNotFoundErrorCount.

# Ejemplo: contar códigos HTTP 4xx
<a name="FindCountMetric"></a>

Como en el ejemplo anterior, es posible que desee monitorizar los registros de acceso al servicio web y monitorizar los niveles del código de respuesta HTTP. Por ejemplo, es posible que desee monitorizar todos los errores de nivel HTTP 400. Sin embargo, es posible que no desee especificar un nuevo filtro de métrica para cada código devuelto.

El siguiente ejemplo muestra cómo crear una métrica que incluya todas las respuestas de código HTTP de nivel 400 desde registro de acceso utilizando el formato de registro de acceso de Apache desde el ejemplo [Ejemplo: contar códigos HTTP 404](Counting404Responses.md).

**Para crear un filtro de métricas mediante la CloudWatch consola**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, seleccione **Grupos de registro**.

1. Elija el nombre del grupo de registro para el servidor Apache.

1. Elija `Actions`, **Create metric filter (Crear filtro de métricas)**.

1. En **Filter pattern (Patrón de filtro)**, ingrese **[ip, id, user, timestamp, request, status\$1code=4\$1, size]**.

1. (Opcional) Para probar el patrón de filtro, en **Test Pattern (Patrón de prueba)**, ingrese uno o más eventos de registro a utilizar para probar el patrón. Cada evento de registro debe estar dentro de una línea, ya que los saltos de línea se utilizan para separar los eventos de registro en el cuadro de **Log event messages (Mensajes de eventos de registro)**.

1. Elija **Next (Siguiente)** y, a continuación, en **Filter Name (Nombre de filtro)**, tipo **HTTP4xxErrors**.

1. En **Metric Details (Detalles de métrica)**, en **Metric Namespace (Espacio de nombres de métrica)**, ingrese **MyNameSpace**.

1. Para el **nombre de la métrica**, introduzca **HTTP4xxErrors**.

1. En **Metric Value (Valor de métrica)**, ingrese 1. Esto especifica que el recuento se incrementa en 1 para cada evento de registro que contenga un error 4xx.

1. En **Default Value (Valor predeterminado)**, escriba 0 y, a continuación, elija **Next (Siguiente)**. 

1. Elija **Create metric filter (Crear filtro de métricas)**.

**Para crear un filtro métrico mediante el AWS CLI**  
En el símbolo del sistema, ejecute el siguiente comando:

```
aws logs put-metric-filter \
  --log-group-name MyApp/access.log \
  --filter-name HTTP4xxErrors \
  --filter-pattern '[ip, id, user, timestamp, request, status_code=4*, size]' \
  --metric-transformations \
  metricName=HTTP4xxErrors,metricNamespace=MyNamespace,metricValue=1,defaultValue=0
```

Puede utilizar los siguientes datos en llamadas PutEvents para probar esta regla. Si no elimina la regla de monitorización en el ejemplo anterior, generará dos métricas diferentes.

```
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3
```

# Ejemplo: extraer campos desde un registro de Apache y asignar dimensiones
<a name="ExtractBytesExample"></a>

A veces, en lugar de contar, se recomienda utilizar valores dentro de eventos de registro individuales para valores de métricas. Este ejemplo muestra cómo puede crear una regla de extracción para crear una métrica que mida los bytes transferidos por un servidor web Apache.

En este ejemplo también se muestra cómo asignar dimensiones a la métrica que se crea.

**Para crear un filtro métrico mediante la CloudWatch consola**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, seleccione **Grupos de registro**.

1. Elija el nombre del grupo de registro para el servidor Apache.

1. Elija `Actions`, **Create metric filter (Crear filtro de métricas)**.

1. En **Filter pattern (Patrón de filtro)**, ingrese **[ip, id, user, timestamp, request, status\$1code, size]**.

1. (Opcional) Para probar el patrón de filtro, en **Test Pattern (Patrón de prueba)**, ingrese uno o más eventos de registro a utilizar para probar el patrón. Cada evento de registro debe estar dentro de una línea, ya que los saltos de línea se utilizan para separar los eventos de registro en el cuadro de **Log event messages (Mensajes de eventos de registro)**.

1. Elija **Next (Siguiente)** y, a continuación, en **Filter Name (Nombre de filtro)**, tipo **size**.

1. En **Metric Details (Detalles de métrica)**, en ** Metric Namespace (Espacio de nombres de métrica)**, ingrese **MyNameSpace**. Debido a que este es un nuevo espacio de nombres, asegúrese de que la opción **Create new (Crear nuevo)** esté seleccionada.

1. En **Metric name (Nombre de métrica)**, ingrese **BytesTransferred**.

1. En **Metric Value (Valor de métrica)**, ingrese **\$1size**.

1. En **Unit (Unidad)**, seleccione **Bytes**.

1. Para **Dimension Name**, escriba **IP**.

1. En **Dimension Value (Valor de dimensión)** escriba **\$1ip** y, a continuación, elija **Next (Siguiente)**.

1. Elija **Create metric filter (Crear filtro de métricas)**.

**Para crear este filtro métrico, utilice el AWS CLI**  
En el símbolo del sistema, ejecute el siguiente comando

```
aws logs put-metric-filter \
--log-group-name MyApp/access.log \
 --filter-name BytesTransferred \
 --filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \
 --metric-transformations  \
 metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue='$size'
```

```
aws logs put-metric-filter \
--log-group-name MyApp/access.log \
--filter-name BytesTransferred \
--filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \
--metric-transformations  \
metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue='$size',unit=Bytes,dimensions='{{IP=$ip}}'
```

**nota**  
En este comando, utilice este formato para especificar varias dimensiones.  

```
aws logs put-metric-filter \
--log-group-name my-log-group-name \
--filter-name my-filter-name \
--filter-pattern 'my-filter-pattern' \
--metric-transformations  \
metricName=my-metric-name,metricNamespace=my-metric-namespace,metricValue=my-token,unit=unit,dimensions='{dimension1=$dim,dimension2=$dim2,dim3=$dim3}'
```

Puede usar los siguientes datos en las put-log-event llamadas para probar esta regla. Esto genera dos métricas diferentes si no elimina la regla de monitorización en el ejemplo anterior.

```
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308
127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3
```

# Enumeración de filtros de métricas
<a name="ListingMetricFilters"></a>

Puede enumerar todos los filtros de métricas de un grupo de registro.

**Para enumerar los filtros de métricas mediante la CloudWatch consola**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, seleccione **Grupos de registro**.

1. En el panel de contenido, en la lista de grupos de registro, en la columna **Metric Filters**, elija el número de filtros.

   La pantalla **Log Groups > Filters for** muestra todos los filtros de métricas asociados con el grupo de registro.

**Para enumerar los filtros de métricas mediante el AWS CLI**  
En el símbolo del sistema, ejecute el siguiente comando:

```
aws logs describe-metric-filters --log-group-name MyApp/access.log
```

A continuación, se muestra un ejemplo de la salida:

```
{
    "metricFilters": [
        {
            "filterName": "HTTP404Errors", 
            "metricTransformations": [
                {
                    "metricValue": "1", 
                    "metricNamespace": "MyNamespace", 
                    "metricName": "ApacheNotFoundErrorCount"
                }
            ], 
            "creationTime": 1399277571078, 
            "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]"
        }
    ]
}
```

# Eliminación de un filtro de métricas
<a name="DeletingMetricFilter"></a>

Una política se identifica por su nombre y el grupo de registro al que pertenece.

**Para eliminar un filtro de métricas mediante la CloudWatch consola**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, seleccione **Grupos de registro**.

1. En el panel de contenido, en la columna **Metric Filter (Filtros de métrica)**, elija el número de filtros de métrica para el grupo de registro.

1. En la pantalla de **Metric Filters (Filtros de métricas)**, seleccione la casilla de verificación a la derecha del nombre del filtro que desea eliminar. A continuación, elija **Eliminar**.

1. Cuando se le pida confirmación, seleccione **Eliminar**.

**Para eliminar un filtro de métricas mediante el AWS CLI**  
En el símbolo del sistema, ejecute el siguiente comando:

```
aws logs delete-metric-filter --log-group-name MyApp/access.log \
 --filter-name MyFilterName
```