Effectuer le suivi des dépendances avec OpenCensus Python

Notes

Le Kit de développement logiciel (SDK) Python OpenCensus est déconseillé, mais Microsoft le prend en charge jusqu’à sa mise hors service le 30 septembre 2024. Nous recommandons l’offre Python basée sur OpenTelemetry et fournissons des conseils de migration.

Une dépendance est un composant externe appelé par votre application. Les données de dépendance sont collectées à l’aide d’OpenCensus Python et de ses diverses intégrations. Ces données sont ensuite envoyées à Application Insights dans Azure Monitor, en tant que télémétrie de dependencies.

Commencez par instrumenter votre application Python avec le dernier kit SDK OpenCensus Python.

Dépendances in-process

Le kit SDK OpenCensus Python pour Azure Monitor vous permet d’envoyer une télémétrie des dépendances « in-process » (informations et logiques présentes dans votre application). Le champ type des dépendances in-process a la valeur INPROC dans Analytics.

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

tracer = Tracer(exporter=AzureExporter(connection_string="InstrumentationKey=<your-ikey-here>"), sampler=ProbabilitySampler(1.0))

with tracer.span(name='foo'): # <-- A dependency telemetry item will be sent for this span "foo"
    print('Hello, World!')

Dépendances avec intégration de « requests »

Effectuez le suivi de vos requêtes sortantes avec l’intégration de requests d’OpenCensus.

Téléchargez et installez opencensus-ext-requests à partir de PyPI, puis ajoutez-le aux intégrations de trace. Les requêtes envoyées à l’aide de la bibliothèque de requêtes Python font l’objet d’un suivi.

import requests
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace import config_integration
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

config_integration.trace_integrations(['requests'])  # <-- this line enables the requests integration

tracer = Tracer(exporter=AzureExporter(connection_string="InstrumentationKey=<your-ikey-here>"), sampler=ProbabilitySampler(1.0))

with tracer.span(name='parent'):
    response = requests.get(url='https://www.wikipedia.org/wiki/Rabbit') # <-- this request will be tracked

Dépendances avec intégration de « httplib »

Effectuez le suivi de vos requêtes sortantes avec l’intégration de httplib d’OpenCensus.

Téléchargez et installez opencensus-ext-httplib à partir de PyPI, puis ajoutez-le aux intégrations de trace. Les requêtes envoyées à l’aide de http.client pour Python3 ou de httplib pour Python2 font l’objet d’un suivi.

import http.client as httplib
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace import config_integration
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

config_integration.trace_integrations(['httplib'])
conn = httplib.HTTPConnection("www.python.org")

tracer = Tracer(
    exporter=AzureExporter(),
    sampler=ProbabilitySampler(1.0)
)

conn.request("GET", "http://www.python.org", "", {})
response = conn.getresponse()
conn.close()

Dépendances avec intégration de « django »

Effectuez le suivi de vos requêtes Django sortantes avec l’intégration de django d’OpenCensus.

Notes

Les seules requêtes Django sortantes à être suivies sont les appels adressés à une base de données. Pour les demandes adressées à l’application Django, consultez requêtes entrantes.

Téléchargez et installez opencensus-ext-django à partir de PyPI, puis ajoutez la ligne suivante à la section MIDDLEWARE du fichier settings.py de Django.

MIDDLEWARE = [
    ...
    'opencensus.ext.django.middleware.OpencensusMiddleware',
]

Vous pouvez fournir une configuration supplémentaire. Lisez les personnalisations pour obtenir une référence complète.

OPENCENSUS = {
    'TRACE': {
        'SAMPLER': 'opencensus.trace.samplers.ProbabilitySampler(rate=1)',
        'EXPORTER': '''opencensus.ext.azure.trace_exporter.AzureExporter(
            connection_string="InstrumentationKey=<your-ikey-here>"
        )''',
    }
}

Vous trouverez un exemple d’application Django qui utilise des dépendances dans le référentiel d’exemples Python Azure Monitor OpenCensus situé ici.

Dépendances avec intégration de « mysql »

Effectuez le suivi de vos dépendances MYSQL avec l’intégration de mysql d’OpenCensus. Cette intégration prend en charge la bibliothèque mysql-connector.

Téléchargez et installez opencensus-ext-mysql à partir de PyPI, puis ajoutez les lignes suivantes à votre code.

from opencensus.trace import config_integration

config_integration.trace_integrations(['mysql'])

Dépendances avec intégration de « pymysql »

Effectuez le suivi de vos dépendances PyMySQL avec l’intégration de pymysql d’OpenCensus.

Téléchargez et installez opencensus-ext-pymysql à partir de PyPI, puis ajoutez les lignes suivantes à votre code.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymysql'])

Dépendances avec intégration de « postgresql »

Effectuez le suivi de vos dépendances PostgreSQL avec l’intégration de postgresql d’OpenCensus. Cette intégration prend en charge la bibliothèque psycopg2.

Téléchargez et installez opencensus-ext-postgresql à partir de PyPI, puis ajoutez les lignes suivantes à votre code.

from opencensus.trace import config_integration

config_integration.trace_integrations(['postgresql'])

Dépendances avec intégration de « pymongo »

Effectuez le suivi de vos dépendances MongoDB avec l’intégration de pymongo d’OpenCensus. Cette intégration prend en charge la bibliothèque pymongo.

Téléchargez et installez opencensus-ext-pymongo à partir de PyPI, puis ajoutez les lignes suivantes à votre code.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymongo'])

Dépendances avec intégration de « sqlalchemy »

Effectuez le suivi de vos dépendances SQLAlchemy à l’aide de l’intégration sqlalchemy d’OpenCensus. Cette intégration effectue le suivi de l’utilisation du package sqlalchemy, quelle que soit la base de données sous-jacente.

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

Étapes suivantes