Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().
Section Overview
Jenkins est un serveur d’automatisation doté de fonctionnalités d’intégration et de livraison continues. Grâce à son architecture de plugins, Jenkins peut être personnalisé pour répondre à tous les besoins CI/CD et automatise tous les aspects du développement, des tests et du déploiement de projets.
Configurez CI Visibility pour Jenkins afin de collecter des données sur les différentes étapes de l’exécution de vos pipelines, identifier les goulots d’étranglement en matière de performances, résoudre les problèmes opérationnels et améliorer vos processus de déploiement.
Afficher le temps pendant lequel les pipelines ont exécuté des tâches.
Les versions suivantes de Jenkins sont prises en charge :
Jenkins >= 2.346.1
Cette intégration prend en charge l’installation sans Agent et avec Agent.
L’installation de l’Agent est requise pour la corrélation des métriques d’infrastructure.
Termes
Ce tableau présente le mappage des concepts entre Datadog CI Visibility et Jenkins :
Datadog
Jenkins
Pipeline
Pipeline
Stage
Stage
Job
Step
Installer l’Agent Datadog
Ignorez cette étape si vous n’avez pas besoin de la corrélation des métriques d’infrastructure.
Si le contrôleur Jenkins et l’Agent Datadog ont été déployés sur un cluster Kubernetes, Datadog recommande l’utilisation du contrôleur d’admission, qui définit automatiquement la variable d’environnement DD_AGENT_HOST dans le pod du contrôleur Jenkins de façon à communiquer avec l’Agent Datadog local.
Si vous souhaitez transmettre les logs de vos tâches Jenkins à Datadog, assurez-vous que la collecte de logs personnalisés via TCP est activée et configurée dans l’Agent.
Si votre Agent s’exécute dans un conteneur, ajoutez-lui la variable d’environnement DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true et assurez-vous que les ports suivants sont accessibles par le contrôleur Jenkins :
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Manage Plugins.
Accédez à l’onglet Available de l’Update Center et recherchez Datadog Plugin.
Cochez la case à côté du plug-in, puis installez-le en utilisant l’un des deux boutons d’installation situés au bas de l’écran.
Pour vérifier que le plug-in est installé, recherchez Datadog Plugin sur l’onglet Installed.
Configurer le plugin Datadog pour Jenkins
Il existe plusieurs façons de configurer le plugin Datadog pour Jenkins.
Configurer avec l’interface de configuration de Jenkins
Transmettre via l’Agent Datadog (recommandé)
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Configure System.
Accédez à la section Datadog Plugin en faisant dérouler l’écran de configuration vers le bas.
Sélectionnez le mode Use the Datadog Agent to report to Datadog.
Configurez le host Agent.
Configurez CI Visibility :
Configurez le Traces Collection Port si vous n’utilisez pas le port par défaut 8126.
Cliquez sur le bouton Test traces connection pour vérifier que votre configuration est valide.
Cochez la case Enable CI Visibility.
(Facultatif) Configurez le nom de votre instance CI.
(Facultatif) Configurez la collecte de logs :
Configurez le port Log Collection comme configuré dans l’Agent Datadog.
Cliquez sur le bouton Test logs connection pour vérifier que votre configuration est valide.
Cochez la case Enable Log Collection.
(Facultatif) Saisissez le nom de l’host que vous utilisez pour accéder à l’interface Datadog (par exemple, app.datadoghq.com) dans le champ Datadog App hostname.
Enregistrez votre configuration.
Sans Agent (avec une clé d’API)
Utilisez cette option pour que le plugin Jenkins transmette les données directement à Datadog sans utiliser l’Agent Datadog. Cela nécessite une clé d’API.
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Configure System.
Accédez à la section Datadog Plugin en faisant dérouler l’écran de configuration vers le bas.
Sélectionnez le mode Use Datadog site and API key to report to Datadog.
Sélectionnez votre site Datadog dans le menu déroulant Pick a site.
Saisissez une Datadog API Key valide (ou utilisez l’option Select from credentials).
Cliquez sur le bouton Test Key pour vérifier que votre clé d’API est valide.
Configurez CI Visibility :
Cochez la case Enable CI Visibility.
(Facultatif) Configurez le nom de votre instance CI.
(Facultatif) Configurez la collecte de logs :
Cochez la case Enable Log Collection.
(Facultatif) Saisissez le nom de l’host que vous utilisez pour accéder à l’interface Datadog (par exemple, app.datadoghq.com) dans le champ Datadog App hostname.
Créez ou modifiez le YAML de configuration en ajoutant une entrée pour datadogGlobalConfiguration :
unclassified:datadogGlobalConfiguration:datadogClientConfiguration:# Select the `Datadog Agent` modedatadogAgentConfiguration:# Configure Datadog Agent hostagentHost:'<your-agent-host>'# Configure Datadog Agent portagentPort:8125# (Optional) Configure logs collection port as configured in your Datadog AgentagentLogCollectionPort:10518# Configure traces collection portagentTraceCollectionPort:8126# Enable CI Visibility flagenableCiVisibility:true# (Optional) Configure your CI Instance nameciInstanceName:'jenkins'# (Optional) Configure the name of the host that you use to access Datadog UIdatadogAppHostname:'app.datadoghq.com'# (Optional) Enable logs collectioncollectBuildLogs:true
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Configuration as Code.
Appliquez ou rechargez la configuration.
Vérifiez la configuration à l’aide du bouton View Configuration.
Créez ou modifiez le YAML de configuration en ajoutant une entrée pour datadogGlobalConfiguration :
unclassified:datadogGlobalConfiguration:datadogClientConfiguration:# Select the `Agentless` mode (using API key).datadogApiConfiguration:intake:datadogIntakeSite:# Configure your Datadog sitesite:''apiKey:datadogCredentialsApiKey:# Configure ID of Jenkins credentials that store your API keycredentialsId:'my-api-key-credentials-id'# Enable CI Visibility flagenableCiVisibility:true# (Optional) Configure your CI Instance nameciInstanceName:'jenkins'# (Optional) Configure the name of the host that you use to access Datadog UIdatadogAppHostname:''# (Optional) Enable logs collectioncollectBuildLogs:true
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Configuration as Code.
Appliquez ou rechargez la configuration.
Vérifiez la configuration à l’aide du bouton View Configuration.
Configurer avec Groovy
Transmettre via l’Agent Datadog (recommandé)
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Script Console.
Exécutez le script de configuration :
importjenkins.model.Jenkinsimportorg.datadog.jenkins.plugins.datadog.DatadogGlobalConfigurationimportorg.datadog.jenkins.plugins.datadog.configuration.DatadogAgentConfigurationdefjenkins=Jenkins.getInstance()defdatadog=jenkins.getDescriptorByType(DatadogGlobalConfiguration)defagentHost='localhost'// Configure your Datadog Agent host
defagentPort=8125defagentLogCollectionPort=10518// (Optional) Configure logs collection port as configured in your Datadog Agent
defagentTraceCollectionPort=8126// Configure traces collection port
datadog.datadogClientConfiguration=newDatadogAgentConfiguration(agentHost,agentPort,agentLogCollectionPort,agentTraceCollectionPort)datadog.datadogAppHostname='app.datadoghq.com'// the name of the host that you use to access Datadog UI
datadog.enableCiVisibility=truedatadog.collectBuildLogs=true// (Optional) Enable logs collection
datadog.ciInstanceName='jenkins'// (Optional) Set your CI Instance name
// Save config
datadog.save()
Sans Agent (avec une clé d’API)
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Script Console.
Exécutez le script de configuration :
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.)// Pick your Datadog site
defapiKey=newDatadogTextApiKey(Secret.fromString('<YOUR_API_KEY>'))// or `new DatadogCredentialsApiKey('<YOUR_CREDENTIALS_ID>')`
datadog.datadogClientConfiguration=newDatadogApiConfiguration(site,apiKey)datadog.datadogAppHostname=''// the name of the host that you use to access Datadog UI
datadog.enableCiVisibility=truedatadog.collectBuildLogs=true// (Optional) Enable logs collection
datadog.ciInstanceName='jenkins'// (Optional) Set your CI Instance name
// Save config
datadog.save()
Utiliser des variables d’environnement
Transmettre via l’Agent Datadog (recommandé)
Définissez les variables d’environnement suivantes sur la machine de votre instance 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
Redémarrez votre instance Jenkins.
Sans Agent (avec une clé d’API)
Définissez les variables d’environnement suivantes sur la machine de votre instance Jenkins :
# Select the Datadog Agent modeDATADOG_JENKINS_PLUGIN_REPORT_WITH=HTTP
# Configure your Datadog siteDATADOG_JENKINS_PLUGIN_DATADOG_SITE=# Configure your API keyDATADOG_JENKINS_PLUGIN_TARGET_API_KEY=your-api-key
# Enable CI VisibilityDATADOG_JENKINS_PLUGIN_ENABLE_CI_VISIBILITY=true# (Optional) Configure your CI Instance nameDATADOG_JENKINS_PLUGIN_CI_VISIBILITY_CI_INSTANCE_NAME=jenkins
# (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=
Redémarrez votre instance Jenkins.
Collecter les logs de tâches
La collecte de logs de tâches peut être activée en option lors de la configuration du plugin Jenkins (consultez la section précédente).
Les options sans Agent et avec Agent sont toutes deux prises en charge.
Les logs sont facturés séparément de CI Visibility.
La rétention, l’exclusion et les index de logs sont configurés dans Log Management. Les logs des tâches Jenkins peuvent être identifiés par le tag source:jenkins.
Corréler les métriques d’infrastructure
Si vous utilisez des workers Jenkins, vous pouvez corréler les pipelines avec l’infrastructure qui les exécute. Pour utiliser cette fonctionnalité :
Installez l’Agent Datadog dans chaque worker Jenkins.
Définissez et exportez une nouvelle variable d’environnement appelée DD_CI_HOSTNAME indiquant le hostname du worker dans chaque worker Jenkins.
Ce hostname doit être identique à celui que l’Agent Datadog transmet dans les métriques d’infrastructure pour ce worker.
Vous pouvez utiliser soit une valeur fixe, soit une autre variable d’environnement pour définir le hostname.
exportDD_CI_HOSTNAME=my-hostname
Si vous gérez vos instances Jenkins à l’aide de Kubernetes, ajoutez la variable d’environnement DD_CI_HOSTNAME au pod qui exécute la tâche Jenkins. La valeur de cette variable d’environnement dépend de ce que vous utilisez dans le daemonset de votre Agent Datadog pour la transmission des métriques d’infrastructure.
Cela ne s’applique qu’aux workers Jenkins. Pour le contrôleur Jenkins, la mise en corrélation des métriques d’infrastructure ne nécessite aucune action supplémentaire.
Remarque : la corrélation des métriques d’infrastructure est prise en charge depuis le plugin Jenkins v5.0.0 ou version ultérieure.
Activer Test Optimization
Il s’agit d’une étape facultative qui permet la collecte de données de tests à l’aide de Test Optimization.
Consultez la documentation Test Optimization pour votre langage afin de vous assurer que le framework de test que vous utilisez est pris en charge.
Il existe différentes façons d’activer Test Optimization dans une tâche ou un pipeline Jenkins :
En utilisant l’interface de configuration de Jenkins.
En ajoutant l’étape datadog dans le script de pipeline.
En configurant le traceur manuellement.
Pour les pipelines qui lancent un conteneur Docker pour exécuter des tests, vous ne pouvez configurer le traceur que manuellement.
Activer avec l’interface de configuration de Jenkins
La configuration de Test Optimization via l’interface est disponible dans le plugin Datadog pour Jenkins v5.6.0 ou version ultérieure.
Cette option ne convient pas aux pipelines qui sont entièrement configurés dans un Jenkinsfile (par exemple, les pipelines Multibranch ou les pipelines d’un dossier d’organisation).
Pour ces pipelines, utilisez la configuration déclarative avec l’étape datadog (décrite dans la section suivante).
Pour activer Test Optimization via l’interface, procédez comme suit :
Dans l’interface web de votre instance Jenkins, accédez à la tâche ou au pipeline que vous souhaitez instrumenter et sélectionnez l’option Configure.
Dans la section de configuration General, cochez la case Enable Datadog Test Optimization.
Saisissez le nom du service ou de la bibliothèque testés dans le champ Service Name. Vous pouvez choisir toute valeur qui vous semble pertinente.
Choisissez les langages pour lesquels vous souhaitez activer l’instrumentation des tests. Certains langages ne prennent pas en charge la configuration via l’interface. Pour configurer Test Optimization pour ces langages, suivez les instructions de configuration manuelles.
Cette option de configuration est disponible dans le plugin Datadog pour Jenkins v5.6.2 ou version ultérieure.
Dans les pipelines déclaratifs, ajoutez l’étape dans un bloc options de premier niveau, comme suit :
pipeline{agentanyoptions{datadog(testOptimization:[enabled:true,serviceName:"my-service",// the name of service or library being tested
languages:["JAVA"],// languages that should be instrumented (available options are "JAVA", "JAVASCRIPT", "PYTHON", "DOTNET", "RUBY")
additionalVariables:["my-var":"value"]// additional tracer configuration settings (optional)
])}stages{stage('Example'){steps{echo"Hello world."}}}}
Dans un pipeline scripté, enveloppez la section concernée avec l’étape datadog comme suit :
Certaines fonctionnalités du plugin Datadog pour Jenkins nécessitent des informations Git associées aux builds Jenkins pour fonctionner correctement.
Les informations Git minimales requises pour un build sont l’URL du référentiel, la branche, le SHA du commit et l’e-mail de l’auteur du commit.
Ces informations peuvent être déterminées automatiquement par le plugin, propagées depuis le SCM, fournies manuellement via des variables d’environnement, ou obtenues en combinant ces approches.
Remarque : si un pipeline extrait plusieurs référentiels, les informations Git des référentiels extraits plus tard dans le pipeline ont une priorité plus élevée.
Propager les informations Git depuis le SCM
Le plugin Jenkins est capable de détecter automatiquement les informations Git associées à un build ou à un pipeline.
Cependant, selon la version de Jenkins et les détails du pipeline, il peut y avoir des cas où la détection automatique des données Git n’est pas possible.
Dans ce cas, vous pouvez rendre les informations Git disponibles pour le plugin en utilisant la fonction .each {k,v -> env.setProperty(k, v)} après l’exécution des étapes checkout ou git. Par exemple :
Avec des pipelines déclaratifs
Si vous utilisez un pipeline déclaratif pour configurer votre pipeline, propagez les informations Git à l’aide d’un bloc script comme suit :
Si vous utilisez un pipeline scripté pour configurer votre pipeline, vous pouvez propager les informations git aux variables d’environnement directement.
Si le plugin ne peut pas détecter automatiquement les informations Git et que la propagation des données Git via le SCM n’est pas une option,
les informations Git nécessaires peuvent être définies manuellement.
Pour ce faire, définissez les variables d’environnement suivantes.
Remarque : bien que facultatives, ces variables d’environnement ont la priorité sur les informations Git définies par les autres plug-ins Jenkins.
DD_GIT_REPOSITORY_URL (Optional)
L’URL du référentiel de votre service. Exemple : https://github.com/my-org/my-repo.git
DD_GIT_BRANCH (facultatif)
Nom de la branche. Exemple : main
DD_GIT_TAG (facultatif)
Tag du commit (le cas échant). Exemple : 0.1.0
DD_GIT_COMMIT_SHA (facultatif)
Commit sous forme de chaîne de 40 caractères hexadécimaux. Exemple : faaca5c59512cdfba9402c6e67d81b4f5701d43c
DD_GIT_COMMIT_MESSAGE (facultatif)
Message de commit. Exemple : Message de commit initial
DD_GIT_COMMIT_AUTHOR_NAME (facultatif)
Nom de l’auteur du commit. Exemple : David Martin
DD_GIT_COMMIT_AUTHOR_EMAIL (facultatif)
Adresse e-mail de l’auteur du commit. Exemple : david@exemple.com
DD_GIT_COMMIT_AUTHOR_DATE (facultatif)
Date à laquelle l’auteur a effectué le commit, au format ISO 8601. Exemple : 2021-08-16T15:41:45.000Z
DD_GIT_COMMIT_COMMITTER_NAME (facultatif)
Nom du responsable du commit. Exemple : Marine Martin
DD_GIT_COMMIT_COMMITTER_EMAIL (facultatif)
Adresse e-mail du responsable du commit. Exemple : marine@exemple.com
DD_GIT_COMMIT_COMMITTER_DATE (facultatif)
Date à laquelle le responsable du commit a effectué le commit, au format ISO 8601. Exemple : 2021-08-16T15:41:45.000Z
Si vous définissez uniquement le référentiel, la branche et le commit, le plugin essaiera d’extraire le reste des informations Git depuis le dossier .git.
Exemple d’utilisation :
pipeline{agentanystages{stage('Checkout'){steps{script{defgitVars=giturl:'https://github.com/my-org/my-repo.git',branch:'some/feature-branch'// Définir les informations Git manuellement à l'aide de variables d'environnement.
env.DD_GIT_REPOSITORY_URL=gitVars.GIT_URLenv.DD_GIT_BRANCH=gitVars.GIT_BRANCHenv.DD_GIT_COMMIT_SHA=gitVars.GIT_COMMIT}}}stage('Test'){steps{// Exécuter le reste du pipeline.
}}}}
Inclure ou exclure des pipelines
Vous pouvez configurer le plugin Jenkins pour inclure ou exclure des pipelines spécifiques :
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Configure System.
Accédez à la section Datadog Plugin en faisant dérouler l’écran de configuration vers le bas.
Cliquez sur le bouton Advanced.
Configurez les Excluded Jobs.
Configurez les Included Jobs.
Enregistrez votre configuration.
Tâches exclues
Liste de tâches Jenkins qui ne doivent pas être surveillées, séparées par des virgules. L’exclusion s’applique à l’intégralité des métriques, traces, événements et checks de service. Les tâches exclues peuvent utiliser des expressions régulières pour faire référence à plusieurs tâches. Variable d’environnement : DATADOG_JENKINS_PLUGIN_EXCLUDED Exemple : susans-job,johns-.*,prod_folder/prod_release
Tâches incluses
Liste de noms de tâches Jenkins qui ne doivent pas être surveillées, séparées par des virgules. Si la liste de tâches fournie est vide, toutes les tâches qui ne sont pas explicitement exclues sont surveillées. Cette inclusion s’applique à l’intégralité des métriques, traces, événements et checks de service. Les tâches incluses peuvent utiliser des expressions régulières pour faire référence à plusieurs tâches. Variable d’environnement : DATADOG_JENKINS_PLUGIN_INCLUDED Exemple : susans-job,johns-.*,prod_folder/prod_release
Les listes de tâches incluses et exclues peuvent contenir des expressions régulières, mais pas des motifs glob. Pour inclure une tâche avec un préfixe spécifique, utilisez prefix-.* et non prefix-*.
Configuration avancée
Définir le nom de la branche par défaut
Pour transmettre des résultats de pipeline, ajoutez le nom de la branche par défaut (par exemple, main) aux spans de pipeline dans un attribut appelé git.default_branch. Cette opération est généralement effectuée automatiquement, mais il arrive que le plug-in ne parvienne pas à extraire ces informations car elles ne sont peut-être pas fournies par Jenkins.
Dans ce cas, définissez manuellement la branche par défaut en utilisant la variable d’environnement DD_GIT_DEFAULT_BRANCH dans votre build. Par exemple :
Pour afficher et filtrer les équipes associées à vos pipelines, ajoutez team:<your-team> comme tag personnalisé. Le nom du tag personnalisé doit correspondre exactement au handle d’équipe de vos Datadog Teams.
Définir des tags personnalisés globaux
Vous pouvez configurer le plugin Jenkins pour envoyer des tags personnalisés (comme des tags globaux et des tags de tâche globaux) dans toutes les traces de pipeline :
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Configure System.
Accédez à la section Datadog Plugin en faisant dérouler l’écran de configuration vers le bas.
Cliquez sur le bouton Advanced.
Configurez les Global Tags.
Configurez les Global Job Tags.
Enregistrez votre configuration.
Tags globaux
Liste de tags séparés par des virgules à appliquer à l’intégralité des métriques, traces, événements et checks de service. Les tags peuvent inclure des variables d’environnement qui sont définies dans l’instance de contrôleur Jenkins. Variable d’environnement : DATADOG_JENKINS_PLUGIN_GLOBAL_TAGS Exemple : key1:value1,key2:${PREMIERE_VARENV},${AUTRE_VARENV}:value3
Global job tags
Liste d’expressions régulières séparées par des virgules permettant d’identifier une tâche, et liste de tags à appliquer à cette tâche. Les tags peuvent inclure des variables d’environnement définies dans l’instance de contrôleur Jenkins. Les tags peuvent être mis en correspondance avec des groupes dans l’expression régulière à l’aide du caractère $. Variable d’environnement : DATADOG_JENKINS_PLUGIN_GLOBAL_JOB_TAGS Exemple : (.*?)_job_(.*?)_release, owner:$1, release_env:$2, optional:Tag3
Visualiser les données de pipeline dans Datadog
Une fois l’intégration configurée avec succès, les pages CI Pipeline List et Executions se remplissent de données une fois les pipelines terminés.
La page CI Pipeline List affiche uniquement les données de la branche par défaut de chaque référentiel. Pour en savoir plus, consultez la section Rechercher et gérer les pipelines CI.
Dépannage
Générer un flare de diagnostic
Lorsque vous signalez un problème à l’équipe d’assistance Datadog, générez un flare de diagnostic du plugin et fournissez-le avec la description du problème.
Pour générer le flare, procédez comme suit :
Dans l’interface web de votre instance Jenkins, accédez à Manage Jenkins > Troubleshooting > Datadog.
Dans le formulaire Diagnostic Flare, sélectionnez les informations que vous souhaitez inclure dans le flare. La sélection par défaut est recommandée. Plus vous fournissez d’informations, plus il est facile de diagnostiquer votre problème.
Cliquez sur Download pour générer et télécharger l’archive du flare.
Activer le niveau de log DEBUG pour le plug-in Datadog
Si vous rencontrez des problèmes avec le plug-in Datadog, vous pouvez activer le niveau de logging DEBUG. Ce niveau permet de visualiser les détails de la stack trace en cas d’exception.
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > System log.
Cliquez sur le bouton Add new log recorder.
Saisissez le nom de l’enregistreur de log. Par exemple : Datadog Plugin Logs.
Ajoutez les loggers suivants à la liste :
Logger : org.datadog.jenkins.plugins.datadog.clients -> Niveau de log ALL
Logger : org.datadog.jenkins.plugins.datadog.traces -> Niveau de log ALL
Logger : org.datadog.jenkins.plugins.datadog.logs -> Niveau de log ALL
Logger : org.datadog.jenkins.plugins.datadog.model -> Niveau de log ALL
Logger : org.datadog.jenkins.plugins.datadog.listeners -> Niveau de log ALL
Enregistrez la configuration.
Vous pouvez également séparer les loggers dans différents enregistreurs de log.
Une fois les enregistreurs de log correctement configurés, vous pouvez consulter les logs DEBUG en accédant à l’enregistreur de log souhaité via Manage Jenkins > System log.
Si vous déclenchez un pipeline Jenkins, vous pouvez rechercher le message Send pipeline traces dans Datadog Plugin Logs. Ce message indique que le plug-in envoie des données liées à CI Visibility à l’Agent Datadog.
Les données d’exécution de pipeline ne sont pas disponibles dans Datadog
Vérification de la connectivité HTTP
Si votre instance Jenkins est derrière un proxy HTTP, accédez à Manage Jenkins > Manage Plugins > onglet Advanced et vérifiez que la configuration du proxy est correcte.
Si le plugin Datadog est configuré pour envoyer des données à un Agent Datadog, vérifiez que l’host de l’Agent a été ajouté à la section No Proxy Hosts.
Si le plugin Datadog est configuré pour envoyer des données directement à Datadog (mode sans Agent), vérifiez que l’host Datadog a été ajouté à la section No Proxy Hosts. Le tableau ci-dessous présente les sites Datadog pris en charge et leurs valeurs d’host correspondantes :
Site Datadog
Valeur de l’host
US1
datadoghq.com
US3
us3.datadoghq.com
US5
us5.datadoghq.com
EU1
datadoghq.eu
AP1
ap1.datadoghq.com
Le plug-in Datadog ne peut pas écrire de charges utiles sur le serveur
Si le message d’erreur suivant s’affiche dans le log Jenkins, assurez-vous que la configuration du plug-in est correcte.
Error writing to server
Si vous utilisez localhost comme nom d’host, remplacez-le par le nom d’host du serveur.
Les logs Jenkins ne sont pas disponibles dans Datadog
Si le plugin Datadog est configuré pour envoyer des données à un Agent Datadog, procédez comme suit :
Assurez-vous que la collecte de logs personnalisés via TCP est activée et configurée dans l’Agent.
Accédez à l’interface de configuration du plugin et cliquez sur Test logs connection pour vérifier la connectivité des logs.
La section Datadog Plugin n’apparaît pas dans la configuration Jenkins
Si la section Datadog Plugin n’apparaît pas dans la section de configuration Jenkins, assurez-vous que le plug-in est activé. Pour ce faire :
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Manage Plugins.
Recherchez Datadog Plugin dans l’onglet Installed.
Vérifiez que la case Enabled est cochée.
Si vous activez le plug-in depuis cette page, redémarrez votre instance Jenkins en utilisant le chemin d’URL /safeRestart.
L’option CI Visibility n’apparaît pas dans la section Datadog Plugin.
Si l’option CI Visibility n’apparaît pas dans la section Datadog Plugin, vérifiez que vous avez installé la bonne version et redémarrez l’instance Jenkins. Pour ce faire :
Dans l’interface Web de votre instance Jenkins, accédez à Manage Jenkins > Manage Plugins.
Recherchez Datadog Plugin dans l’onglet Installed.
Vérifiez que vous avez installé la bonne version.
Redémarrez votre instance Jenkins en utilisant le chemin d’URL /safeRestart.
Les métriques d’infrastructure ne sont pas corrélées aux pipelines Jenkins
Si, même après avoir suivi ces étapes, les métriques d’infrastructure ne sont toujours pas corrélées aux pipelines Jenkins,
essayez de redémarrer l’instance Jenkins.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: