Nachverfolgen von Abhängigkeiten mit OpenCensus Python

Hinweis

Das OpenCensus Python-SDK ist veraltet, aber Microsoft unterstützt es bis zur Einstellung am 30. September 2024. Wir empfehlen jetzt das auf OpenTelemetry basierende Python-Angebot und bieten Migrationsanleitungen.

Eine Abhängigkeit ist eine externe Komponente, die von Ihrer Anwendung aufgerufen wird. Abhängigkeitsdaten werden mithilfe von OpenCensus Python und den verschiedenen Integrationen erfasst. Die Daten werden dann als dependencies-Telemetriedaten an Application Insights unter Azure Monitor gesendet.

Instrumentieren Sie zunächst Ihre Python-Anwendung mit dem aktuellen OpenCensus Python SDK.

In-Process-Abhängigkeiten

Mit dem OpenCensus Python SDK für Azure Monitor können Sie In-Process-Abhängigkeitstelemetrie (Informationen und Logiken, die in Ihrer Anwendung auftreten) senden. Bei In-Process-Abhängigkeiten ist das Feld type in Analysen INPROC.

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!')

Abhängigkeiten mit requests-Integration

Verfolgen Sie Ihre ausgehenden Anforderungen mit der OpenCensus-requests-Integration nach.

Laden Sie opencensus-ext-requests von PyPI herunter, installieren Sie es, und fügen Sie es zu den Nachverfolgungsintegrationen hinzu. Anforderungen, die mit der Python-requests-Bibliothek versendet werden, werden nachverfolgt.

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

Abhängigkeiten mit httplib-Integration

Verfolgen Sie Ihre ausgehenden Anforderungen mit OpenCensus-httplib-Integration nach.

Laden Sie opencensus-ext-httplib von PyPI herunter, installieren Sie es, und fügen Sie es zu den Nachverfolgungsintegrationen hinzu. Anforderungen, die mit http.client für Python3 oder httplib für Python2 gesendet werden, werden nachverfolgt.

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

Abhängigkeiten mit django-Integration

Verfolgen Sie Ihre ausgehenden Django-Anforderungen mit der OpenCensus-django-Integration nach.

Hinweis

Die einzigen ausgehenden Django-Anforderungen, die nachverfolgt werden, sind Aufrufe an eine Datenbank. Informationen zu Anforderungen an die Django-Anwendung finden Sie unter Eingehende Anforderungen.

Laden Sie opencensus-ext-django von PyPI herunter, installieren Sie es, und fügen Sie die folgende Zeile zum Abschnitt MIDDLEWARE in der Django-settings.py-Datei hinzu.

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

Weitere Konfigurationsmöglichkeiten können bereitgestellt werden; umfassende Informationen dazu finden Sie im Abschnitt zu Anpassungen.

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

Sie finden eine Django-Beispielanwendung, die Abhängigkeiten verwendet, im Beispielerepository „Azure Monitor OpenCensus Python“.

Abhängigkeiten mit mysql-Integration

Verfolgen Sie Ihre MYSQL-Anforderungen mit der OpenCensus-mysql-Integration nach. Diese Integration unterstützt die mysql-connector-Bibliothek.

Laden Sie opencensus-ext-mysql von PyPI herunter, installieren Sie es, und fügen Sie Ihrem Code die folgenden Zeilen hinzu.

from opencensus.trace import config_integration

config_integration.trace_integrations(['mysql'])

Abhängigkeiten mit pymysql-Integration

Verfolgen Sie Ihre PyMySQL-Anforderungen mit der OpenCensus-pymysql-Integration nach.

Laden Sie opencensus-ext-pymysql von PyPI herunter, installieren Sie es, und fügen Sie Ihrem Code die folgenden Zeilen hinzu.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymysql'])

Abhängigkeiten mit postgresql-Integration

Verfolgen Sie Ihre PostgreSQL-Anforderungen mit der OpenCensus-postgresql-Integration nach. Diese Integration unterstützt die psycopg2-Bibliothek.

Laden Sie opencensus-ext-postgresql von PyPI herunter, installieren Sie es, und fügen Sie Ihrem Code die folgenden Zeilen hinzu.

from opencensus.trace import config_integration

config_integration.trace_integrations(['postgresql'])

Abhängigkeiten mit pymongo-Integration

Verfolgen Sie Ihre MongoDB-Anforderungen mit der OpenCensus-pymongo-Integration nach. Diese Integration unterstützt die pymongo-Bibliothek.

Laden Sie opencensus-ext-pymongo von PyPI herunter, installieren Sie es, und fügen Sie Ihrem Code die folgenden Zeilen hinzu.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymongo'])

Abhängigkeiten mit sqlalchemy-Integration

Verfolgen Sie Ihre Abhängigkeiten mithilfe von SQLAlchemy mit der OpenCensus-sqlalchemy-Integration nach. Mit dieser Integration wird die Verwendung des sqlalchemy-Pakets unabhängig von der zugrunde liegenden Datenbank nachverfolgt.

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

Nächste Schritte