paint-brush
Guide du débogage local avec Datadog Agentpar@hacker5281989
7,311 lectures
7,311 lectures

Guide du débogage local avec Datadog Agent

par Dhivya Dandapani4m2023/03/21
Read on Terminal Reader

Trop long; Pour lire

L'outil Datadog permet de visualiser les logs de production. Il peut être installé sur une machine MacOSX. L'outil est écrit en Java et peut être utilisé pour surveiller les applications Java. Il est gratuit et disponible gratuitement sur le site Web de l'entreprise. Les instructions ci-dessous concernent l'installation locale.
featured image - Guide du débogage local avec Datadog Agent
Dhivya Dandapani HackerNoon profile picture
0-item
1-item

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é Datadog dans notre projet pour visualiser les journaux de production et nous l'avons trouvé super utile. C'est alors que j'ai eu une épiphanie ! Et si je configurais Datadog localement pour disséquer ces logs ? Et c'est ce qui a déclenché le contenu de ce billet de blog.


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 :

composants nécessaires à l'installation

  1. Inscrivez-vous à Datadog ici . Notre portée ici est uniquement le débogage local, donc un essai gratuit devrait suffire.
  2. 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.
  3. 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 manuellement trace et profil 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.


instructions d'installation de l'agent

Étape 2— Installation de l'agent Datadog :

Pour MacOS, vous pouvez installer via brasser (gestionnaire de paquets pour MacOS). Utilisez le commandes données ici pour l'installation . ¹


ouvrez le pack d'infusion téléchargé et installez-le à l'aide de l'assistant

  • Personnalisez le datadog-agent comme indiqué ci-dessous


personnaliser-local-datadog-agent-paramètres

  • Une fois l'étape ci-dessus terminée, il vous sera demandé de "Terminer" dans l'interface utilisateur Datadog-web.


invite à terminer la configuration de Datadog

  • Vous serez invité à ajouter des integrations . Vous pouvez ajouter Java , Docker etc. (selon les besoins de votre projet).

Étape 3 — Installez le traceur Datadog :

  • Téléchargez le jar dd-java-agent à partir de ici ²


  • 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 


Arguments JVM pour l'application Java



  • Si vous utilisez une tâche gradle , vous pouvez inclure les jvmArgs comme ci-dessous :

Arguments JVM pour la tâche Gradle


 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 :

Le traçage Datadog a démarré — journaux

Connexion à Datadog :

  • Pour permettre aux journaux d'être diffusés en continu vers Datadog, suivez les instructions de l'interface utilisateur Web de Datadog. ⁴

configurer la source de journal

  • 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

un exemple de fichier ‘conf.yaml’ de local

  • et maintenant, les logs devraient commencer à circuler dans Datadog.


Journaux 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 et trace 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.

Mes tests — avant le débogage et après l'utilisation de Datadog

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és ici .


  • ⁴Plus de détails sont ici .


  • ⁵Si votre application est Java, vous pourriez utiliser cette bibliothèque printemps-nuage-détective pour ajouter span_id et trace_id à la requête.