La Instrumentación de un solo paso (SSI) para APM instala el Datadog Agent e instrumenta tus aplicaciones en un solo paso, sin necesidad de pasos adicionales de configuración.
Si instalas o actualizas un Datadog Agent con la opción Enable APM Instrumentation (Habilitar la Instrumentación de APM) seleccionada, el Agent se instala y configura para habilitar APM. Esto instrumenta automáticamente tu aplicación, sin ningún paso adicional de instalación o configuración.
Los siguientes ejemplos muestran cómo funciona para cada tipo de despliegue.
Sustituye <YOUR_DD_API_KEY> por tu clave de API Datadog, <YOUR_DD_SITE> por tu sitio Datadog y <AGENT_ENV> por el entorno en el que está instalado tu Agent (por ejemplo, staging).
Puedes habilitar APM instalando el Agent con cualquiera de las dos opciones:
Datadog Operator
Helm Chart Datadog
La instrumentación de un solo paso no instrumenta aplicaciones en el espacio de nombres donde instalas el Datadog Agent. Se recomienda instalar el Agent en un espacio de nombres separado en tu clúster, donde no ejecutes tus aplicaciones.
Sigue estos pasos para habilitar la instrumentación de un solo paso en todo tu clúster con el Datadog Operator. Esto envía automáticamente trazas para todas las aplicaciones en el clúster que están escritas en lenguajes compatibles.
Para habilitar la instrumentación de un solo paso con el Datadog Operator:
Espera unos minutos a que se apliquen los cambios del Datadog Cluster Agent y reinicia tus aplicaciones.
Instalación con Helm
Sigue estos pasos para habilitar la instrumentación de un solo paso en todo tu clúster con Helm. Esto envía automáticamente trazas para todas las aplicaciones en el clúster que están escritas en lenguajes compatibles.
Para habilitar la instrumentación de un solo paso con Helm:
Por defecto, las bibliotecas de Datadog APM para Java, Python, Ruby, Node.js y .NET Core se instalan cuando se establece DD_APM_INSTRUMENTATION_ENABLED. DD_APM_INSTRUMENTATION_LIBRARIES se utiliza para anular qué bibliotecas se instalan. El valor es una cadena separada por comas de pares de nombres y versiones de biblioteca separados por dos puntos.
Valores de ejemplo para DD_APM_INSTRUMENTATION_LIBRARIES:
DD_APM_INSTRUMENTATION_LIBRARIES="java:1": instala sólo la biblioteca de Datadog APM para Java fijada a la línea de lanzamiento de la versión principal 1.
DD_APM_INSTRUMENTATION_LIBRARIES="java:1,python:2": instala sólo las bibliotecas de Datadog APM para Java y Python fijadas a las versiones principales 1 y 2 respectivamente.
DD_APM_INSTRUMENTATION_LIBRARIES="java:1.38.0,python:2.10.5": instala sólo las bibliotecas de Datadog APM para Java y Python fijadas a las versiones específicas 1.38.0 y 2.10.5 respectivamente.
Las versiones disponibles figuran en los repositorios fuentes de cada lenguaje:
Por defecto, las bibliotecas de Datadog APM para Java, Python, Ruby, Node.js y .NET Core se instalan cuando se establece DD_APM_INSTRUMENTATION_ENABLED. DD_APM_INSTRUMENTATION_LIBRARIES se utiliza para anular qué bibliotecas se instalan. El valor es una cadena separada por comas de pares de nombres y versiones de biblioteca separados por dos puntos.
Valores de ejemplo para DD_APM_INSTRUMENTATION_LIBRARIES:
DD_APM_INSTRUMENTATION_LIBRARIES="java:1": instala sólo la biblioteca de Datadog APM para Java fijada a la línea de lanzamiento de la versión principal 1.
DD_APM_INSTRUMENTATION_LIBRARIES="java:1,python:2": instala sólo las bibliotecas de Datadog APM para Java y Python fijadas a las versiones principales 1 y 2 respectivamente.
DD_APM_INSTRUMENTATION_LIBRARIES="java:1.38.0,python:2.10.5": instala sólo las bibliotecas de Datadog APM para Java y Python fijadas a las versiones específicas 1.38.0 y 2.10.5 respectivamente.
Las versiones disponibles figuran en los repositorios fuentes de cada lenguaje:
Puedes elegir habilitar o deshabilitar la instrumentación para aplicaciones en espacios de nombres específicos. Sólo puedes definir espacios de nombres habilitados o espacios de nombres deshabilitados, no ambos.
El archivo que tienes que configurar depende de si has habilitado la instrumentación de un solo paso con el Datadog Operator o con Helm:
Datadog Operator
Para habilitar la instrumentación para espacios de nombres específicos, añade la configuración enabledNamespaces a datadog-agent.yaml:
features:apm:instrumentation:enabled:trueenabledNamespaces:# Add namespaces to instrument- default- applications
Para deshabilitar la instrumentación para determinados espacios de nombres, añade la configuración disabledNamespaces a datadog-agent.yaml:
features:apm:instrumentation:enabled:truedisabledNamespaces:# Add namespaces to not instrument- default- applications
Helm
Para habilitar la instrumentación para espacios de nombres específicos, añade la configuración enabledNamespaces a datadog-values.yaml:
datadog:apm:instrumentation:enabled:trueenabledNamespaces:# Añadir espacios de nombres que se van a instrumentar- namespace_1- namespace_2
Para deshabilitar la instrumentación para determinados espacios de nombres, añade la configuración disabledNamespaces a datadog-values.yaml:
datadog:apm:instrumentation:enabled:truedisabledNamespaces:# Añadir espacios de nombres que no se van a instrumentar- namespace_1- namespace_2
A partir del Datadog Cluster Agent v7.52.0 o superior, puedes instrumentar automáticamente un subconjunto de tus aplicaciones, basándose en las bibliotecas de rastreo que especifiques.
Especifica bibliotecas de rastreo de Datadog y sus versiones para instrumentar automáticamente las aplicaciones escritas en esos lenguajes. Puedes configurarlo de dos maneras, que se aplican en el siguiente orden de precedencia:
Por defecto: Si no especificas ninguna versión de biblioteca yapm.instrumentation.enabled=true, las aplicaciones escritas en los lenguajes soportados se instrumentan automáticamente utilizando las últimas versiones de bibliotecas de rastreo.
Para instrumentar automáticamente aplicaciones en pods específicos, añade la anotación de lenguaje y la versión de biblioteca adecuadas para tu aplicación en la especificación de tu pod:
Sustituye <CONTAINER IMAGE TAG> por la versión de biblioteca deseada. Las versiones disponibles se enumeran en los registros de contenedores de Datadog y en los repositorios de orígenes de rastreadores para cada lenguaje:
Si no habilitas la instrumentación automática para pods específicos utilizando las anotaciones, puedes especificar qué lenguajes instrumentar en todo el clúster utilizando la configuración de la instrumentación de un solo paso. Cuando se define apm.instrumentation.libVersions, sólo se instrumentan las aplicaciones escritas en los lenguajes especificados, utilizando las versiones de biblioteca especificadas.
El archivo que tienes que configurar depende de si has habilitado la instrumentación de un solo paso con el Datadog Operator o con Helm:
Datadog Operator
Por ejemplo, para instrumentar aplicaciones .NET, Python, y Node.js añade la siguiente configuración a tu archivo datadog-agent.yaml:
features:apm:instrumentation:enabled:truelibVersions:# Add any libraries and versions you want to setdotnet:"3.2.0"python:"1.20.6"js:"4.17.0"
Helm
Por ejemplo, para instrumentar aplicaciones .NET, Python, y Node.js añade la siguiente configuración a tu archivo datadog-values.yaml:
datadog:apm:instrumentation:enabled:truelibVersions:# Add any libraries and versions you want to setdotnet:"3.2.0"python:"1.20.6"js:"4.17.0"
La variable de entorno DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY en la configuración del Datadog Cluster Agent especifica el registro utilizado por el controlador de admisión. El valor por defecto es gcr.io/datadoghq.
Puedes extraer la biblioteca de rastreo de un registro diferente cambiándolo por docker.io/datadog, public.ecr.aws/datadog u otra URL, si alojas las imágenes en un registro de contenedores local.
La instrumentación de paso único se desactiva automáticamente cuando detecta instrumentación personalizada en tu aplicación. Si deseas utilizar SSI, tendrás que:
Eliminar cualquier código personalizado de instrumentación existente.