filterIndex - Amazon CloudWatch Logs

filterIndex

Se usa filterIndex para devolver solo datos indexados, mediante el forzado de una consulta a analizar solo los grupos de registros que están indexados en un campo que se especifique en la consulta. Para los grupos de registros que están indexados en este campo, se optimiza aún más la consulta al omitir los grupos de registros que no tienen ningún evento de registro que contenga el campo especificado en la consulta del campo indexado. Se reduce aún más el volumen analizado al intentar analizar solo los eventos de registro de estos grupos de registros que coincidan con el valor especificado en la consulta para este índice de campos. Para obtener más información sobre los índices de campo y cómo crearlos, consulte Creación de índices de campo para mejorar el rendimiento de las consultas y reducir el volumen de análisis.

El uso de filterIndex con campos indexados puede ayudar a consultar grupos de registros que incluyen petabytes de datos de registro de manera eficiente, ya que limita el espacio de búsqueda real a los grupos de registros y los eventos de registro que tienen índices de campo.

Por ejemplo, supongamos que se ha creado un índice de campos para IPaddress en algunos de los grupos de registro de su cuenta. A continuación, se puede crear la siguiente consulta y elegir consultar todos los grupos de registros de la cuenta para buscar eventos de registro que incluyan el valor 198.51.100.0 del campo IPaddress.

fields @timestamp, @message | filterIndex IPaddress = "198.51.100.0" | limit 20

El comando filterIndex hace que esta consulta intente omitir todos los grupos de registros que no están indexados para IPaddress. Además, dentro de los grupos de registros que están indexados, la consulta omite los eventos de registro que tienen un campo IPaddress, pero que no consideran a 198.51.100.0 como el valor de ese campo.

Utilice el operador IN para ampliar los resultados a cualquiera de los múltiples valores de los campos indexados. El siguiente ejemplo busca eventos de registro que incluyen el valor 198.51.100.0 o 198.51.100.1 en el campo IPaddress.

fields @timestamp, @message | filterIndex IPaddress in ["198.51.100.0", "198.51.100.1"] | limit 20

Registros de CloudWatch proporciona índices de campos predeterminados para todos los grupos de registro de clase Standard. Los índices de campo predeterminados están disponibles automáticamente para los siguientes campos:

  • @logStream

  • @aws.region

  • @aws.account

  • @source.log

  • traceId

Los índices de campos predeterminados se suman a cualquier índice de campo personalizado que defina en su política. Los índices de campo predeterminados no se incluyen en la cuota de índices de campo.

filterIndex comparado con el filtro

Para ilustrar la diferencia entre filterIndex y filter, se pueden tener en cuenta las siguientes consultas de ejemplo. Supongamos que se ha creado un índice de campos para IPaddress, para cuatro de los grupos de registros, pero no para un quinto grupo de registros. La siguiente consulta mediante filterIndex omitirá la exploración del grupo de registros que no tiene el campo indexado. Para cada grupo de registros indexado, se intenta analizar solo los eventos de registro que tienen el campo indexado y, además, solo devuelve los resultados de una vez creado el índice de campos.

fields @timestamp, @message | filterIndex IPaddress = "198.51.100.0" | limit 20

Por el contrario, si se utiliza filter en lugar de filterIndex para una consulta de los mismos cinco grupos de registros, la consulta intentará analizar no solo los eventos de registro que contienen el valor de los grupos de registros indexados, sino que también analizará el quinto grupo de registros que no esté indexado y analizará todos los eventos de registro de ese quinto grupo de registros.

fields @timestamp, @message | filter IPaddress = "198.51.100.0" | limit 20