Usando bibliotecas de instrumentação
When you develop an app, you might use third-party libraries and frameworks to accelerate your work. If you then instrument your app using OpenTelemetry, you might want to avoid spending additional time to manually add traces, logs, and metrics to the third-party libraries and frameworks you use.
Many libraries and frameworks already support OpenTelemetry or are supported through OpenTelemetry instrumentation, so that they can generate telemetry you can export to an observability back end.
If you are instrumenting an app or service that use third-party libraries or frameworks, follow these instructions to learn how to use natively instrumented libraries and instrumentation libraries for your dependencies.
Use natively instrumented libraries
If a library comes with OpenTelemetry support by default, you can get traces, metrics, and logs emitted from that library by adding and setting up the OpenTelemetry SDK with your app.
The library might require some additional configuration for the instrumentation. Go to the documentation for that library to learn more.
Use bibliotecas de instrumentação
Se uma biblioteca não oferece suporte nativo ao OpenTelemetry, você pode usar bibliotecas de instrumentação para gerar dados de telemetria para uma biblioteca ou framework.
Por exemplo, a biblioteca de instrumentação para HTTPX cria automaticamente trechos com base em solicitações HTTP.
Configuração
Você pode instalar cada biblioteca de instrumentação separadamente usando pip. Por exemplo:
pip install opentelemetry-instrumentation-{instrumented-library}
No exemplo anterior, {instrumented-library}
é o nome da instrumentação.
Para instalar uma versão de desenvolvimento, clone ou faça um fork do
repositório opentelemetry-python-contrib
e execute o seguinte comando para
fazer uma instalação editável:
pip install -e ./instrumentation/opentelemetry-instrumentation-{integration}
Após a instalação, você precisará inicializar a biblioteca de instrumentação. Cada biblioteca geralmente tem sua própria maneira de inicializar.
Exemplo com instrumentação HTTPX
Veja como você pode instrumentar solicitações HTTP feitas usando a biblioteca
httpx
.
Primeiro, instale a biblioteca de instrumentação usando pip:
pip install opentelemetry-instrumentation-httpx
Em seguida, use o instrumentador para rastrear automaticamente as solicitações de todos os clientes:
import httpx
from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor
url = "https://some.url/get"
HTTPXClientInstrumentor().instrument()
with httpx.Client() as client:
response = client.get(url)
async with httpx.AsyncClient() as client:
response = await client.get(url)
Desativar instrumentações
Se necessário, você pode desinstrumentar clientes específicos ou todos os
clientes usando o método uninstrument_client
. Por exemplo:
import httpx
from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor
HTTPXClientInstrumentor().instrument()
client = httpx.Client()
# Desinstrumentar um cliente específico
HTTPXClientInstrumentor.uninstrument_client(client)
# Desinstrumentar todos os clientes
HTTPXClientInstrumentor().uninstrument()
Bibliotecas de instrumentação disponíveis
Uma lista completa de bibliotecas de instrumentação produzidas pelo OpenTelemetry está disponível no repositório opentelemetry-python-contrib.
Você também pode encontrar mais instrumentações disponíveis em registro.
Próximos passos
Depois de configurar as bibliotecas de instrumentação, você pode querer adicionar sua própria instrumentação no seu código, para coletar dados de telemetria personalizados.
Você também pode querer configurar um exporter apropriado para exportar seus dados de telemetria para um ou mais backends de telemetria.
Você também pode verificar a Instrumentação sem código para Python.
Feedback
Was this page helpful?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!