Tenere traccia delle dipendenze con OpenCensus Python

Nota

OpenCensus Python SDK è deprecato, ma Microsoft lo supporta fino al ritiro del 30 settembre 2024. È ora consigliabile l'offerta Python basata su OpenTelemetry e fornire indicazioni sulla migrazione.

Una dipendenza è un componente esterno chiamato dall'applicazione. I dati delle dipendenze vengono raccolti usando OpenCensus Python e le varie integrazioni. I dati vengono quindi inviati a Application Insights in Monitoraggio di Azure come dependencies dati di telemetria.

Prima di tutto, instrumentare l'applicazione Python con openCensus Python SDK più recente.

Dipendenze in-process

OpenCensus Python SDK per Monitoraggio di Azure consente di inviare dati di telemetria di dipendenza "in-process" (informazioni e logica che si verificano all'interno dell'applicazione). Le dipendenze in-process avranno il campo come INPROC nell'analisitype.

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

Dipendenze con l'integrazione di "richieste"

Tenere traccia delle richieste in uscita con l'integrazione openCensus requests .

Scaricare e installare opencensus-ext-requests da PyPI e aggiungerlo alle integrazioni di traccia. Le richieste inviate tramite la libreria di richieste Python verranno rilevate.

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

Dipendenze con l'integrazione "httplib"

Tenere traccia delle richieste in uscita con l'integrazione di OpenCensus httplib .

Scaricare e installare opencensus-ext-httplib da PyPI e aggiungerlo alle integrazioni di traccia. Le richieste inviate tramite http.client per Python3 o httplib per Python2 verranno rilevate.

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

Dipendenze con l'integrazione "django"

Tenere traccia delle richieste Django in uscita con l'integrazione openCensus django .

Nota

Le uniche richieste Django in uscita rilevate sono chiamate effettuate a un database. Per le richieste effettuate all'applicazione Django, vedere richieste in ingresso.

Scaricare e installare opencensus-ext-django da PyPI e aggiungere la riga seguente alla MIDDLEWARE sezione nel file Django settings.py .

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

È possibile fornire configurazioni aggiuntive, leggere personalizzazioni per un riferimento completo.

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

È possibile trovare un'applicazione di esempio Django che usa le dipendenze nel repository di esempi OpenCensus Python di Monitoraggio di Azure qui.

Dipendenze con l'integrazione "mysql"

Tenere traccia delle dipendenze MYSQL con l'integrazione openCensus mysql . Questa integrazione supporta la libreria mysql-connector .

Scaricare e installare opencensus-ext-mysql da PyPI e aggiungere le righe seguenti al codice.

from opencensus.trace import config_integration

config_integration.trace_integrations(['mysql'])

Dipendenze con l'integrazione "pymysql"

Tenere traccia delle dipendenze PyMySQL con l'integrazione openCensus pymysql .

Scaricare e installare opencensus-ext-pymysql da PyPI e aggiungere le righe seguenti al codice.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymysql'])

Dipendenze con l'integrazione di "postgresql"

Tenere traccia delle dipendenze postgreSQL con l'integrazione openCensus postgresql . Questa integrazione supporta la libreria psycopg2 .

Scaricare e installare opencensus-ext-postgresql da PyPI e aggiungere le righe seguenti al codice.

from opencensus.trace import config_integration

config_integration.trace_integrations(['postgresql'])

Dipendenze con l'integrazione "pymongo"

Tenere traccia delle dipendenze di MongoDB con l'integrazione di OpenCensus pymongo . Questa integrazione supporta la libreria pymongo .

Scaricare e installare opencensus-ext-pymongo da PyPI e aggiungere le righe seguenti al codice.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymongo'])

Dipendenze con l'integrazione di "sqlalchemy"

Tenere traccia delle dipendenze usando SQLAlchemy usando l'integrazione openCensus sqlalchemy . Questa integrazione tiene traccia dell'utilizzo del pacchetto sqlalchemy , indipendentemente dal database sottostante.

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

Passaggi successivi