Śledzenie zależności za pomocą biblioteki OpenCensus Python

Zależność to składnik zewnętrzny wywoływany przez aplikację. Dane zależności są zbierane przy użyciu języka Python OpenCensus i jego różnych integracji. Dane są następnie wysyłane do usługi Application Insights w usłudze Azure Monitor jako dependencies dane telemetryczne.

Najpierw instrumentacja aplikacji języka Python przy użyciu najnowszego zestawu OpenCensus Python SDK.

Zależności w procesie

Zestaw OpenCensus Python SDK dla usługi Azure Monitor umożliwia wysyłanie danych telemetrycznych zależności "w procesie" (informacji i logiki, które występują w aplikacji). Zależności w procesie będą miały type pole tak jak INPROC w analizie.

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

Zależności z integracją "requests"

Śledź żądania wychodzące za pomocą integracji z usługą OpenCensus requests .

Pobierz i zainstaluj z opencensus-ext-requestsinterfejsu PyPI i dodaj go do integracji śledzenia. Żądania wysyłane przy użyciu biblioteki żądań języka Python będą śledzone.

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

Zależności z integracją "httplib"

Śledzenie żądań wychodzących za pomocą integracji z usługą OpenCensus httplib .

Pobierz i zainstaluj z opencensus-ext-httplibinterfejsu PyPI i dodaj go do integracji śledzenia. Żądania wysyłane przy użyciu protokołu http.client dla języka Python3 lub httplib dla języka Python2 będą śledzone.

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

Zależności z integracją "django"

Śledź wychodzące żądania Django przy użyciu integracji openCensus django .

Uwaga

Jedynymi wychodzącymi żądaniami Django, które są śledzone, są wywołania wysyłane do bazy danych. W przypadku żądań wysyłanych do aplikacji Django zobacz żądania przychodzące.

Pobierz i zainstaluj plik opencensus-ext-djangoPyPI i dodaj następujący wiersz do MIDDLEWARE sekcji w pliku Django settings.py .

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

Można podać dodatkową konfigurację, odczytywać dostosowania , aby uzyskać pełną dokumentację.

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

Przykładową aplikację Django korzystającą z zależności można znaleźć w repozytorium przykładów języka Python usługi Azure Monitor OpenCensus znajdującym się tutaj.

Zależności z integracją "mysql"

Śledź zależności MYSQL za pomocą integracji openCensus mysql . Ta integracja obsługuje bibliotekę mysql-connector .

Pobierz i zainstaluj z opencensus-ext-mysql narzędzia PyPI i dodaj następujące wiersze do kodu.

from opencensus.trace import config_integration

config_integration.trace_integrations(['mysql'])

Zależności z integracją "pymysql"

Śledź zależności PyMySQL za pomocą integracji openCensus pymysql .

Pobierz i zainstaluj z opencensus-ext-pymysql narzędzia PyPI i dodaj następujące wiersze do kodu.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymysql'])

Zależności z integracją "postgresql"

Śledź zależności bazy danych PostgreSQL za pomocą integracji z biblioteką OpenCensus postgresql . Ta integracja obsługuje bibliotekę psycopg2 .

Pobierz i zainstaluj z opencensus-ext-postgresql narzędzia PyPI i dodaj następujące wiersze do kodu.

from opencensus.trace import config_integration

config_integration.trace_integrations(['postgresql'])

Zależności z integracją "pymongo"

Śledź zależności bazy danych MongoDB za pomocą integracji biblioteki OpenCensus pymongo . Ta integracja obsługuje bibliotekę pymongo .

Pobierz i zainstaluj z opencensus-ext-pymongo narzędzia PyPI i dodaj następujące wiersze do kodu.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymongo'])

Zależności z integracją "sqlalchemy"

Śledzenie zależności przy użyciu biblioteki SQLAlchemy przy użyciu integracji z biblioteką OpenCensus sqlalchemy . Ta integracja śledzi użycie pakietu sqlalchemy , niezależnie od bazowej bazy danych.

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

Następne kroki