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
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.
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.
dd-trace-java
est un jar qui contient des API pour automatiquement ou manuellement
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.
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.
integrations
. Vous pouvez ajouter Java
, Docker
etc. (selon les besoins de votre projet). Téléchargez le jar dd-java-agent
à partir de
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.**³
-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
gradle
, vous pouvez inclure les jvmArgs
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"]
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.
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
et trace id
. C'est une bouée de sauvetage incroyable et place les journaux dans le bon contexte.⁵
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 !
¹Vous pouvez également télécharger le
²Télécharger directement le
³ À partir du JDK 11, nous pouvons utiliser FlightRecorder
sans rien activer. Plus de détails peuvent être trouvés
⁴Plus de détails sont
⁵Si votre application est Java, vous pourriez utiliser cette bibliothèquespan_id
et trace_id
à la requête.