Especificación de versiones de bibliotecas de rastreo
Por defecto, la habilitación de APM en tu servidor instala la compatibilidad para servicios Java, Python, Ruby, Node.js, y .NET Core. Si sólo tienes servicios implementados en algunos de estos lenguajes, configura DD_APM_INSTRUMENTATION_LIBRARIES
en tu comando de instalación de una línea.
Por ejemplo, para instalar sólo la versión 1.25.0 de la biblioteca de rastreo Java y la última versión de la biblioteca de rastreo Python, añade lo siguiente al comando de instalación:
DD_APM_INSTRUMENTATION_LIBRARIES="java:1.25.0,python" DD_API_KEY=<YOUR_DD_API_KEY> DD_SITE="<YOUR_DD_SITE>" DD_APM_INSTRUMENTATION_ENABLED=host DD_ENV=staging bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)"
Puedes proporcionar opcionalmente un número de versión para la biblioteca de rastreo colocando dos puntos después del nombre del lenguaje y especificando la versión de la biblioteca de rastreo. Si no especificas una versión, se utilizará por defecto la versión más reciente. Los nombres de lenguajes están separados por comas.
Las versiones disponibles se enumeran en los repositorios de orígenes de rastreadores para cada lenguaje:
Especificación de versiones de bibliotecas de rastreo
Por defecto, la habilitación de APM en tu servidor instala la compatibilidad para servicios Java, Python, Ruby, Node.js, y .NET Core. Si sólo tienes servicios implementados en algunos de estos lenguajes, configura DD_APM_INSTRUMENTATION_LIBRARIES
al ejecutar el script de instalación.
Por ejemplo, para instalar sólo la versión 1.25.0 de la biblioteca de rastreo Java y la última versión de la biblioteca de rastreo Python, añade lo siguiente al comando de instalación:
DD_APM_INSTRUMENTATION_LIBRARIES="java:1.25.0,python" bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_docker_injection.sh)"
Puedes proporcionar opcionalmente un número de versión para la biblioteca de rastreo colocando dos puntos después del nombre del lenguaje y especificando la versión de la biblioteca de rastreo. Si no especificas una versión, se utilizará por defecto la versión más reciente. Los nombres de lenguajes están separados por comas.
Las versiones disponibles se enumeran en los repositorios de orígenes de rastreadores para cada lenguaje:
Habilitar o deshabilitar la instrumentación para espacios de nombres
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:
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: true
enabledNamespaces: # Añadir espacios de nombres que se van a instrumentar
- 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: true
disabledNamespaces: # Añadir espacios de nombres que no se van a instrumentar
- default
- applications
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: true
enabledNamespaces: # 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: true
disabledNamespaces: # Añadir espacios de nombres que no se van a instrumentar
- namespace_1
- namespace_2
Especificación de versiones de bibliotecas de rastreo
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:
- Especificarlas a nivel del servicio o bien
- Especificarlas a nivel del clúster.
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.
Especificación a nivel del servicio
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:
Lenguaje | Anotación del pod |
---|
Java | admission.datadoghq.com/java-lib.version: "<CONTAINER IMAGE TAG>" |
Node.js | admission.datadoghq.com/js-lib.version: "<CONTAINER IMAGE TAG>" |
Python | admission.datadoghq.com/python-lib.version: "<CONTAINER IMAGE TAG>" |
.NET | admission.datadoghq.com/dotnet-lib.version: "<CONTAINER IMAGE TAG>" |
Ruby | admission.datadoghq.com/ruby-lib.version: "<CONTAINER IMAGE TAG>" |
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:
- Java
- Node.js
- Python
- .NET (Para aplicaciones .NET que utilizan una distribución Linux basada en musl como Alpine, especifica una etiqueta (tag) con el sufijo
-musl
, como en v2.29.0-musl
). - Ruby
Ten cuidado al utilizar la última
etiqueta (tag), ya que las mayores versiones de bibliotecas pueden introducir cambios de última hora.
Por ejemplo, para instrumentar aplicaciones Java automáticamente:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
# ...
spec:
template:
metadata:
annotations:
admission.datadoghq.com/java-lib.version: "<CONTAINER IMAGE TAG>"
spec:
containers:
- # ...
Especificación a nivel del clúster
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:
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: true
libVersions: # Añade todas las bibliotecas y versiones que quieres configurar
dotnet: v2.46.0
python: v1.20.6
js: v4.17.0
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: true
libVersions: # Añade todas las bibliotecas y versiones que quieres configurar
dotnet: v2.46.0
python: v1.20.6
js: v4.17.0
Registros de contenedores
Datadog publica imágenes de bibliotecas de instrumentación en gcr.io, Docker Hub y Amazon ECR:
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.
Para obtener instrucciones sobre cómo cambiar el registro de contenedores, consulta Para cambiar tu registro de contenedores.