View a markdown version of this page

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

subqueries

Una subconsulta es una consulta anidada de Logs Insights que se puede utilizar como entrada para otra consulta. Las subconsultas se pueden usar para derivar conjuntos de resultados intermedios que luego son consumidos por los comandos posteriores.

Sintaxis

Subconsulta en el filtro

filter <field> in ( <subquery> )
Parameters

  • <subquery>— Una consulta de Logs Insights válida que devuelve un conjunto de resultados. La subconsulta debe generar campos a los que haga referencia la consulta externa.

Ejemplos

ejemplo Ejemplo 1: busque solicitudes que hayan encontrado errores en los servicios descendentes

En este ejemplo, se muestra cómo usar una subconsulta para identificar las solicitudes en el servicio principal que provocaron errores en un servicio descendente. Esto resulta útil para solucionar errores en cascada en sistemas distribuidos.

filter requestId in ( SOURCE '/aws/lambda/database-service' | filter errorType = "DatabaseConnectionTimeout" | fields requestId ) | fields @timestamp, requestId, endpoint, userId, responseTime | sort @timestamp desc

Esta consulta:

  1. La subconsulta busca todos los requestId valores del servicio de base de datos que ha sufrido tiempos de espera de conexión

  2. La consulta externa filtra los registros del servicio principal para mostrar solo las solicitudes que coinciden con las solicitudes propensas a errores IDs

  3. Los resultados muestran el contexto completo de las solicitudes que fallaron en fases posteriores, incluidos los puntos finales y los usuarios afectados

Este patrón le ayuda a comprender el impacto inicial de los errores descendentes.

ejemplo Ejemplo 2: Identifique las solicitudes que suelen fallar para realizar una investigación específica

En este ejemplo, se muestra el uso de una subconsulta con agregación para buscar solicitudes que fallan repetidamente, lo que suele indicar problemas sistemáticos en lugar de errores transitorios.

filter requestId in ( SOURCE '/aws/lambda/payment-processor' | filter status = "FAILED" | stats count(*) as failureCount by requestId | filter failureCount > 3 | fields requestId ) | fields @timestamp, requestId, customerId, amount, failureReason | sort @timestamp asc

Esta consulta:

  1. La subconsulta agrega los intentos de pago fallidos e identifica las solicitudes IDs que fallaron más de 3 veces

  2. La consulta externa recupera todos los eventos de registro de esas solicitudes problemáticas IDs

  3. Los resultados se ordenan cronológicamente para mostrar la progresión de los reintentos

Esto ayuda a distinguir entre los errores transitorios (un solo incidente) y los problemas persistentes (varios errores) que requieren una investigación más profunda.

Comportamiento

  • Las subconsultas se ejecutan independientemente de la consulta externa.

  • Los resultados se materializan antes de que la consulta externa los consuma.

  • Solo los campos seleccionados explícitamente en la subconsulta están disponibles para la consulta externa.

Notas y limitaciones

  • Las subconsultas deben devolver los campos a los que hace referencia la consulta externa.

  • No se admiten las subconsultas anidadas.

  • Las subconsultas pueden aumentar el tiempo y el coste de ejecución de las consultas.

  • No se admiten las subconsultas correlacionadas.

  • La ejecución de consultas internas está limitada a 30 segundos.

Comandos relacionados