Acompanhar dependências com o OpenCensus Python

Observação

O SDK do Python do OpenCensus foi preterido, mas a Microsoft dá suporte a ele até a desativação em 30 de setembro de 2024. Agora, recomendamos a oferta do Python baseada no OpenTelemetry e fornecemos diretrizes de migração.

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

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

Dependências em processo

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

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

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 httplib do OpenCensus.

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

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 de saída do Django com a integração django do OpenCensus.

Observação

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

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

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

Configurações adicionais podem ser fornecidas, leia 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 do Django que usa dependências no repositório de exemplos do Python OpenCensus do Azure Monitor localizado aqui.

Dependências com a integração "mysql"

Acompanhe suas dependências do MYSQL com a integração mysql do OpenCensus. Essa integração dá suporte à biblioteca mysql-connector.

Baixe e instale opencensus-ext-mysql do PyPI e adicione as linhas a seguir ao seu código.

from opencensus.trace import config_integration

config_integration.trace_integrations(['mysql'])

Dependências com a integração "pymysql"

Acompanhe suas dependências do PyMySQL com a integração pymysql do OpenCensus.

Baixe e instale opencensus-ext-pymysql do PyPI e adicione as linhas a seguir ao seu código.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymysql'])

Dependências com a integração "postgresql"

Acompanhe suas dependências do PostgreSQL com a integração postgresql do OpenCensus. Essa integração dá suporte à biblioteca psycopg2.

Baixe e instale opencensus-ext-postgresql do PyPI e adicione as linhas a seguir ao seu código.

from opencensus.trace import config_integration

config_integration.trace_integrations(['postgresql'])

Dependências com a integração "pymongo"

Acompanhe suas dependências do MongoDB com a integração pymongo do OpenCensus. Essa integração dá suporte à biblioteca pymongo.

Baixe e instale opencensus-ext-pymongo do PyPI e adicione as linhas a seguir ao seu código.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymongo'])

Dependências com a integração "sqlalchemy"

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

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

Próximas etapas