

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