Commençons par « pourquoi » devrait-on même s'embêter à configurer Datadog sur la machine locale. Je peux partager ma motivation pour le mettre en place
Mon "pourquoi" fort : essayer de donner un sens aux tests aléatoires :
Nous avions une vaste suite de tests de bout en bout avec une couverture élevée. Mais malheureusement, les tests sont devenus de plus en plus flous au fil du temps. À ma grande consternation, lorsque les tests étaient exécutés de manière isolée, ils réussissaient. Lorsque nous avons exécuté toute la suite de tests, de nombreux tests commençaient à échouer. Les logs de l'application correspondant aux tests doivent nous aider à déboguer. Mais je ne pouvais même pas comprendre où les journaux d'un test particulier commençaient et se terminaient, et encore moins leur donner un sens.
Datadog à la rescousse 🦸 !
Nous avons utilisé
Notre application est écrite en Java et ma machine locale tourne sous MacOS. Vous pouvez modifier les étapes ci-dessous en fonction de vos besoins.
Que devez-vous configurer :
- Inscrivez-vous à Datadog
ici . Notre portée ici est uniquement le débogage local, donc unessai gratuit devrait suffire. - Datadog Agent est le logiciel qui surveille l'hôte sur lequel il s'exécute. Des paramètres tels que le nom du service, l'environnement, etc. peuvent être définis dans l'agent.
dd-trace-java , la bibliothèque Java cliente APM (App Performance Monitoring) de Datadog.dd-trace-java
est un jar qui contient des API pour automatiquement ou manuellementtrace etprofil Applications Java.
Étape 1 - Processus d'inscription :
Après avoir donné votre identifiant de messagerie et d'autres détails, vous serez invité à choisir votre pile technologique sur la page suivante.
après avoir cliqué sur "Suivant", vient la partie la plus importante. Vous recevrez les instructions de « configuration de l'agent ». Ma machine locale est MacOSX, je l'ai donc choisi de manière appropriée. Veuillez noter les valeurs DD_API_KEY et DD_SITE , car elles seront utilisées dans les étapes suivantes.
Étape 2— Installation de l'agent Datadog :
Pour MacOS, vous pouvez installer via
Personnalisez le
datadog-agent
comme indiqué ci-dessous
Une fois l'étape ci-dessus terminée, il vous sera demandé de "Terminer" dans l'interface utilisateur Datadog-web.
- Vous serez invité à ajouter des
integrations
. Vous pouvez ajouterJava
,Docker
etc. (selon les besoins de votre projet).
Étape 3 — Installez le traceur Datadog :
Téléchargez le jar
dd-java-agent
à partir deici ²
Pour votre application Java, assurez-vous que vous utilisez une version de Java fournie avec un FlightRecorder intégré. Ceci est nécessaire pour le traçage. OpenJdK8 est livré avec un FlightRecorder intégré. Si vous utilisez Oracle Java, vous avez besoin d'une licence commerciale pour utiliser **FlightRecorder.**³
Exécution de votre application :
- ajoutez les options VM pour notre application java :
-javaagent:"/Users/home/Downloads/dd-java-agent.jar" -Ddd.profiling.enabled=true -Ddd.logs.injection=true -Ddd.agent.port=8126 -Ddd.service=ecommerce-service -Ddd.env=local -XX:FlightRecorderOptions=stackdepth=256
- Si vous utilisez une tâche
gradle
, vous pouvez inclure lesjvmArgs
comme ci-dessous :
jvmArgs = ["-javaagent:/Users/home/Downloads/dd-java-agent.jar", "-XX:FlightRecorderOptions=stackdepth=256", "-Ddd.profiling.enabled=true", "-Ddd.logs.injection=true", "-Ddd.agent.port=8126", "-Ddd.service=ecommerce-service", "-Ddd.env=local"]
- Démarrez maintenant votre application Java. Si le traçage se déroule correctement, vous devriez voir les journaux ci-dessous :
Connexion à Datadog :
- Pour permettre aux journaux d'être diffusés en continu vers Datadog, suivez les instructions de l'interface utilisateur Web de Datadog. ⁴
- Pour
macOS
— Le répertoire de configuration est~/.datadog-agent/conf.d/java.d
et le fichier est présent dans~/.datadog-agent/conf.d/java.d/conf.yaml
et maintenant, les
logs
devraient commencer à circuler dans Datadog.
Quelques conseils:
Ajoutez les journaux
debug
appropriés au début et à la fin de chaque méthode dans votre application. C'est très utile lors du débogage.
Ajoutez un mécanisme pour injecter
span id
ettrace id
. C'est une bouée de sauvetage incroyable et place les journaux dans le bon contexte.⁵
Conclusion:
Une fois que j'ai eu l'agent Datadog opérationnel localement, j'ai pu voir toutes les demandes de manière contextuelle.
Et voila ! Tous mes tests de bout en bout réussissent maintenant 🙂 Bonne journalisation !
Information additionnelle:
¹Vous pouvez également télécharger le
paquet dmg et installez-le. Ce lien peut également être obtenu à l'étape "Configuration de l'agent" ci-dessus (reportez-vous à la capture d'écran)
²Télécharger directement le
dd-trace-java pot.
³ À partir du JDK 11, nous pouvons utiliser
FlightRecorder
sans rien activer. Plus de détails peuvent être trouvésici .
⁴Plus de détails sont
ici .
⁵Si votre application est Java, vous pourriez utiliser cette bibliothèque
printemps-nuage-détective pour ajouterspan_id
ettrace_id
à la requête.