Ir para o conteúdo do rodapé
AJUDA DO PYTHON

OpenTelemetry em aplicações Python

A geração e a observabilidade eficazes de documentos são fundamentos essenciais para o desenvolvimento de sistemas escaláveis ​​e resilientes no desenvolvimento de software contemporâneo. Os desenvolvedores podem instrumentar, coletar e analisar dados observáveis ​​de sistemas distribuídos usando o OpenTelemetry, uma plataforma de observabilidade de código aberto.

Com o IronPDF, um .NET Framework robusto, os desenvolvedores podem criar, modificar e gerar documentos PDF com facilidade. Este artigo abordará a integração do OpenTelemetry Python com o IronPDF, demonstrando como essas duas tecnologias trabalham juntas para melhorar a observabilidade e o potencial de geração de documentos.

Os desenvolvedores podem acessar um extenso conjunto de recursos para instrumentar, coletar e exportar telemetria aberta e dados de sistemas distribuídos com os pacotes OpenTelemetry API e SDK, uma implementação do projeto OpenTelemetry em Python.

OpenTelemetry Python (Como funciona para desenvolvedores): Figura 1 - Página inicial do OpenTelemetry

Funcionalidades do OpenTelemetry

Vamos examinar a instrumentação do OpenTelemetry em busca de suas principais características em Python:

Rastreamento Distribuído

  • O rastreamento distribuído, que permite aos desenvolvedores acompanhar o caminho das solicitações por meio de sistemas dispersos, é possibilitado pelo OpenTelemetry for Python.
  • Os registros oferecem informações sobre a sequência de solicitações, incluindo as datas e horários dos contatos com o serviço.
  • Os desenvolvedores podem instrumentar programas em Python para registrar intervalos (spans), que são ações discretas ou partes de um rastreamento distribuído.

Coleta de métricas

  • O OpenTelemetry Python facilita a importação de métricas MeterProvider, que coleta dados numéricos sobre o comportamento e o desempenho do sistema.
  • Os desenvolvedores podem instrumentar seus aplicativos para coletar dados como latência, taxa de transferência, taxas de erro e uso de recursos.
  • Ao oferecer informações sobre padrões de uso, tendências de desempenho e integridade do sistema, essas métricas ajudam a compreender os comportamentos do sistema.

Propagação de Contexto

  • A propagação de contexto é facilitada pelo pacote de API OpenTelemetry, que garante que o contexto distribuído — como o contexto de rastreamento e de abrangência — seja propagado entre os limites do serviço.
  • Os dados de telemetria podem ser correlacionados e contextualizados à medida que se movem pelo sistema devido à propagação de contexto, o que preserva a continuidade e a consistência dos dados.

Bibliotecas de Instrumentação

  • O OpenTelemetry Python simplifica a instrumentação de aplicações Python existentes, fornecendo pacotes de instrumentação para frameworks, bibliotecas e protocolos amplamente utilizados.
  • Integrações para frameworks web (como Flask e Django), clientes de banco de dados (como SQLAlchemy e Pymongo), sistemas de mensagens (como Kafka e RabbitMQ) e muito mais podem ser encontradas em bibliotecas de instrumentação.

Ecossistema de Exportadores

  • Uma variedade de exportadores fornecidos pelo OpenTelemetry Python permite que os desenvolvedores exportem dados de telemetria para diferentes sistemas de observabilidade e backends.
  • Os exportadores oferecem suporte à integração com plataformas de observabilidade como Jaeger, Zipkin, Prometheus, AWS X-Ray, Google Cloud Trace e outras.
  • Os desenvolvedores podem configurar exportadores para transferir dados de telemetria para um ou mais servidores de armazenamento, análise e exibição a longo prazo.
  • O OpenTelemetry Python oferece suporte a técnicas de amostragem variável para regular a quantidade de dados de telemetria coletados.
  • Os desenvolvedores têm a opção de aplicar lógica de amostragem personalizada, definir a amostragem para coletar uma determinada porcentagem de rastreamentos ou amostrar de acordo com parâmetros predefinidos (como cabeçalhos de solicitação ou rotas).

Registro contextual de informações

  • Ferramentas para registrar dados contextuais, além de dados de telemetria, estão disponíveis no SDK Python do OpenTelemetry.
  • Os desenvolvedores podem adicionar contexto de rastreamento e extensão às mensagens de log com o registro contextual, o que fornece mais contexto para solução de problemas e depuração.

