AWS X-Ray SDK pour Python - AWS X-Ray

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS X-Ray SDK pour Python

Le SDK X-Ray pour Python est une bibliothèque pour applications Python Web qui fournit des classes et des méthodes permettant de générer et d'envoyer des données de trace au daemon X-Ray. Les données de suivi incluent des informations sur les requêtes HTTP entrantes traitées par l'application et les appels que l'application envoie aux services en aval à l'aide du AWS SDK, des clients HTTP ou d'un connecteur de base de données SQL. Vous pouvez également créer des segments manuellement et ajouter des informations de débogage dans les annotations et les métadonnées.

Vous pouvez télécharger le kit SDK avec pip.

$ pip install aws-xray-sdk
Note

Le SDK X-Ray pour Python est un projet open source. Vous pouvez suivre le projet et soumettre des problèmes et des pull requests sur GitHub : github.com/aws/ aws-xray-sdk-python

Si vous utilisez Django ou Flask, commencez par ajouter l'intergiciel du SDK à votre application afin de suivre les demandes entrantes. L'intergiciel crée un segment pour chaque demande suivie et termine le segment lorsque la réponse est envoyée. Lorsque le segment est ouvert, vous pouvez utiliser les méthodes du client du SDK pour ajouter des informations au segment et créer des sous-segments afin de suivre les appels en aval. Le kit de développement logiciel (SDK) enregistre aussi automatiquement les exceptions que votre application renvoie quand le segment est ouvert. Pour les autres applications, vous pouvez créer des segments manuellement.

Pour les fonctions Lambda appelées par une application ou un service instrumenté, Lambda lit l'en-tête de suivi et trace automatiquement les requêtes échantillonnées. Pour les autres fonctions, vous pouvez configurer Lambda pour échantillonner et suivre les demandes entrantes. Dans les deux cas, Lambda crée le segment et le fournit au SDK X-Ray.

Note

Sur Lambda, le SDK X-Ray est facultatif. Si vous ne l'utilisez pas dans votre fonction, votre carte de service inclura toujours un nœud pour le service Lambda et un nœud pour chaque fonction Lambda. En ajoutant le SDK, vous pouvez instrumenter votre code de fonction pour ajouter des sous-segments au segment de fonction enregistré par Lambda. Pour plus d’informations, consultez AWS Lambda et AWS X-Ray.

Voir Nœuds pour un exemple de Python fonction instrumentée dans Lambda.

Utilisez ensuite le SDK X-Ray pour Python pour instrumenter les appels en aval en appliquant des correctifs aux bibliothèques de votre application. Le kit SDK prend en charge les bibliothèques suivantes :

Bibliothèques prises en charge
  • botocore, boto3 — AWS SDK for Python (Boto) Clients de l'instrument.

  • pynamodb— Version du client Amazon DynamoDB de l'instrument PynamoDB.

  • aiobotocore, aioboto3 — Versions intégrées à Instrument asyncio du SDK pour les clients Python.

  • requests, aiohttp — Clients HTTP de haut niveau de l'instrument.

  • httplib, http.client— Instrument les clients HTTP de bas niveau et les bibliothèques de niveau supérieur qui les utilisent.

  • sqlite3— Clients SQLite d'instruments.

  • mysql-connector-python— Instrument les clients MySQL.

  • pg8000— Interface PostgreSQL en Python pur de l'instrument.

  • psycopg2— Adaptateur de base de données PostgreSQL Instrument.

  • pymongo— Instrument les clients MongoDB.

  • pymysql— Clients basés sur Instrument PyMy SQL pour MySQL et MariaDB.

Chaque fois que votre application appelle une base de données SQL ou d'autres services HTTP, le SDK enregistre les informations relatives à l'appel dans un sous-segment. AWS Services AWS et les ressources auxquelles vous accédez au sein des services apparaissent sous forme de nœuds en aval sur la carte de trace pour vous aider à identifier les erreurs et les problèmes de limitation sur les connexions individuelles.

Après avoir commencé à utiliser le SDK, personnalisez son comportement en configurant l'enregistreur et le middleware. Vous pouvez ajouter des plug-ins pour enregistrer les données sur les ressources de calcul exécutant votre application, personnaliser le comportement d'échantillonnage en définissant des règles d'échantillonnage et définir le niveau de journal afin d'afficher plus ou moins d'informations du kit de développement logiciel dans vos journaux d'application.

Enregistrez les informations supplémentaires sur les demandes et le travail que votre application effectue dans les annotations et les métadonnées. Les annotations sont de simples paires clé-valeur, indexées en vue de leur utilisation avec les expressions de filtre, de telle sorte que vous pouvez explorer les suivis qui contiennent des données spécifiques. Les entrées des métadonnées sont moins restrictives et peuvent enregistrer des objets et tableaux entiers (tout ce qui peut être sérialisé en JSON).

Annotations et métadonnées

Les annotations et les métadonnées sont du texte arbitraire que vous ajoutez aux segments avec le SDK X-Ray. Les annotations sont indexées pour être utilisées avec les expressions de filtre. Les métadonnées ne sont pas indexées, mais peuvent être consultées dans le segment brut à l'aide de la console ou de l'API X-Ray. Toute personne à qui vous accordez un accès en lecture à X-Ray peut consulter ces données.

Lorsque vous avez un grand nombre de clients instrumentés dans votre code, un seul segment de demande peut contenir un grand nombre de sous-segments, un par appel effectué à l'aide d'un client instrumenté. Vous pouvez organiser et grouper les sous-segments en enveloppant les appels clients dans des sous-segments personnalisés. Vous pouvez créer un sous-segment personnalisé pour la totalité d'une fonction ou pour une section de code. Vous pouvez ensuite enregistrer des métadonnées et des annotations sur le sous-segment au lieu de tout écrire sur le segment parent.

Pour la documentation de référence sur les classes et les méthodes du SDK, consultez le AWS X-Ray SDK pour les références d'PythonAPI.

Prérequis

Le SDK X-Ray pour Python prend en charge les versions de langage et de bibliothèque suivantes.

  • Python — 2.7, 3.4 et versions ultérieures

  • Django — 1.10 et versions ultérieures

  • Flask — 0.10 et versions ultérieures

  • aiohttp — 2.3.0 et versions ultérieures

  • AWS SDK for Python (Boto)— 1.4.0 et versions ultérieures

  • botocore — 1.5.0 et versions ultérieures

  • enum — 0.4.7 et versions ultérieures, pour les Python versions 3.4.0 et antérieures

  • jsonpickle — 1.0.0 et versions ultérieures

  • setuptools — 40.6.3 et versions ultérieures

  • wrapt — 1.11.0 et versions ultérieures

Gestion des dépendances

Le SDK X-Ray pour Python est disponible sur. pip

  • Packageaws-xray-sdk

Ajoutez le kit SDK en tant que dépendance dans le fichier requirements.txt.

Exemple requirements.txt
aws-xray-sdk==2.4.2 boto3==1.4.4 botocore==1.5.55 Django==1.11.3

Si vous utilisez Elastic Beanstalk pour déployer votre application, Elastic Beanstalk installe automatiquement tous les packages. requirements.txt