View a markdown version of this page

subqueries - CloudWatch Registros de Amazon

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 usar como entrada para otra consulta. Las subconsultas se pueden usar para derivar conjuntos de resultados intermedios que luego consumen los comandos subsiguientes.

Sintaxis

Subconsulta en el filtro

filter <field> in ( <subquery> )
Parameters

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

Ejemplos

ejemplo Ejemplo 1: Busque las solicitudes en las que se detectaron errores en los servicios posteriores

En este ejemplo se muestra cómo usar una subconsulta para identificar las solicitudes del servicio principal que generaron 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 experimentaron tiempos de espera de conexión

  2. La consulta externa filtra los registros del servicio principal para mostrar solo las solicitudes que coinciden con esos ID de solicitud propensos a errores

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

Este patrón le ayuda a comprender el impacto ascendente de las fallas posteriores.

ejemplo Ejemplo 2: Identifique las solicitudes de investigación específica que fallan con frecuencia

En este ejemplo se muestra el uso de una subconsulta con agregación para encontrar 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 los ID de las solicitudes que fallaron más de 3 veces

  2. La consulta externa recupera todos los eventos de registro de esos ID de solicitud problemáticos

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

Esto ayuda a distinguir entre errores transitorios (incidencia única) y problemas persistentes (errores múltiples) que requieren una investigación más profunda.

Comportamiento

  • Las subconsultas se ejecutan independientemente de la consulta externa.

  • Los resultados se materializan antes de ser consumidos por la consulta externa.

  • 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 costo 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