Sintaxis del patrón de filtro para filtros métricos - Amazon CloudWatch Logs

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.

Sintaxis del patrón de filtro para filtros métricos

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.

Para obtener información sobre cómo consultar sus grupos de CloudWatch registros con el lenguaje de consulta de Amazon Logs Insights, consulteCloudWatch Registra la sintaxis de consulta del idioma Insights.

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 y a los eventos de registro de filtros, consulte Sintaxis de patrones de filtros para filtros de métricas, filtros de suscripción y eventos de registro de filtros, 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 MetricDatumde la CloudWatch API de Amazon.

Configuración de valores de métrica para un filtro de métricas

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.

Publicar dimensiones con métricas de valores en JSON o eventos de registro delimitados por espacios

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 nombre/valor y solo están disponibles para patrones de filtro JSON y 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:

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 contraiga cargos elevados accidentales, es posible que Amazon desactive su filtro de métrica si genera 1000 pares de nombre/valor diferentes para las dimensiones especificadas en un plazo determinado.

Puede crear alarmas de facturación que le notifiquen los cargos estimados. Para obtener más información, consulte Crear una alarma de facturación para controlar AWS los cargos estimados.

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

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

Puede utilizar los operadores lógicos AND (“&&”) y OR (“||”) 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

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

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

  3. 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 la Guía del usuario de Amazon CloudWatch Logs.

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

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

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

  7. En Metric Value (Valor de métrica), escriba $.latency.

  8. (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.

  9. 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" }