CI Visibility no está disponible en el sitio seleccionado () en este momento.
Información general
Jenkins es un servidor de automatización con características de integración y entrega continuas (CI/CD). Con su arquitectura de complementos, Jenkins se puede personalizar para adaptarse a cualquier necesidad de CI/CD y automatiza todos los aspectos del desarrollo, los tests y el despliegue de proyectos.
Configura el rastreo en Jenkins para recopilar datos a través de varias etapas de tus ejecuciones de pipeline, identificar cuellos de botella de rendimiento, resolver desafíos operativos y refinar el despliegue de tus procesos.
Compatibilidad
| Pipeline Visibility | Plataforma | Definición |.
|—|—|———————————————————————————————————-|
| Pasos manuales | Pasos manuales | Consulta los pipelines activados de forma manual. |
| Tiempo de cola | Tiempo de cola | Consulta el tiempo que los trabajos de pipeline permanecen en la cola antes de procesarse. |
| Correlación de logs | Correlación de logs | Correlaciona los tramos (spans) de los pipelines con logs y activa la recopilación de logs de trabajos. |
| Correlación de métricas de infraestructura | Correlación de métricas de infraestructura | Correlaciona los trabajos con las métricas del host de la infraestructura para los workers de Jenkins. |
| Tramos personalizados | Tramos personalizados | Configura los tramos personalizados para tus pipelines. |
| Etiquetas (tags) personalizadas predefinidas | Etiquetas personalizadas predefinidas | Establece etiquetas personalizadas predefinidas para todos los pipelines, etapas y tramos de trabajos generados. |
| Etiquetas personalizadasy medidas en tiempo de ejecución | Etiquetas personalizadas y medidas en tiempo de ejecución | Configura etiquetas personalizadas y medidas en tiempo de ejecución. |
| Parámetros | Parámetros | Establece parámetros personalizados (como el nombre de la rama predeterminada o la información de Git) cuando se activa un pipeline. |
| Razones de fallos de pipelines | Identifica las razones de fallos de los pipelines a partir de los mensajes de error. |
| Pipelines en ejecución | Pipelines en ejecución | Consulta las ejecuciones de pipelines que se están ejecutando. Requiere la versión >= 8.0.0 del complemento de Jenkins.
Se admiten las siguientes versiones de Jenkins:
Jenkins >= 2.346.1
Este integración admite tanto la instalación sin el Agent como la instalación con el Agent.
La instalación del Agent es necesaria para la correlación de métricas de infraestructura.
Instalar el Datadog Agent
Omite este paso si no necesitas la correlación de métricas de infraestructura.
Si el controlador de Jenkins y el Datadog Agent se han desplegado en un clúster de Kubernetes, Datadog recomienda usar el controlador de admisión, que automáticamente establece la variable de entorno DD_AGENT_HOST en el pod del controlador de Jenkins para comunicarse con el Datadog Agent local.
Si deseas enviar los logs de tus trabajos de Jenkins a Datadog, asegúrate de que la recopilación de logs personalizados a través de TCP esté habilitada y configurada en el Agent.
Si el Agent se ejecuta en un contenedor, añádele la variable de entornoDD_DOGSTATSD_NON_LOCAL_TRAFFIC=true y asegúrate de que el controlador de Jenkins pueda acceder a los siguientes puertos:
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Manage Plugins (Gestionar Jenkins > Gestionar complementos).
En Update Center (Centro de actualizaciones), en la pestaña Available (Disponibles), busca Datadog Plugin (Complemento de Datadog).
Selecciona la casilla junto al complemento e instálalo mediante uno de los dos botones de instalación situados en la parte inferior de la pantalla.
Para verificar que el complemento está instalado, busca Datadog Plugin (Complemento de Datadog) en la pestaña Installed (Instalados).
Configurar el complemento de Jenkins para Datadog
Existen varias formas de configurar el complemento de Jenkins para Datadog.
Configurar con la interfaz de usuario de configuración de Jenkins
Usa esta opción para hacer que el complemento de Jenkins envíe datos directamente a Datadog sin usar el Datadog Agent. Esto requiere una clave de API.
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Configure System (Gestionar Jenkins > Configurar sistema).
Desplázate por la pantalla de configuración hasta la sección Datadog Plugin (Complemento de Datadog).
Selecciona el modo Use Datadog site and API key to report to Datadog (Utilizar el sitio de Datadog y la clave de API para enviar datos a Datadog).
Selecciona tu sitio de Datadog en el menú desplegable Pick a site (Elegir un sitio).
Ingresa una Datadog API Key (Clave de API de Datadog) válida (o utiliza la opción Select from credentials [Seleccionar desde las credenciales]).
Haz clic en el botón Test Key (Probar clave) para verificar que tu clave de API es válida.
Configurar CI Visibility:
Activa la casilla Enable CI Visibility (Activar CI Visibility).
(Opcional) Configura el nombre de tu instancia de CI.
(Opcional) Configura la recopilación de logs:
Activa la casilla Enable Log Collection (Activar la recopilación de logs).
(Opcional) Ingresa el nombre del host que utilizas para acceder a la interfaz de usuario de Datadog (por ejemplo, app.datadoghq.com) en el campo Datadog App hostname (Nombre de host de la aplicación Datadog).
Guarda tu configuración.
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Configure System (Gestionar Jenkins > Configurar sistema).
Desplázate por la pantalla de configuración hasta la sección Datadog Plugin (Complemento de Datadog).
Selecciona el modo Use the Datadog Agent to report to Datadog (Utilizar el Datadog Agent para enviar datos a Datadog).
Configura el host Agent.
Configurar CI Visibility:
Configura el Traces Collection Port (Puerto de recopilación de trazas) si no utilizas el puerto predeterminado 8126.
Haz clic en el botón Test traces connection (Probar conexión de trazas) para verificar que tu configuración es válida.
Activa la casilla Enable CI Visibility (Activar CI Visibility).
(Opcional) Configura el nombre de tu instancia de CI.
(Opcional) Configura la recopilación de logs:
Configura el puerto Log Collection (Recopilación de logs) como está configurado en el Datadog Agent.
Haz clic en el botón Test logs connection (Probar conexión de logs) para verificar que tu configuración es válida.
Activa la casilla Enable Log Collection (Activar la recopilación de logs).
(Opcional) Ingresa el nombre del host que utilizas para acceder a la interfaz de usuario de Datadog (por ejemplo, app.datadoghq.com) en el campo Datadog App hostname (Nombre de host de la aplicación Datadog).
Crea o modifica el archivo YAML de configuración mediante la adición de una entrada para datadogGlobalConfiguration:
unclassified:datadogGlobalConfiguration:datadogClientConfiguration:# Selecciona el modo `Agentless` (con la clave de API).datadogApiConfiguration:intake:datadogIntakeSite:# Configura tu sitio de Datadog site:'US1'apiKey:datadogCredentialsApiKey:# Configura el ID de las credenciales de Jenkins que almacenan tu clave de APIcredentialsId:'my-api-key-credentials-id'# Activa el indicador de CI VisibilityenableCiVisibility:true# (Opcional) Configura el nombre de tu instancia de CIciInstanceName:'jenkins'# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogdatadogAppHostname:'app.datadoghq.com'# (Opcional) Activa la recopilación de logscollectBuildLogs:true
unclassified:datadogGlobalConfiguration:datadogClientConfiguration:# Selecciona el modo `Agentless` (con la clave de API).datadogApiConfiguration:intake:datadogIntakeSite:# Configura tu sitio de Datadog site:'EU1'apiKey:datadogCredentialsApiKey:# Configura el ID de las credenciales de Jenkins que almacenan tu clave de APIcredentialsId:'my-api-key-credentials-id'# Activa el indicador de CI VisibilityenableCiVisibility:true# (Opcional) Configura el nombre de tu instancia de CIciInstanceName:'jenkins'# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogdatadogAppHostname:'app.datadoghq.eu'# (Opcional) Activa la recopilación de logscollectBuildLogs:true
unclassified:datadogGlobalConfiguration:datadogClientConfiguration:# Selecciona el modo `Agentless` (con la clave de API).datadogApiConfiguration:intake:datadogIntakeSite:# Configura tu sitio de Datadog site:'US1_FED'apiKey:datadogCredentialsApiKey:# Configura el ID de las credenciales de Jenkins que almacenan tu clave de APIcredentialsId:'my-api-key-credentials-id'# Activa el indicador de CI VisibilityenableCiVisibility:true# (Opcional) Configura el nombre de tu instancia de CIciInstanceName:'jenkins'# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogdatadogAppHostname:'app.ddog-gov.com'# (Opcional) Activa la recopilación de logscollectBuildLogs:true
unclassified:datadogGlobalConfiguration:datadogClientConfiguration:# Selecciona el modo `Agentless` (con la clave de API).datadogApiConfiguration:intake:datadogIntakeSite:# Configura tu sitio de Datadog site:'US3'apiKey:datadogCredentialsApiKey:# Configura el ID de las credenciales de Jenkins que almacenan tu clave de APIcredentialsId:'my-api-key-credentials-id'# Activa el indicador de CI VisibilityenableCiVisibility:true# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogciInstanceName:'jenkins'# (Opcional) Configura el nombre de host de la aplicación DatadogdatadogAppHostname:'app.us3.datadoghq.com'# (Opcional) Activa la recopilación de logscollectBuildLogs:true
unclassified:datadogGlobalConfiguration:datadogClientConfiguration:# Selecciona el modo `Agentless` (con la clave de API).datadogApiConfiguration:intake:datadogIntakeSite:# Configura tu sitio de Datadog site:'US5'apiKey:datadogCredentialsApiKey:# Configura el ID de las credenciales de Jenkins que almacenan tu clave de APIcredentialsId:'my-api-key-credentials-id'# Activa el indicador de CI VisibilityenableCiVisibility:true# (Opcional) Configura el nombre de tu instancia de CIciInstanceName:'jenkins'# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogdatadogAppHostname:'app.us5.datadoghq.com'# (Opcional) Activa la recopilación de logscollectBuildLogs:true
unclassified:datadogGlobalConfiguration:datadogClientConfiguration:# Selecciona el modo `Agentless` (con la clave de API).datadogApiConfiguration:intake:datadogIntakeSite:# Configura tu sitio de Datadog site:'AP1'apiKey:datadogCredentialsApiKey:# Configura el ID de las credenciales de Jenkins que almacenan tu clave de APIcredentialsId:'my-api-key-credentials-id'# Activa el indicador de CI VisibilityenableCiVisibility:true# (Opcional) Configura el nombre de tu instancia de CIciInstanceName:'jenkins'# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogdatadogAppHostname:'app.ap1.datadoghq.com'# (Opcional) Activa la recopilación de logscollectBuildLogs:true
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Configuration as Code (Gestionar Jenkins > Configuración como código).
Aplica o vuelve a cargar la configuración.
Comprueba la configuración mediante el botón View Configuration (Ver configuración).
Crea o modifica el archivo YAML de configuración mediante la adición de una entrada para datadogGlobalConfiguration:
unclassified:datadogGlobalConfiguration:datadogClientConfiguration:# Selecciona el modo `Datadog Agent`datadogAgentConfiguration:# Configura el host del Datadog AgentagentHost:'<your-agent-host>'# Configura el puerto del Datadog AgentagentPort:8125# (Opcional) Configura el puerto de recopilación de logs como está configurado en el Datadog AgentagentLogCollectionPort:10518# Configura el puerto de recopilación de trazasagentTraceCollectionPort:8126# Activa el indicador de CI VisibilityenableCiVisibility:true# (Opcional) Configura el nombre de tu instancia de CIciInstanceName:'jenkins'# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogdatadogAppHostname:'app.datadoghq.com'# (Opcional) Activa la recopilación de logscollectBuildLogs:true
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Configuration as Code (Gestionar Jenkins > Configuración como código).
Aplica o vuelve a cargar la configuración.
Comprueba la configuración mediante el botón View Configuration (Ver configuración).
Configurar con Groovy
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Script Console (Gestionar Jenkins > Consola de scripts).
Ejecuta el script de configuración:
importhudson.util.Secretimportjenkins.model.Jenkinsimportorg.datadog.jenkins.plugins.datadog.DatadogGlobalConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.DatadogApiConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogIntakeSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.key.DatadogTextApiKeydefjenkins=Jenkins.getInstance()defdatadog=jenkins.getDescriptorByType(DatadogGlobalConfiguration)defsite=newDatadogIntakeSite(DatadogSite.US1)// Elige tu sitio de Datadog
defapiKey=newDatadogTextApiKey(Secret.fromString('<YOUR_API_KEY>'))// o `new DatadogCredentialsApiKey('<YOUR_CREDENTIALS_ID>')`
datadog.datadogClientConfiguration=newDatadogApiConfiguration(site,apiKey)datadog.datadogAppHostname='app.datadoghq.com'// el nombre del host que utilizas para acceder a la interfaz de usuario de Datadog
datadog.enableCiVisibility=truedatadog.collectBuildLogs=true// (Opcional) Activa la recopilación de logs
datadog.ciInstanceName='jenkins'// (Opcional) Configura el nombre de tu instancia de CI
// Guarda la configuración
datadog.save()
importhudson.util.Secretimportjenkins.model.Jenkinsimportorg.datadog.jenkins.plugins.datadog.DatadogGlobalConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.DatadogApiConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogIntakeSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.key.DatadogTextApiKeydefjenkins=Jenkins.getInstance()defdatadog=jenkins.getDescriptorByType(DatadogGlobalConfiguration)defsite=newDatadogIntakeSite(DatadogSite.EU1)// Elige tu sitio de Datadog
defapiKey=newDatadogTextApiKey(Secret.fromString('<YOUR_API_KEY>'))// o `new DatadogCredentialsApiKey('<YOUR_CREDENTIALS_ID>')`
datadog.datadogClientConfiguration=newDatadogApiConfiguration(site,apiKey)datadog.datadogAppHostname='app.datadoghq.eu'// el nombre del host que utilizas para acceder a la interfaz de usuario de Datadog
datadog.enableCiVisibility=truedatadog.collectBuildLogs=true// (Opcional) Activa la recopilación de logs
datadog.ciInstanceName='jenkins'// (Opcional) Configura el nombre de tu instancia de CI
// Guarda la configuración
datadog.save()
importhudson.util.Secretimportjenkins.model.Jenkinsimportorg.datadog.jenkins.plugins.datadog.DatadogGlobalConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.DatadogApiConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogIntakeSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.key.DatadogTextApiKeydefjenkins=Jenkins.getInstance()defdatadog=jenkins.getDescriptorByType(DatadogGlobalConfiguration)defsite=newDatadogIntakeSite(DatadogSite.US1_FED)// Elige tu sitio de Datadog
defapiKey=newDatadogTextApiKey(Secret.fromString('<YOUR_API_KEY>'))// o `new DatadogCredentialsApiKey('<YOUR_CREDENTIALS_ID>')`
datadog.datadogClientConfiguration=newDatadogApiConfiguration(site,apiKey)datadog.datadogAppHostname='app.ddog-gov.com'// el nombre del host que utilizas para acceder a la interfaz de usuario de Datadog
datadog.enableCiVisibility=truedatadog.collectBuildLogs=true// (Opcional) Activa la recopilación de logs
datadog.ciInstanceName='jenkins'// (Opcional) Configura el nombre de tu instancia de CI
// Guarda la configuración
datadog.save()
importhudson.util.Secretimportjenkins.model.Jenkinsimportorg.datadog.jenkins.plugins.datadog.DatadogGlobalConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.DatadogApiConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogIntakeSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.key.DatadogTextApiKeydefjenkins=Jenkins.getInstance()defdatadog=jenkins.getDescriptorByType(DatadogGlobalConfiguration)defsite=newDatadogIntakeSite(DatadogSite.US3)// Elige tu sitio de Datadog
defapiKey=newDatadogTextApiKey(Secret.fromString('<YOUR_API_KEY>'))// o `new DatadogCredentialsApiKey('<YOUR_CREDENTIALS_ID>')`
datadog.datadogClientConfiguration=newDatadogApiConfiguration(site,apiKey)datadog.datadogAppHostname='app.us3.datadoghq.com'// el nombre del host que utilizas para acceder a la interfaz de usuario de Datadog
datadog.enableCiVisibility=truedatadog.collectBuildLogs=true// (Opcional) Activa la recopilación de logs
datadog.ciInstanceName='jenkins'// (Opcional) Configura el nombre de tu instancia de CI
// Guarda la configuración
datadog.save()
importhudson.util.Secretimportjenkins.model.Jenkinsimportorg.datadog.jenkins.plugins.datadog.DatadogGlobalConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.DatadogApiConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogIntakeSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.key.DatadogTextApiKeydefjenkins=Jenkins.getInstance()defdatadog=jenkins.getDescriptorByType(DatadogGlobalConfiguration)defsite=newDatadogIntakeSite(DatadogSite.US5)// Elige tu sitio de Datadog
defapiKey=newDatadogTextApiKey(Secret.fromString('<YOUR_API_KEY>'))// o `new DatadogCredentialsApiKey('<YOUR_CREDENTIALS_ID>')`
datadog.datadogClientConfiguration=newDatadogApiConfiguration(site,apiKey)datadog.datadogAppHostname='app.us5.datadoghq.com'// el nombre del host que utilizas para acceder a la interfaz de usuario de Datadog
datadog.enableCiVisibility=truedatadog.collectBuildLogs=true// (Opcional) Activa la recopilación de logs
datadog.ciInstanceName='jenkins'// (Opcional) Configura el nombre de tu instancia de CI
// Guarda la configuración
datadog.save()
importhudson.util.Secretimportjenkins.model.Jenkinsimportorg.datadog.jenkins.plugins.datadog.DatadogGlobalConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.DatadogApiConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogIntakeSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.intake.DatadogSiteimportorg.datadog.jenkins.plugins.datadog.configuration.api.key.DatadogTextApiKeydefjenkins=Jenkins.getInstance()defdatadog=jenkins.getDescriptorByType(DatadogGlobalConfiguration)defsite=newDatadogIntakeSite(DatadogSite.AP1)// Elige tu sitio de Datadog
defapiKey=newDatadogTextApiKey(Secret.fromString('<YOUR_API_KEY>'))// o `new DatadogCredentialsApiKey('<YOUR_CREDENTIALS_ID>')`
datadog.datadogClientConfiguration=newDatadogApiConfiguration(site,apiKey)datadog.datadogAppHostname='app.ap1.datadoghq.com'// el nombre del host que utilizas para acceder a la interfaz de usuario de Datadog
datadog.enableCiVisibility=truedatadog.collectBuildLogs=true// (Opcional) Activa la recopilación de logs
datadog.ciInstanceName='jenkins'// (Opcional) Configura el nombre de tu instancia de CI
// Guarda la configuración
datadog.save()
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Script Console (Gestionar Jenkins > Consola de scripts).
Ejecuta el script de configuración:
importjenkins.model.Jenkinsimportorg.datadog.jenkins.plugins.datadog.DatadogGlobalConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.DatadogAgentConfigurationdefjenkins=Jenkins.getInstance()defdatadog=jenkins.getDescriptorByType(DatadogGlobalConfiguration)defagentHost='localhost'// Configura el host del Datadog Agent
defagentPort=8125defagentLogCollectionPort=10518// (Opcional) Configura el puerto de recopilación de logs como está configurado en el Datadog Agent
defagentTraceCollectionPort=8126// Configura el puerto de recopilación de trazas
datadog.datadogClientConfiguration=newDatadogAgentConfiguration(agentHost,agentPort,agentLogCollectionPort,agentTraceCollectionPort)datadog.datadogAppHostname='app.datadoghq.com'// el nombre del host que utilizas para acceder a la interfaz de usuario de Datadog
datadog.enableCiVisibility=truedatadog.collectBuildLogs=true// (Opcional) Activa la recopilación de logs
datadog.ciInstanceName='jenkins'// (Opcional) Configura el nombre de tu instancia de CI
// Guarda la configuración
datadog.save()
Utilizar variables de entorno
Establece las siguientes variables de entorno en la máquina de tu instancia de Jenkins:
# Selecciona el modo Datadog AgentDATADOG_JENKINS_PLUGIN_REPORT_WITH=HTTP
# Configura tu sitio de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_SITE=US1
# Configura tu clave de APIDATADOG_JENKINS_PLUGIN_TARGET_API_KEY=your-api-key
# Activa CI VisibilityDATADOG_JENKINS_PLUGIN_ENABLE_CI_VISIBILITY=true# (Opcional) Configura el nombre de tu instancia de CIDATADOG_JENKINS_PLUGIN_CI_VISIBILITY_CI_INSTANCE_NAME=jenkins
# (Opcional) Activa la recopilación de logsDATADOG_JENKINS_PLUGIN_COLLECT_BUILD_LOGS=true# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_APP_HOSTNAME=app.datadoghq.com
# Selecciona el modo Datadog AgentDATADOG_JENKINS_PLUGIN_REPORT_WITH=HTTP
# Configura tu sitio de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_SITE=EU1
# Configura tu clave de APIDATADOG_JENKINS_PLUGIN_TARGET_API_KEY=your-api-key
# Activa CI VisibilityDATADOG_JENKINS_PLUGIN_ENABLE_CI_VISIBILITY=true# (Opcional) Configura el nombre de tu instancia de CIDATADOG_JENKINS_PLUGIN_CI_VISIBILITY_CI_INSTANCE_NAME=jenkins
# (Opcional) Activa la recopilación de logsDATADOG_JENKINS_PLUGIN_COLLECT_BUILD_LOGS=true# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_APP_HOSTNAME=app.datadoghq.eu
# Selecciona el modo Datadog AgentDATADOG_JENKINS_PLUGIN_REPORT_WITH=HTTP
# Configura tu sitio de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_SITE=US1_FED
# Configura tu clave de APIDATADOG_JENKINS_PLUGIN_TARGET_API_KEY=your-api-key
# Activa CI VisibilityDATADOG_JENKINS_PLUGIN_ENABLE_CI_VISIBILITY=true# (Opcional) Configura el nombre de tu instancia de CIDATADOG_JENKINS_PLUGIN_CI_VISIBILITY_CI_INSTANCE_NAME=jenkins
# (Opcional) Activa la recopilación de logsDATADOG_JENKINS_PLUGIN_COLLECT_BUILD_LOGS=true# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_APP_HOSTNAME=app.ddog-gov.com
# Selecciona el modo Datadog AgentDATADOG_JENKINS_PLUGIN_REPORT_WITH=HTTP
# Configura tu sitio de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_SITE=US3
# Configura tu clave de APIDATADOG_JENKINS_PLUGIN_TARGET_API_KEY=your-api-key
# Activa CI VisibilityDATADOG_JENKINS_PLUGIN_ENABLE_CI_VISIBILITY=true# (Opcional) Configura el nombre de tu instancia de CIDATADOG_JENKINS_PLUGIN_CI_VISIBILITY_CI_INSTANCE_NAME=jenkins
# (Opcional) Activa la recopilación de logsDATADOG_JENKINS_PLUGIN_COLLECT_BUILD_LOGS=true# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_APP_HOSTNAME=app.us3.datadoghq.com
# Selecciona el modo Datadog AgentDATADOG_JENKINS_PLUGIN_REPORT_WITH=HTTP
# Configura tu sitio de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_SITE=US5
# Configura tu clave de APIDATADOG_JENKINS_PLUGIN_TARGET_API_KEY=your-api-key
# Activa CI VisibilityDATADOG_JENKINS_PLUGIN_ENABLE_CI_VISIBILITY=true# (Opcional) Configura el nombre de tu instancia de CIDATADOG_JENKINS_PLUGIN_CI_VISIBILITY_CI_INSTANCE_NAME=jenkins
# (Opcional) Activa la recopilación de logsDATADOG_JENKINS_PLUGIN_COLLECT_BUILD_LOGS=true# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_APP_HOSTNAME=app.us5.datadoghq.com
# Selecciona el modo Datadog AgentDATADOG_JENKINS_PLUGIN_REPORT_WITH=HTTP
# Configura tu sitio de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_SITE=AP1
# Configura tu clave de APIDATADOG_JENKINS_PLUGIN_TARGET_API_KEY=your-api-key
# Activa CI VisibilityDATADOG_JENKINS_PLUGIN_ENABLE_CI_VISIBILITY=true# (Opcional) Configura el nombre de tu instancia de CIDATADOG_JENKINS_PLUGIN_CI_VISIBILITY_CI_INSTANCE_NAME=jenkins
# (Opcional) Activa la recopilación de logsDATADOG_JENKINS_PLUGIN_COLLECT_BUILD_LOGS=true# (Opcional) Configura el nombre del host que utilizas para acceder a la interfaz de usuario de DatadogDATADOG_JENKINS_PLUGIN_DATADOG_APP_HOSTNAME=app.ap1.datadoghq.com
Reinicia tu instancia de Jenkins.
Establece las siguientes variables de entorno en la máquina de tu instancia de Jenkins:
# Select the Datadog Agent modeDATADOG_JENKINS_PLUGIN_REPORT_WITH=DSD
# Configure the Agent hostDATADOG_JENKINS_PLUGIN_TARGET_HOST=your-agent-host
# Configure the Traces Collection port (default 8126)DATADOG_JENKINS_PLUGIN_TARGET_TRACE_COLLECTION_PORT=8126# Enable CI VisibilityDATADOG_JENKINS_PLUGIN_ENABLE_CI_VISIBILITY=true# (Optional) Configure your CI Instance nameDATADOG_JENKINS_PLUGIN_CI_VISIBILITY_CI_INSTANCE_NAME=jenkins
# (Optional) Configure Log Collection port as configured in your Datadog AgentDATADOG_JENKINS_PLUGIN_TARGET_LOG_COLLECTION_PORT=10518# (Optional) Enable logs collectionDATADOG_JENKINS_PLUGIN_COLLECT_BUILD_LOGS=true# (Optional) Configure the name of the host that you use to access Datadog UIDATADOG_JENKINS_PLUGIN_DATADOG_APP_HOSTNAME=app.datadoghq.com
Reinicia tu instancia de Jenkins.
Recopilar logs de trabajos
La recopilación de logs de trabajos puede activarse de manera opcional cuando se configura el complemento de Jenkins (ver sección anterior).
Se admiten las opciones sin el Agent y con el Agent.
Los logs se facturan por separado de CI Visibility.
La retención, la exclusión y los índices de logs se configuran en Log Management (Gestión de logs). Los logs para los trabajos de Jenkins se pueden identificar por la etiqueta source:jenkins.
Correlacionar las métricas de infraestructura
Si utilizas workers de Jenkins, puedes correlacionar los pipelines con la infraestructura que los ejecuta. Para que esta característica funcione, haz lo siguiente:
Instala el Datadog Agent en todos los workers de Jenkins.
Establece y exporta una nueva variable de entorno llamada DD_CI_HOSTNAME en cada worker de Jenkins con el nombre de host del worker.
Debe ser el mismo nombre de host que envía datos al Datadog Agent en las métricas de infraestructura para ese worker.
Puedes utilizar valores fijos u otras variables de entorno como valores válidos.
exportDD_CI_HOSTNAME=my-hostname
Si utilizas Kubernetes para gestionar tus instancias de Jenkins, añade la variable de entorno DD_CI_HOSTNAME al pod que ejecuta el trabajo de Jenkins. El valor de esta variable de entorno depende de lo que utilices en el daemonset de tu Datadog Agent al enviar los datos de las métricas de infraestructura.
Esto solo es necesario para los workers de Jenkins. Para el controlador de Jenkins, la correlación de métricas de infraestructura no requiere acciones adicionales.
Nota: La correlación de métricas de infraestructura es compatible con la versión 5.0.0 del complemento de Jenkins o una posterior.
Activar Test Optimization
Se trata de un paso de opcional que permite recopilar los datos de los tests mediante Test Optimization.
Hay diferentes maneras de activar Test Optimization dentro de un trabajo o pipeline de Jenkins:
con la interfaz de usuario de configuración de Jenkins;
con la adición del paso datadog dentro del script del pipeline;
con la configuración manual del rastreador.
En el caso de los pipelines que activan un contenedor de Docker para ejecutar tests, solo puedes configurar el rastreador manualmente.
Activar con la interfaz de usuario de configuración de Jenkins
La configuración de Test Optimization basada en la interfaz de usuario está disponible en la versión 5.6.0 del complemento de Jenkins para Datadog o una posterior.
Esta opción no es adecuada para los pipelines que se configuran por completo en Jenkinsfile (por ejemplo, pipelines de Multibranch o de Organization Folder).
Para estos pipelines, utiliza la configuración declarativa con el paso datadog (descrito en la siguiente sección).
Para activar Test Optimization a través de la interfaz de usuario, haz lo siguiente:
En la interfaz web de tu instancia de Jenkins, ve al trabajo o pipeline que deseas instrumentar y elige la opción Configure (Configurar).
En la sección de configuración General, marca la casilla Enable Datadog Test Optimization (Activar Datadog Test Optimization).
Ingresa el nombre del servicio o la biblioteca que se está sometiendo a un test en la entrada Service Name (Nombre de servicio). Puedes elegir cualquier valor que tenga sentido para ti.
Elige los lenguajes para los que deseas activar la instrumentación de los tests. Algunos de los lenguajes no admiten la configuración a través de la interfaz de usuario. Para configurar Test Optimization con estos lenguajes, sigue las instrucciones de configuración manuales.
Esta opción de configuración está disponible en la versión 5.6.2 del complemento de Jenkins para Datadog o una posterior.
En los pipelines declarativos, añade el paso a un bloque de nivel superior de options del siguiente modo:
pipeline{agentanyoptions{datadog(testOptimization:[enabled:true,serviceName:"my-service",// el nombre del servicio o la biblioteca que se está sometiendo a un test
languages:["JAVA"],// lenguajes que deben instrumentarse (las opciones disponibles son "Java", "JavaScript", "Python", "DOTNET", "Ruby")
additionalVariables:["my-var":"value"]// parámetros de configuración adicionales del rastreador (opcional)
])}stages{stage('Example'){steps{echo"Hello world."}}}}
En un pipeline con script, envuelve la sección correspondiente con el paso datadog de la siguiente manera:
Algunas características del complemento de Jenkins para Datadog requieren la información de Git asociada a las compilaciones de Jenkins para funcionar correctamente.
La información de Git mínima requerida para una compilación es la URL del repositorio, la rama, el SHA de confirmación y el correo electrónico del autor de la confirmación.
Esta información puede determinarse mediante el complemento de manera automática, propagarse desde SCM, proporcionarse manualmente con variables de entorno u obtenerse combinando estos enfoques.
Nota: Si un pipeline extrae varios repositorios, la información de Git de los repositorios que se extraen más tarde en el pipeline tiene mayor prioridad.
Propagar la información de Git desde SCM
El complemento de Jenkins puede detectar automáticamente la información de Git asociada a una compilación o a un pipeline.
Sin embargo, dependiendo de la versión de Jenkins y de los detalles del pipeline, puede haber casos en los que la detección automática de datos de Git no sea posible.
En tales casos, puedes hacer que la información de Git esté disponible para el complemento mediante la función .each {k,v -> env.setProperty(k, v)} después de ejecutar los pasos checkout o git. Por ejemplo:
Si estás usando un pipeline declarativo para Configurar tu pipeline, propaga la información de Git usando un bloque script como sigue:
Si está utilizando una tubería de secuencias de comandos para Configurar su tubería, puede propagar la información git a entorno variables directamente.
En caso de que el complemento no pueda detectar la información de Git de manera automática y propagar los datos de Git a través de SCM no sea una opción,
la información de Git necesaria puede establecerse manualmente.
Para ello, configura las siguientes variables de entorno.
Nota: Estas variables son opcionales, pero si se establecen, tienen prioridad sobre la información de Git establecida en otros complementos de Jenkins.
DD_GIT_REPOSITORY_URL (opcional)
la URL del repositorio de tu servicio. Ejemplo: https://github.com/my-org/my-repo.git
DD_GIT_BRANCH (opcional)
el nombre de la rama. Ejemplo: main
DD_GIT_TAG (opcional)
la etiqueta de la confirmación (si existe). Ejemplo: 0.1.0
DD_GIT_COMMIT_SHA (opcional)
la confirmación expresada en forma hexadecimal de 40 caracteres de longitud. Ejemplo: faaca5c59512cdfba9402c6e67d81b4f5701d43c
DD_GIT_COMMIT_MESSAGE (opcional)
el mensaje de la confirmación. Ejemplo: Initial commit message
DD_GIT_COMMIT_AUTHOR_NAME (opcional)
el nombre del autor de la confirmación. Ejemplo: John Smith
DD_GIT_COMMIT_AUTHOR_EMAIL (opcional)
el correo electrónico del autor de la confirmación. Ejemplo: john@example.com
DD_GIT_COMMIT_AUTHOR_DATE (opcional)
la fecha en la que el autor envió la confirmación expresada en formato ISO 8601. Ejemplo: 2021-08-16T15:41:45.000Z
DD_GIT_COMMIT_COMMITTER_NAME (opcional)
el nombre de la autora de la confirmación. Ejemplo: Jane Smith
DD_GIT_COMMIT_COMMITTER_EMAIL (opcional)
el correo electrónico de la autora de la confirmación. Ejemplo: jane@example.com
DD_GIT_COMMIT_COMMITTER_DATE (opcional)
la fecha en la que la autora envió la confirmación expresada en formato ISO 8601. Ejemplo: 2021-08-16T15:41:45.000Z
Si solo estableces el repositorio, la rama y la confirmación, el complemento intentará extraer el resto de la información de Git de la carpeta .git.
Un ejemplo de uso:
pipeline{agentanystages{stage('Checkout'){steps{script{defgitVars=giturl:'https://github.com/my-org/my-repo.git',branch:'some/feature-branch'// Establece manualmente la información de Git a través de las variables de entorno.
env.DD_GIT_REPOSITORY_URL=gitVars.GIT_URLenv.DD_GIT_BRANCH=gitVars.GIT_BRANCHenv.DD_GIT_COMMIT_SHA=gitVars.GIT_COMMIT}}}stage('Test'){steps{// Ejecuta el resto del pipeline.
}}}}
Incluir o excluir pipelines
Puedes configurar el complemento de Jenkins para incluir o excluir pipelines específicos:
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Configure System (Gestionar Jenkins > Configurar sistema).
Desplázate por la pantalla de configuración hasta la sección Datadog Plugin (Complemento de Datadog).
Haz clic en el botón Advanced (Avanzada).
Configura los Excluded Jobs (Trabajos excluidos).
Configura los Included Jobs (Trabajos incluidos).
Guarda tu configuración.
Trabajos excluidos
una lista separada por comas de los trabajos de Jenkins que no se deben monitorizar. La exclusión se aplica a todas métricas, trazas, eventos y checks de servicio. Los trabajos excluidos pueden contener expresiones regulares para hacer referencia a varios trabajos. Variable de entorno: DATADOG_JENKINS_PLUGIN_EXCLUDED Ejemplo: susans-job,johns-.*,prod_folder/prod_release
Trabajos incluidos
una lista separada por comas de los nombres de los trabajos de Jenkins que se deben monitorizar. Si la lista de trabajos incluidos está vacía, se monitorizarán todos los trabajos que no se excluyan explícitamente. La inclusión se aplica a todas las métricas, trazas, eventos y checks de servicio. Los trabajos incluidos pueden contener expresiones regulares para hacer referencia a varios trabajos. Variable de entorno: DATADOG_JENKINS_PLUGIN_INCLUDED Ejemplo: susans-job,johns-.*,prod_folder/prod_release
Las listas de trabajos incluidos y excluidos pueden contener expresiones regulares, pero no patrones glob. Para incluir un trabajo con un prefijo específico, utiliza prefix-.*, no prefix-*.
Configuración avanzada
Establecer el nombre de la rama predeterminada
Para enviar los datos de los resultados del pipeline, adjunta el nombre de la rama predeterminada (por ejemplo, main) a los tramos del pipeline en un atributo llamado git.default_branch. Esto se hace de forma automática, pero en algunos casos el complemento no puede extraer esta información porque podría no provenir de Jenkins.
Si esto ocurre, establece la rama predeterminada de forma manual mediante la variable de entorno DD_GIT_DEFAULT_BRANCH en tu compilación. Por ejemplo:
Para mostrar y filtrar los equipos asociados a tus pipelines, añade team:<your-team> como una etiqueta personalizada. El nombre de etiqueta personalizada debe coincidir exactamente con el nombre de tu equipo en Equipos de Datadog.
Personalizar etiquetas globales
Puedes configurar el complemento de Jenkins para enviar etiquetas personalizadas (como etiquetas globales y etiquetas de trabajo globales) en todas las trazas de los pipelines:
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Configure System (Gestionar Jenkins > Configurar sistema).
Desplázate por la pantalla de configuración hasta la sección Datadog Plugin (Complemento de Datadog).
Haz clic en el botón Advanced (Avanzada).
Configura las Global Tags (Etiquetas globales).
Configura las Global Job Tags (Etiquetas de trabajo globales).
Guarda tu configuración.
Etiquetas globales
una lista separada por comas de etiquetas para aplicar a todas las métricas, trazas, eventos y checks de servicio. Las etiquetas pueden incluir variables de entorno que se definen en la instancia del controlador de Jenkins. Variable de entorno: DATADOG_JENKINS_PLUGIN_GLOBAL_TAGS Ejemplo: key1:value1,key2:${SOME_ENVVAR},${OTHER_ENVVAR}:value3
Etiquetas de trabajo globales
una lista separada por comas de expresiones regulares que coinciden con un trabajo y una lista de etiquetas para aplicar a ese trabajo. Las etiquetas pueden incluir variables de entorno que se definen en la instancia del controlador de Jenkins. Las etiquetas pueden hacer referencia a grupos coincidentes en la expresión regular mediante el símbolo $. Variable de entorno: DATADOG_JENKINS_PLUGIN_GLOBAL_JOB_TAGS Ejemplo: (.*?)_job_(.*?)_release, owner:$1, release_env:$2, optional:Tag3
Visualizar datos de pipelines en Datadog
Una vez que la integración se ha configurado correctamente, las páginas CI Pipeline List (Lista de pipelines de CI) y Executions (Ejecuciones) se rellenan con datos después de que los pipelines finalizan.
En la página CI Pipeline List (Lista de pipelines de CI) solo se muestran datos para la rama predeterminada de cada repositorio. Para obtener más información, consulta Buscar y gestionar pipelines de CI.
Solucionar problemas
Generar un flare de diagnóstico
Cuando informes un problema al equipo de asistencia de Datadog, genera un flare de diagnóstico del complemento y facilítalo junto con la descripción del problema.
Para generar el flare, haz lo siguiente:
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Troubleshooting > Datadog (Gestionar Jenkins > Solucionar problemas > Datadog).
En el formulario Diagnostic Flare (Flare de diagnóstico), comprueba qué información deseas incluir en el flare. La selección predeterminada es la más adecuada. Cuanta más información facilites, más fácil será diagnosticar tu problema.
Haz clic en Download (Descargar) para generar y descargar el archivo del flare.
Activar el nivel de logs DEBUG para el complemento de Datadog
Si tienes algún problema con el complemento de Datadog, puedes configurar los logs del complemento en el nivel DEBUG. En este nivel, puedes ver los detalles del stacktrace si se genera una excepción.
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > System log (Gestionar Jenkins > Log del sistema).
Haz clic en el botón Add new log recorder (Añadir nuevo registrador de logs).
Escribe el nombre del registrador de logs. Por ejemplo: Datadog Plugin Logs (Logs del complemento de Datadog).
Añade los siguientes loggers a la lista:
Logger: org.datadog.jenkins.plugins.datadog.clients -> Nivel de log ALL
Logger: org.datadog.jenkins.plugins.datadog.traces -> Nivel de log ALL
Logger: org.datadog.jenkins.plugins.datadog.logs -> Nivel de log ALL
Logger: org.datadog.jenkins.plugins.datadog.model -> Nivel de log ALL
Logger: org.datadog.jenkins.plugins.datadog.listeners -> Nivel de log ALL
Guarda la configuración.
También puedes querer dividir los loggers en diferentes registradores de logs.
Una vez que los registradores de logs se han configurado correctamente, puedes comprobar los logs en el modo DEBUG mediante el acceso al registrador de logs deseado a través de Manage Jenkins > System log (Gestionar Jenkins > Log del sistema).
Si activas un pipeline de Jenkins, puedes buscar el mensaje Send pipeline traces (Enviar trazas de pipeline) en los Datadog Plugin Logs (Logs del complemento de Datadog). Este mensaje indica que el complemento envía datos de CI Visibility al Datadog Agent.
Los datos de las ejecuciones de pipelines no están disponibles en Datadog
Check de conectividad HTTP
Si tu instancia de Jenkins está en un proxy HTTP, ve a Manage Jenkins > Manage Plugins > Advanced tab (Administrar Jenkins > Administrar complementos > Pestaña Avanzado) y asegúrate de que la configuración del proxy es la correcta:
Si el complemento de Datadog está configurado para enviar datos al Datadog Agent, comprueba que el host del Agent se haya añadido a la sección No Proxy Hosts (Hosts sin proxy).
Si el complemento de Datadog está configurado para enviar datos directamente a Datadog (modo Agentless), comprueba que el host de Datadog se haya añadido a la sección No Proxy Hosts (Hosts sin proxy). En la siguiente tabla, se muestran los sitios de Datadog admitidos y sus correspondientes valores de host:
Sitio de Datadog
Valor del host
US1
datadoghq.com
US3
us3.datadoghq.com
US5
us5.datadoghq.com
EU1
datadoghq.eu
AP1
ap1.datadoghq.com
El complemento de Datadog no puede escribir cargas útiles en el servidor
Si aparece el siguiente mensaje de error en Jenkins Log (Log de Jenkins), asegúrate de que la configuración del complemento es la correcta.
Error writing to server
Si utilizas localhost como nombre de host, cámbialo por el nombre de host del servidor.
Los logs de Jenkins no están disponibles en Datadog
Si el complemento de Datadog está configurado para enviar datos al Datadog Agent, haz lo siguiente:
Asegúrate de que la recopilación personalizada de logs a través de TCP está activada y configurada en el Agent.
Ve a la interfaz de usuario de configuración del complemento y haz clic en Test logs connection (Probar conexión de logs) para verificar la conectividad de los logs.
La sección Datadog Plugin (Complemento de Datadog) no aparece en la configuración de Jenkins
Si la sección Datadog Plugin (Complemento de Datadog) no aparece en la sección de configuración de Jenkins, asegúrate de que el complemento está activado. Para ello, haz lo siguiente:
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Manage Plugins (Gestionar Jenkins > Gestionar complementos).
Busca Datadog Plugin (Complemento de Datadog) en la pestaña Installed (Instalados).
Comprueba que la casilla Enabled (Activado) esté marcada.
Si activas el complemento aquí, reinicia tu instancia de Jenkins mediante la ruta de la URL /safeRestart.
La opción CI Visibility no aparece en la sección Datadog Plugin (Complemento de Datadog).
Si la opción CI Visibility no aparece en la sección Datadog Plugin (Complemento de Datadog), asegúrate de que está instalada la versión correcta y reinicia la instancia de Jenkins. Para ello, haz lo siguiente:
En la interfaz web de tu instancia de Jenkins, ve a Manage Jenkins > Manage Plugins (Gestionar Jenkins > Gestionar complementos).
Busca Datadog Plugin (Complemento de Datadog) en la pestaña Installed (Instalados).
Comprueba que la versión instalada es la correcta.
Reinicia tu instancia de Jenkins mediante la ruta de la URL /safeRestart.
Las métricas de infraestructura no se correlacionan con los pipelines de Jenkins
Si, incluso después de seguir los pasos, las métricas de infraestructura siguen sin correlacionarse con los pipelines de Jenkins,
intenta reiniciar la instancia de Jenkins.