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 la solution APM de Datadog pour envoyer des traces à Datadog.
Exécutez votre application pour générer des données.
Explorez les données collectées dans Datadog.
Prérequis
Pour compléter ce guide, vous avez besoin des éléments suivants :
Pour créer une application à observer dans Datadog :
Sur votre host 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=[«Nevousefforcezpasderéussir,maisplutôtd'être utile. - Albert Einstein »,«Avoirconfianceennoscapacitésestlamoitiédutravail.-TheodoreRoosevelt»,«L'avenir appartient à ceux qui croient en la beauté de leurs rêves. - Eleanor Roosevelt »]@app.route('/')defindex():quote=random.choice(quotes)+"\n"returnquoteif__name__=='__main__':app.run(host='0.0.0.0',port=5050)
Configurer l’APM Datadog
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 :
Remplacez <YOUR_DD_API_KEY> par votre clé dʼAPI Datadog, <YOUR_DD_SITE> par votre site Datadog et <AGENT_ENV> par lʼenvironnement sur lequel votre Agent est installé (par exemple, development).
Démarrez une nouvelle session shell.
Redémarrez les services sur votre host ou VM.
Vérifiez que lʼAgent est exécuté :
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écuter 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 Python virtuel dans le répertoire actuel :
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/
Confirmer 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, accédez à APM > Services. Vous devriez voir un service Python nommé hello :
Sélectionnez le service pour afficher ses métriques de performances, telles que la latence, le débit et les taux d’erreur.
Accédez à APM > Traces. Vous devriez voir une trace pour le service hello :
Sélectionnez une trace pour en voir les détails, y compris le flame graph, qui permet d’identifier les goulets d’étranglement en matière de performances.
Configuration avancée de l’APM
Jusqu’à ce stade, vous avez laissé Datadog instrumenter automatiquement l’application hello.py à l’aide de l’instrumentation en une seule étape. Cette approche est conseillée si vous souhaitez capturer les traces essentielles dans les bibliothèques et langages courants sans toucher au code ni installer des bibliothèques manuellement.
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 ceci, vous allez importer la bibliothèque de tracing Python de Datadog dans hello.py et créer une span et un tag de span personnalisés.
Pour ajouter des instrumentations personnalisées :
Installez la bibliothèque de tracing Datadog :
pip install ddtrace
Ajoutez les lignes surlignées au code dans hello.py pour créer un tag de span personnalisé get_quote et un tag de span personnalisé quote :
fromflaskimportFlaskimportrandomfromddtraceimporttracerapp=Flask(__name__)quotes=[«Nevousefforcezpasderéussir,maisplutôtd'être utile. - Albert Einstein »,«Avoirconfianceennoscapacitésestlamoitiédutravail.-TheodoreRoosevelt»,«L'avenir appartient à ceux qui croient en la beauté de leurs rêves. - 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é plus haut :
ddtrace-run python hello.py
Exécutez quelques commandes curl dans une invite de commande distincte :