La solution Application Performance Monitoring (APM) de Datadog vous permet dʼanalyser vos applications en détail, et ainsi d’identifier les goulets d’étranglement, de résoudre les problèmes et d’optimiser vos services.
Ce guide explique comment bien débuter avec lʼAPM et envoyer votre première trace à Datadog :
Configurez Datadog APM pour envoyer des traces à Datadog.
Exécutez votre application pour générer des données.
Explorez les données collectées dans Datadog.
Conditions préalables
Pour compléter ce guide, vous avez besoin des éléments suivants :
Pour créer une application à observer dans Datadog :
Sur votre hôte ou VM Linux, créez une nouvelle application Python nommée hello.py. Par exemple, nano hello.py.
Ajoutez le code suivant à hello.py :
hello.py
fromflaskimportFlaskimportrandomapp=Flask(__name__)quotes=["Strive not to be a success, but rather to be of value. - Albert Einstein","Believe you can and you're halfway there. - Theodore Roosevelt","The future belongs to those who believe in the beauty of their dreams. - Eleanor Roosevelt"]@app.route('/')defindex():quote=random.choice(quotes)+"\n"returnquoteif__name__=='__main__':app.run(host='0.0.0.0',port=5050)
Configurez Datadog APM
Pour configurer la solution APM de Datadog sans avoir à modifier le code de votre application ni le processus de déploiement, utilisez lʼinstrumentation APM en une étape. Vous pouvez aussi configurer la solution APM à l’aide des bibliothèques de traçage de Datadog.
Replace <YOUR_DD_API_KEY> with your Datadog API key, <YOUR_DD_SITE> with your Datadog site, and <AGENT_ENV> with the environment your Agent is installed on (for example, development).
Redémarrez les services sur votre hôte ou VM.
Vérifiez que l’Agent fonctionne :
sudo datadog-agent status
Cette approche permet dʼinstaller automatiquement lʼAgent Datadog, dʼactiver lʼAPM Datadog et dʼinstrumenter votre application au moment de l’exécution.
Exécutez l’application
Lorsque vous configurez lʼAPM Datadog avec lʼinstrumentation en une étape, Datadog instrumente automatiquement votre application au moment de l’exécution.
Pour exécuter hello.py :
Créez un environnement virtuel Python dans le répertoire courant :
Définissez le nom du service et exécutez hello.py :
exportDD_SERVICE=hello
python3 hello.py
Testez l’application
Testez l’application pour envoyer des traces à Datadog :
Dans une nouvelle invite de commande, exécutez ce qui suit :
curl http://0.0.0.0:5050/
Confirmez qu’une citation aléatoire est renvoyée.
Believe you can and you're halfway there. - Theodore Roosevelt
Chaque fois que vous exécutez la commande curl, une nouvelle trace est envoyée à Datadog.
Explorez les traces dans Datadog
Dans Datadog, allez à APM > Services. Vous devriez voir un service Python nommé hello :
Sélectionnez le service pour voir ses métriques de performance, telles que la latence, le débit et les taux d’erreur.
Allez à APM > Traces. Vous devriez voir une trace pour le service hello :
Sélectionnez une trace pour voir ses détails, y compris le graphique de flamme, qui aide à identifier les goulets d’étranglement de performance.
Configuration avancée de l’APM
Jusqu’à présent, vous avez laissé Datadog instrumenter automatiquement l’application hello.py en utilisant Single Step Instrumentation. Cette approche est recommandée si vous souhaitez capturer des traces essentielles à travers des bibliothèques et des langages courants sans toucher au code ou installer manuellement des bibliothèques.
Toutefois, si vous avez besoin de recueillir des traces à partir d’un code personnalisé ou si vous souhaitez un contrôle plus précis, vous pouvez ajouter l’instrumentation personnalisée.
Pour illustrer cela, vous allez importer le SDK Python de Datadog dans hello.py et créer un span personnalisé ainsi qu’une balise de span personnalisée.
Pour ajouter des instrumentations personnalisées :
Installez le SDK Datadog :
pip install ddtrace
Ajoutez les lignes surlignées au code dans hello.py pour créer une balise de span personnalisée get_quote et une balise de span personnalisée quote :
fromflaskimportFlaskimportrandomfromddtraceimporttracerapp=Flask(__name__)quotes=["Strive not to be a success, but rather to be of value. - Albert Einstein","Believe you can and you're halfway there. - Theodore Roosevelt","The future belongs to those who believe in the beauty of their dreams. - Eleanor Roosevelt"]@app.route('/')defindex():withtracer.trace("get_quote")asspan:quote=random.choice(quotes)+"\n"span.set_tag("quote",quote)returnquoteif__name__=='__main__':app.run(host='0.0.0.0',port=5050)
Exécutez hello.py dans l’environnement virtuel mentionné précédemment :
ddtrace-run python hello.py
Exécutez quelques commandes curl dans une invite de commande séparée :
Trouvez le nouveau span personnalisé get_quote dans le graphique de flamme et survolez-le :
Remarquez que la balise de span personnalisée quote s’affiche dans l’onglet Info.
Quelle est la prochaine étape ?
Après avoir configuré le traçage et que votre application envoie des données à Datadog, explorez des fonctionnalités APM supplémentaires :
Catalogue de logiciels
Catalogue de logiciels fournit une vue consolidée de vos services, combinant des métadonnées de propriété, des informations de performance, une analyse de sécurité et une allocation des coûts en un seul endroit. Configurez les métadonnées de service à l’aide de balises, d’annotations ou d’un fichier service.datadog.yaml pour enrichir vos services avec des informations de propriété, des runbooks et des liens de documentation.
Ingestion et conservation des traces
Contrôlez les coûts et gérez le volume de données en configurant les contrôles d’ingestion et les filtres de conservation. Les contrôles d’ingestion vous permettent de personnaliser les taux d’échantillonnage au niveau de l’Agent Datadog ou du SDK, tandis que les filtres de conservation déterminent quels spans sont indexés pour la recherche et l’analyse.
Lectures complémentaires
Documentation, liens et articles supplémentaires utiles: