Rastreie dependências com o OpenCensus Python

Atenção

O OpenCensus Python SDK foi desativado. Recomendamos a oferta Python baseada em OpenTelemetry e fornecemos orientação de migração.

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

Primeiro, instrumente seu aplicativo Python com o mais recente OpenCensus Python SDK.

Dependências em processo

O OpenCensus Python SDK for Azure Monitor permite enviar telemetria de dependência "em processo" (informações e lógica que ocorrem em seu aplicativo). As dependências em processo terão o type campo 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 "solicitações"

Acompanhe suas solicitações de saída com a integração OpenCensus requests .

Baixe e instale opencensus-ext-requests a partir do PyPI e adicione-o às integrações de rastreamento. As solicitações enviadas usando a biblioteca de solicitações Python serão rastreadas.

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"

Acompanhe suas solicitações de saída com a integração do OpenCensus httplib .

Baixe e instale opencensus-ext-httplib a partir do PyPI e adicione-o às integrações de rastreamento. As solicitações enviadas usando http.client para Python3 ou httplib para Python2 serão rastreadas.

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"

Acompanhe suas solicitações Django de saída com a integração OpenCensus django .

Nota

As únicas solicitações Django de saída que são rastreadas são chamadas feitas para um banco de dados. Para solicitações feitas ao aplicativo Django, consulte solicitações de entrada.

Baixe e instale opencensus-ext-django a partir do PyPI e adicione a seguinte linha à MIDDLEWARE seção no arquivo Django settings.py .

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

Configuração adicional pode ser fornecida, ler personalizações 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>"
        )''',
    }
}

Você pode encontrar um aplicativo de exemplo Django que usa dependências no repositório de exemplos do Azure Monitor OpenCensus Python localizado aqui.

Dependências com integração "mysql"

Acompanhe suas dependências MYSQL com a integração 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"

Acompanhe suas 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"

Acompanhe suas 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"

Acompanhe suas 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"

Rastreie suas dependências usando SQLAlchemy usando a integração OpenCensus sqlalchemy . Essa integração rastreia o uso do pacote sqlalchemy , independentemente do banco de dados subjacente.

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

Próximos passos