Share via


Controlar dependências com o Python do OpenCensus

Nota

O SDK Python do OpenCensus foi preterido, mas a Microsoft suporta-o até à descontinuação a 30 de setembro de 2024. Agora, recomendamos a oferta python baseada em OpenTelemetry e fornecemos orientações de migração.

Uma dependência é um componente externo chamado pela aplicação. Os dados de dependência são recolhidos com o OpenCensus Python e as suas várias integrações. Em seguida, os dados são enviados para o Application Insights no Azure Monitor como dependencies telemetria.

Primeiro, instrumente a sua aplicação Python com o SDK Python do OpenCensus mais recente.

Dependências no processo

O SDK Python do OpenCensus para o Azure Monitor permite-lhe enviar telemetria de dependência "em processo" (informações e lógica que ocorre na sua aplicação). As dependências no processo terão o type campo tal como INPROC na análise.

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

Dependências com integração de "pedidos"

Controle os seus pedidos de saída com a integração do OpenCensus requests .

Transfira e instale opencensus-ext-requests a partir do PyPI e adicione-o às integrações de rastreio. Os pedidos enviados com a biblioteca de pedidos do Python serão controlados.

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

Dependências com integração "httplib"

Controle os seus pedidos de saída com a integração do OpenCensus httplib .

Transfira e instale opencensus-ext-httplib a partir do PyPI e adicione-o às integrações de rastreio. Os pedidos enviados através de http.client para Python3 ou httplib para Python2 serão controlados.

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

Dependências com integração "django"

Controle os seus pedidos django de saída com a integração do OpenCensus django .

Nota

Os únicos pedidos django enviados que são controlados são chamadas feitas a uma base de dados. Para obter os pedidos feitos à aplicação Django, veja pedidos recebidos.

Transfira e instale opencensus-ext-django a partir do PyPI e adicione a seguinte linha à MIDDLEWARE secção no ficheiro Django settings.py .

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

Podem ser fornecidas configurações adicionais, personalizações de leitura para uma referência completa.

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

Pode encontrar uma aplicação de exemplo django que utiliza dependências no repositório de exemplos do Azure Monitor OpenCensus Python localizado aqui.

Dependências com integração "mysql"

Controle as dependências do MYSQL com a integração do OpenCensus mysql . Esta integração suporta a biblioteca mysql-connector .

Transfira e instale opencensus-ext-mysql a partir do PyPI e adicione as seguintes linhas ao seu código.

from opencensus.trace import config_integration

config_integration.trace_integrations(['mysql'])

Dependências com integração "pymysql"

Controle as dependências do PyMySQL com a integração do OpenCensus pymysql .

Transfira e instale opencensus-ext-pymysql a partir do PyPI e adicione as seguintes linhas ao seu código.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymysql'])

Dependências com integração "postgresql"

Controle as dependências do PostgreSQL com a integração do OpenCensus postgresql . Esta integração suporta a biblioteca psycopg2 .

Transfira e instale opencensus-ext-postgresql a partir do PyPI e adicione as seguintes linhas ao seu código.

from opencensus.trace import config_integration

config_integration.trace_integrations(['postgresql'])

Dependências com integração "pymongo"

Controle as dependências do MongoDB com a integração do OpenCensus pymongo . Esta integração suporta a biblioteca pymongo .

Transfira e instale opencensus-ext-pymongo a partir do PyPI e adicione as seguintes linhas ao seu código.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymongo'])

Dependências com integração "sqlalchemy"

Controle as suas dependências com o SQLAlchemy com a integração do OpenCensus sqlalchemy . Esta integração controla a utilização do pacote sqlalchemy , independentemente da base de dados subjacente.

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

Passos seguintes