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

filter

Use filter para obtener eventos de registro que coincidan con una o más condiciones.

Ejemplo: filtrar eventos de registro con una condición

El fragmento de código muestra un ejemplo de una consulta que devuelve todos los eventos de registro en los que el valor de range es mayor que 3000. La consulta limita los resultados a 20 eventos de registro y los ordena por @timestamp y en orden descendente.

fields @timestamp, @message | filter (range>3000) | sort @timestamp desc | limit 20

Ejemplo: filtrar eventos de registro con más de una condición

Puede usar las palabras clave and y or para combinar más de una condición.

El fragmento de código muestra un ejemplo de una consulta que devuelve todos los eventos de registro en los que el valor de range es mayor que 3000 y el valor de accountId es igual que 123456789012. La consulta limita los resultados a 20 eventos de registro y los ordena por @timestamp y en orden descendente.

fields @timestamp, @message | filter (range>3000 and accountId=123456789012) | sort @timestamp desc | limit 20

Los campos indexados y el comando de filtro

Si ha creado índices de campos para un grupo de registros, puede aprovechar esos índices de campo para aumentar la eficacia de filter las consultas y reducir el volumen escaneado. Por ejemplo, supongamos que ha creado un índice de campos para. requestId A continuación, cualquier consulta de CloudWatch Logs Insights sobre ese grupo de registros que filter requestId IN [value, value, ...] incluya filter requestId = value o intente omitir el procesamiento de eventos de registro que se sepa que no incluyen el campo indexado. Al intentar escanear solo los eventos de registro que se sabe que contienen ese campo indexado, se puede reducir el volumen de escaneo y la consulta es más rápida.

Para obtener más información sobre los índices de campos y cómo crearlos, consulte. Cree índices de campos para mejorar el rendimiento de las consultas y reducir el volumen de digitalización

importante

Solo las consultas con las mejoras en el índice de campos filter fieldName =... y se filter fieldName IN... beneficiarán de ellas. Las consultas filter fieldName like sin índices siempre escanean todos los eventos de registro de los grupos de registros seleccionados.

Ejemplo: busque eventos de registro relacionados con un identificador de solicitud determinado mediante índices

En este ejemplo se supone que ha creado un índice de campos en requestId él. En el caso de los grupos de registros que utilizan este índice de campos, la consulta aprovechará los índices de campo para intentar analizar la menor cantidad de eventos de registro con los que buscar eventos requestId con un valor de 123456

fields @timestamp, @message | filter requestId = "1234656" | limit 20

Coincidencias y expresiones regulares en el comando de filtro

El comando de filtro admite el uso de expresiones regulares. Puede utilizar los siguientes operadores de comparación (=, !=, <, <=, >, >=) y operadores booleanos (and, or y not).

Puede usar la palabra clave in para probar si hay suscripción configurada y verificar si hay elementos en una matriz. Para comprobar los elementos de una matriz, coloque los elementos después de in. Puede utilizar los operadores booleanos not, con in. Puede crear consultas que utilicen in para devolver eventos de registro en los que los campos son coincidencias de cadenas. Los campos deben ser cadenas completas. Por ejemplo, el siguiente fragmento de código muestra una consulta que utiliza in para devolver eventos de registro donde el campo logGroup es la cadena completa example_group.

fields @timestamp, @message | filter logGroup in ["example_group"]

Puede usar las frases de palabras clave like y not like para que coincidan con las subcadenas. Puede utilizar el operador de expresión regular =~ para que coincidan con las subcadenas. Para hacer coincidir una subcadena con like y not like, encierre la subcadena que desea buscar entre comillas dobles o simples. Puede utilizar patrones de expresión regular con like y not like. Para hacer coincidir una subcadena con el operador de expresiones regulares, encierre la subcadena que desea buscar entre barras diagonales. Los siguientes ejemplos contienen fragmentos de código que muestran cómo se pueden hacer coincidir las subcadenas mediante el comando filter.

Ejemplos: hacer coincidir subcadenas

Los siguientes ejemplos devuelven los eventos de registro en que f1 contiene la palabra Exception (Excepción). Los tres ejemplos distinguen entre mayúsculas y minúsculas.

El primer ejemplo hace coincidir una subcadena con like.

fields f1, f2, f3 | filter f1 like "Exception"

El segundo ejemplo hace coincidir una subcadena con like y un patrón de expresiones regulares.

fields f1, f2, f3 | filter f1 like /Exception/

El tercer ejemplo hace coincidir una subcadena con una expresión regular.

fields f1, f2, f3 | filter f1 =~ /Exception/

Ejemplo: hacer coincidir subcadenas con comodines

Puede utilizar el símbolo de punto (.) como comodín en expresiones regulares para que coincidan con las subcadenas. En el siguiente ejemplo, la consulta devuelve coincidencias en las que el valor de f1 comienza con la cadena ServiceLog.

fields f1, f2, f3 | filter f1 like /ServiceLog./

Puede colocar un punto antes del símbolo de punto (.*) para crear un cuantificador expansivo que devuelva tantas coincidencias como sea posible. Por ejemplo, la siguiente consulta devuelve coincidencias en las que el valor de f1 no solo comienza con la cadena ServiceLog, sino que incluye además la cadena ServiceLog.

fields f1, f2, f3 | filter f1 like /ServiceLog.*/

Las posibles coincidencias pueden tener el siguiente formato:

  • ServiceLogSampleApiLogGroup

  • SampleApiLogGroupServiceLog

Ejemplo: excluir subcadenas de coincidencias

En el siguiente ejemplo, se muestra una consulta que devuelve eventos de registro donde f1 no contiene la palabra Exception (Excepción). El ejemplo distingue mayúsculas de minúsculas.

fields f1, f2, f3 | filter f1 not like "Exception"

Ejemplo: hacer coincidir subcadenas con patrones que no distinguen mayúsculas de minúsculas

Puede hacer coincidir las subcadenas que no distinguen mayúsculas de minúsculas con like y expresiones regulares. Coloque el siguiente parámetro (?i) antes de la subcadena que desea buscar. En el siguiente ejemplo, se muestra una consulta que devuelve eventos de registro donde f1 contiene la palabra Exception o exception (Excepción o excepción).

fields f1, f2, f3 | filter f1 like /(?i)Exception/