Débuter avec le tracing APM

Aperçu

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 :

  1. Configurez Datadog APM pour envoyer des traces à Datadog.
  2. Exécutez votre application pour générer des données.
  3. Explorez les données collectées dans Datadog.

Conditions préalables

Pour compléter ce guide, vous avez besoin des éléments suivants :

  1. Créez un compte Datadog si vous ne l’avez pas déjà fait.
  2. Trouvez ou créez une clé API Datadog.
  3. Démarrez un hôte ou une VM Linux.

Créez une application

Pour créer une application à observer dans Datadog :

  1. Sur votre hôte ou VM Linux, créez une nouvelle application Python nommée hello.py. Par exemple, nano hello.py.

  2. Ajoutez le code suivant à hello.py :

    hello.py

      from flask import Flask
      import random
    
      app = 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('/')
      def index():
          quote = random.choice(quotes)+"\n"
          return quote
      
      if __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.

  1. Exécutez la commande d’installation :

     DD_API_KEY=<YOUR_DD_API_KEY> DD_SITE="<YOUR_DD_SITE>" DD_APM_INSTRUMENTATION_ENABLED=host DD_APM_INSTRUMENTATION_LIBRARIES=python:4 DD_ENV=<AGENT_ENV> bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)"
    

    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).

  2. Redémarrez les services sur votre hôte ou VM.

  3. 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 :

  1. Créez un environnement virtuel Python dans le répertoire courant :

    python3 -m venv ./venv
    
  2. Activez l’environnement virtuel venv :

    source ./venv/bin/activate
    
  3. Installez pip et flask :

    sudo apt-get install python3-pip
    pip install flask
    
  4. Définissez le nom du service et exécutez hello.py :

    export DD_SERVICE=hello
    python3 hello.py
    

Testez l’application

Testez l’application pour envoyer des traces à Datadog :

  1. Dans une nouvelle invite de commande, exécutez ce qui suit :

    curl http://0.0.0.0:5050/
    
  2. 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

  1. Dans Datadog, allez à APM > Services. Vous devriez voir un service Python nommé hello :

    Le catalogue de logiciels montre le nouveau service Python.
  2. Sélectionnez le service pour voir ses métriques de performance, telles que la latence, le débit et les taux d’erreur.

  3. Allez à APM > Traces. Vous devriez voir une trace pour le service hello :

    L'explorateur de traces montre la trace pour le service hello.
  4. 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 :

  1. Installez le SDK Datadog :

    pip install ddtrace
    
  2. 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 :

     from flask import Flask
     import random
     from ddtrace import tracer
    
     app = 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('/')
     def index():
         with tracer.trace("get_quote") as span:
             quote = random.choice(quotes)+"\n"
             span.set_tag("quote", quote)
             return quote
    
     if __name__ == '__main__':
         app.run(host='0.0.0.0', port=5050)
  3. Exécutez hello.py dans l’environnement virtuel mentionné précédemment :

    ddtrace-run python hello.py
    
  4. Exécutez quelques commandes curl dans une invite de commande séparée :

    curl http://0.0.0.0:5050/
    
  5. Dans Datadog, allez à APM > Traces.

  6. Sélectionnez la trace hello.

  7. Trouvez le nouveau span personnalisé get_quote dans le graphique de flamme et survolez-le :

    Le span personnalisé get_quote s'affiche dans le graphique de flamme. Au survol, la balise de span quote est affichée.
  8. 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