Solucionar los problemas de la integración de AWS
Utiliza esta guía para solucionar problemas relacionados con la integración de AWS con Datadog.
Errores de permisos de IAM
Datadog no está autorizado para ejecutar sts:AssumeRole
El error de permiso sts:Assumerole
indica un problema con la política de confianza asociada con DatadogAWSIntegrationRole
. Consulta la documentación Error: Datadog no está autorizado para ejecutar sts:AssumeRole para conocer cómo puede resolver este problema.
Nota: Este error puede persistir en la interfaz de usuario de Datadog durante algunas horas mientras se propagan los cambios.
Discrepancias en los datos
Discrepancia entre tus datos en CloudWatch y Datadog
Hay dos distinciones importantes que hay que tener en cuenta:
Datadog muestra datos sin procesar de AWS en valores por segundo, independientemente del periodo de tiempo seleccionado en AWS. Por este motivo, el valor de Datadog podría aparecer más bajo.
min
, max
y avg
tienen un significado diferente en AWS que en Datadog. En AWS, la latencia promedio, la latencia mínima y la latencia máxima son tres métricas distintas que recopila AWS. Cuando Datadog obtiene métricas de AWS CloudWatch, la latencia promedio se recibe como una única serie temporal por Elastic Load Balancer (ELB). En Datadog, cuando seleccionas min
, max
o avg
, estás controlando cómo se combinan varias series temporales. Por ejemplo, al solicitar system.cpu.idle
sin ningún filtro, se devuelve una serie para cada host que informa esa métrica, y esas series deben combinarse para ser graficadas. Si, en cambio, solicitaste system.cpu.idle
desde un solo host, no es necesaria ninguna agregación y alternar entre promedio y máximo arroja el mismo resultado.
Métricas
Métricas con retraso
Al utilizar la integración de AWS, Datadog obtiene sus métricas a través de la API de CloudWatch. Es posible que notes un pequeño retraso en las métricas de AWS debido a algunas limitaciones que existen para su API.
La API de CloudWatch solo ofrece un rastreo métrica por métrica para extraer datos. Las API de CloudWatch tienen un límite de velocidad que varía en función de la combinación de credenciales de autenticación, región y servicio. AWS pone a disposición las métricas según el nivel de cuenta. Por ejemplo, si pagas por “métricas detalladas” dentro de AWS, estarán disponibles más rápidamente. Este nivel de servicio para métricas detalladas también se aplica a la granularidad, ya que algunas métricas están disponibles por minuto y otras cada cinco minutos.
Instala el Datadog Agent en el host para evitar retrasos en las métricas. Consulta la documentación del Datadog Agent para comenzar. Datadog tiene la capacidad de priorizar ciertas métricas dentro de una cuenta para extraerlas más rápido, según las circunstancias. Contacta con el soporte de Datadog para obtener información adicional.
Métricas faltantes
La API de CloudWatch solo devuelve métricas con puntos de datos, por lo que, por ejemplo, si un ELB no tiene instancias adjuntas, no se verán métricas relacionadas con este ELB en Datadog.
Recuento incorrecto de aws.elb.healthy_host_count
Cuando la opción de balanceo de carga entre zonas está habilitada en un ELB, todas las instancias que se adjuntan al ELB se consideran parte de todas las zonas de disponibilidad (del lado de CloudWatch). Por ejemplo, si tienes dos instancias en 1a
y tres instancias en ab
, la métrica muestra cinco instancias por zona de disponibilidad.
Como esto puede resultar contraintuitivo, las métricas aws.elb.healthy_host_count_deduped y aws.elb.un_healthy_host_count_deduped muestran el recuento de instancias en buen estado y en mal estado por zona de disponibilidad, independientemente de si esta opción de balanceo de carga entre zonas está habilitada o no.
Aplicación Datadog
Hosts duplicados al instalar el Agent
Al instalar el Agent en un host de AWS, es posible que veas hosts duplicados en la página de infraestructura de Datadog durante algunas horas si configuras manualmente el nombre de host en la configuración del Agent. Los hosts duplicados desaparecen luego de unas horas y no afectan tu facturación.
Datadog Agent
En algunas situaciones, la configuración de IMDSv2 de EC2 hace imposible que el agente acceda a los metadatos, lo que lleva al Agent a recurrir al proveedor de nombre de host os
en lugar de aws
, como se ve en la salida de agent status
.
En entornos en contenedores, el problema podría ser que hayas bloqueado el endpoint de metadatos de EC2 mediante la asignación de roles/credenciales de IAM a los pods que se ejecutan en el clúster de Kubernetes. Kube2IAM
y kiam
son herramientas comunes que se utilizan para hacer esto. Para resolverlo, actualiza tu configuración para permitir el acceso a este endpoint.
La API de AWS permite deshabilitar IMDSv1, que el Agent utiliza de forma predeterminada. Si este es el caso, pero IMDSv2 está habilitado y es accesible, configura el parámetro ec2_prefer_imdsv2
en true
(el valor predeterminado es false
) en tu configuración del Agent. Consulta la documentación Transición al uso de Instance Metadata Service versión 2 para obtener más detalles.
IMDSv2, en su configuración predeterminada, rechaza las conexiones con un conteo de saltos de IP mayor que uno, es decir, conexiones que hayan pasado por una puerta de enlace de IP. Esto puede causar problemas cuando el Agent se ejecuta en un contenedor con una red distinta a la red del host, ya que el tiempo de ejecución reenvía el tráfico del contenedor a través de una puerta de enlace de IP virtual. Esto es común en las implementaciones de ECS. Las siguientes opciones pueden solucionar este problema:
Etiquetas
Puedes usar la integración de AWS para recopilar datos de CloudWatch o instalar un Datadog Agent directamente en cada instancia de EC2 para obtener datos y etiquetas. Si has optado por utilizar ambos métodos para recopilar datos, el backend de Datadog fusiona los datos de la integración y del Datadog Agent en un único objeto de host.
Si eliminaste la integración de AWS, pero continúas ejecutando un Datadog Agent en tus instancias de EC2, los hosts de tu cuenta de Datadog seguirán teniendo asociadas las etiquetas de host antiguas que se recopilaron de AWS. Este es el comportamiento previsto y no indica que la integración de AWS o la de Amazon EC2 aún estén habilitadas.
Puedes verificar que la integración esté habilitada marcando “Apps Running” para ese host en la lista de infraestructura o verificando el resumen de métricas y creando un notebook acotado a ese host.
Si deseas eliminar permanentemente las etiquetas de host de AWS de un host, puedes hacerlo mediante el Endpoint de API para eliminar etiquetas de host.