Criar e configurar o OpenTelemetry em Python.

Configurar o OpenTelemetry

Para configurar o OpenTelemetry para o seu projeto, você pode começar instalando os pacotes necessários usando pip install opentelemetry-exporter-jaeger.

pip install opentelemetry-exporter-jaeger
pip install opentelemetry-exporter-jaeger
SHELL

Em seguida, instale o SDK Python do OpenTelemetry usando o seguinte comando:

pip install opentelemetry-sdk
pip install opentelemetry-sdk
SHELL

O pacote pip opentelemetry-api fornece uma API abrangente para instrumentação e oferece instrumentação automática, facilitando a instrumentação de suas aplicações. Uma forma alternativa de fazer isso seria usar o método de exportação-importação BatchSpanProcessor para garantir a exportação eficiente de dados de telemetria.

Para definir os parâmetros do SDK OpenTelemetry, crie um arquivo de configuração. O arquivo de configuração otel_config.py serve como exemplo. Certifique-se de que todas as importações, como resources import Resource e trace import TracerProvider, estejam presentes para configurar o exemplo de código sem erros.

from opentelemetry import trace
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.jaeger.thrift import JaegerExporter

# Configure Jaeger exporter
jaeger_exporter = JaegerExporter(
    agent_host_name="localhost",
    agent_port=6831,
)

# Create a TracerProvider with Jaeger exporter
tracer_provider = TracerProvider(resource=Resource.create({'service.name': 'my-python-service'}))
tracer_provider.add_span_processor(BatchSpanProcessor(jaeger_exporter))
trace.set_tracer_provider(tracer_provider)
from opentelemetry import trace
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.jaeger.thrift import JaegerExporter

# Configure Jaeger exporter
jaeger_exporter = JaegerExporter(
    agent_host_name="localhost",
    agent_port=6831,
)

# Create a TracerProvider with Jaeger exporter
tracer_provider = TracerProvider(resource=Resource.create({'service.name': 'my-python-service'}))
tracer_provider.add_span_processor(BatchSpanProcessor(jaeger_exporter))
trace.set_tracer_provider(tracer_provider)
PYTHON

Dentro deste arquivo de configuração:

  • O exportador Jaeger está configurado para exportar rastreamentos para um agente Jaeger local.
  • Usando o exportador Jaeger, construímos um TracerProvider e o configuramos para ser o provedor de rastreamento global.
  • Fornecemos o nome do serviço para o nosso programa em Python.

Inicialize o OpenTelemetry em seu aplicativo.

Importe o módulo otel_config para o seu programa Python e, em seguida, inicialize o OpenTelemetry com o seguinte exemplo de código Python:

from opentelemetry import trace
from otel_config import tracer_provider

# Initialize OpenTelemetry
trace.get_tracer(__name__)
from opentelemetry import trace
from otel_config import tracer_provider

# Initialize OpenTelemetry
trace.get_tracer(__name__)
PYTHON

Ao fazer isso, a configuração encontrada em otel_config.py é inicializada para a instrumentação OpenTelemetry.

Instrumente sua aplicação

Utilize o OpenTelemetry para instrumentar seu programa Python de forma que ele possa registrar rastreamentos. Você tem duas opções para instrumentar seu código: manualmente ou por meio das bibliotecas integradas. Esta é uma ilustração de algumas chamadas de instrumentação manual:

from opentelemetry import trace

# Start a span
with trace.get_tracer(__name__).start_as_current_span("example_span"):
    # Your code here
    pass
from opentelemetry import trace

# Start a span
with trace.get_tracer(__name__).start_as_current_span("example_span"):
    # Your code here
    pass
PYTHON

Visualizar rastros na interface do usuário do Jaeger

Para visualizar e examinar os registros gravados, acesse a interface do usuário do Jaeger. Para visualizar os registros que o coletor OpenTelemetry grava, abra a interface do usuário do Jaeger em seu navegador da web (geralmente em http://localhost:16686) e escolha o nome do seu serviço.

Seguindo estas instruções, você instalou e configurou com sucesso o OpenTelemetry Python em sua aplicação. Agora, você pode ver como seu programa Python se comporta e performa usando o OpenTelemetry para gravar rastreamentos e exportá-los para o backend do Jaeger.

Primeiros passos com o IronPDF

O que é o IronPDF?

Com a poderosa biblioteca .NET IronPDF da Iron Software, os desenvolvedores podem criar, editar e apresentar documentos PDF em aplicativos .NET . Os desenvolvedores podem usar o IronPDF para criar documentos PDF programaticamente a partir de diversas fontes, como arquivos PDF preexistentes, texto HTML, URLs e imagens. Vamos analisar mais detalhadamente os recursos do IronPDF:

OpenTelemetry Python (Como funciona para desenvolvedores): Figura 2 - Página inicial do IronPDF

Converter HTML para PDF

Os desenvolvedores podem converter facilmente conteúdo HTML em arquivos PDF com o IronPDF. Ao usar texto HTML como entrada, os desenvolvedores podem produzir documentos PDF visualmente ricos, com formatação, imagens e estilos.

Converter URL para PDF

Os desenvolvedores podem gerar documentos PDF diretamente a partir de URLs usando o IronPDF. Uma excelente aplicação para essa funcionalidade é a captura de conteúdo de páginas da web ou conteúdo criado dinamicamente a partir de aplicativos da web.

Converter imagem para PDF

Com o IronPDF, imagens nos formatos PNG, JPEG e BMP podem ser convertidas em documentos PDF. Essa funcionalidade permite que desenvolvedores de aplicativos criem documentos PDF a partir de fotos, o que é útil para aplicativos que precisam de recursos como a criação de álbuns de fotos ou a incorporação de fotos em arquivos PDF.

Como instalar o IronPDF

Depois de garantir que o Python esteja instalado em seu computador, use pip para instalar o IronPDF.

pip install ironpdf

Utilizando o OpenTelemetry para gerar um documento PDF com o IronPDF

Adicione o seguinte código abaixo da inicialização do OpenTelemetry para usar o IronPDF na criação de um documento PDF :

from ironpdf import ChromePdfRenderer
from opentelemetry import trace

# Generate PDF document with IronPDF
with trace.get_tracer(__name__).start_as_current_span("pdf_generation"):
    iron_pdf = ChromePdfRenderer()
    html_content = "<html><body><h1>Hello, IronPDF!</h1></body></html>"

    pdf_content = iron_pdf.render_html_as_pdf(html_content)

    # Save or send the PDF content as needed
    with open("output.pdf", "wb") as file:
        file.write(pdf_content)
from ironpdf import ChromePdfRenderer
from opentelemetry import trace

# Generate PDF document with IronPDF
with trace.get_tracer(__name__).start_as_current_span("pdf_generation"):
    iron_pdf = ChromePdfRenderer()
    html_content = "<html><body><h1>Hello, IronPDF!</h1></body></html>"

    pdf_content = iron_pdf.render_html_as_pdf(html_content)

    # Save or send the PDF content as needed
    with open("output.pdf", "wb") as file:
        file.write(pdf_content)
PYTHON

Neste trecho de código:

  • Utilizando o rastreador OpenTelemetry, iniciamos um novo intervalo chamado pdf_generation.
  • Durante esse período, utilizamos o IronPDF para converter material HTML em documento PDF.
  • Um arquivo chamado output.pdf contém o material PDF gerado.

OpenTelemetry Python (Como funciona para desenvolvedores): Figura 3 - Exemplo de saída gerada pelo código acima

Conclusão

Finalmente, a combinação de observabilidade e recursos de geração de documentos em aplicações Python é fornecida pela conexão OpenTelemetry Python e IronPDF . Os desenvolvedores podem criar facilmente documentos com aparência profissional em tempo real, ao mesmo tempo que obtêm informações mais precisas sobre o desempenho do sistema, integrando o rastreamento distribuído e a coleta de métricas com a geração dinâmica de PDFs.

A colaboração entre OpenTelemetry Python e IronPDF surge como um poderoso facilitador, permitindo que os desenvolvedores criem aplicativos confiáveis, escaláveis ​​e de alto desempenho, à medida que as empresas buscam eficiência e excelência em suas soluções de software.

A licença vitalícia está incluída no IronPDF, que tem um preço bastante razoável quando adquirido em pacote. O pacote é uma ótima oferta por apenas $799, e só precisa ser comprado uma vez para vários sistemas. Assistência técnica online está disponível para titulares de licença 24 horas por dia, 7 dias por semana. Visite o site para saber mais sobre os custos. Visite esta página para saber mais sobre os produtos vendidos pela Iron Software.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim