AYUDA DE PYTHON

OpenTelemetry en aplicaciones Python

Publicado en 1 de julio, 2024
Compartir:

La generación eficaz de documentos y la observabilidad son fundamentos esenciales para desarrollar sistemas escalables y resistentes en el desarrollo de software contemporáneo. Los desarrolladores pueden instrumentar, recopilar y analizar datos observables de sistemas distribuidos mediante OpenTelemetry, una plataforma de observabilidad de código abierto.

Los desarrolladores pueden crear, modificar y dar salida fácilmente a documentos PDF con IronPDF, un sólido .NET Framework. Este artículo discutirá la integración de OpenTelemetry Python con IronPDF, demostrando cómo estas dos tecnologías trabajan juntas para mejorar la observabilidad y el potencial de generación de documentos.

Los desarrolladores pueden acceder a un amplio conjunto de funciones para instrumentar, recopilar y exportar telemetría abierta y datos de sistemas distribuidos con los paquetes API y SDK de OpenTelemetry, una implementación del proyecto OpenTelemetry en Python.

OpenTelemetry Python(Cómo funciona para los desarrolladores): Figura 1 - Página de inicio de OpenTelemetry

Características de OpenTelemetry

ExaminemosOpenTelemetry instrumentación de las características más destacadas de Python:

Rastreo distribuido

  • El rastreo distribuido, que permite a los desarrolladores seguir la trayectoria de las solicitudes a través de sistemas dispersos, es posible gracias a OpenTelemetry para Python.
  • Los rastros ofrecen información sobre la secuencia de las solicitudes, incluidas las fechas y horas de los contactos de servicio.
  • Los desarrolladores pueden instrumentar los programas Python para registrar tramos, que son acciones discretas o partes de una traza distribuida.

Recopilación de métricas

  • OpenTelemetry Python facilita la importación de métricas MeterProvider, que recoge datos numéricos sobre el comportamiento y el rendimiento del sistema.
  • Los desarrolladores pueden instrumentar sus aplicaciones para recopilar mediciones como la latencia, el rendimiento, las tasas de error y el uso de recursos.
  • Ofreciendo información sobre patrones de uso, tendencias de rendimiento y estado del sistema.

Propagación del contexto

  • La propagación del contexto se ve facilitada por el paquete API OpenTelemetry, que garantiza que el contexto distribuido -como el contexto de rastreo y extensión- se propague a través de los límites del servicio.
  • Los datos telemétricos pueden correlacionarse y contextualizarse a medida que se desplazan por el sistema gracias a la propagación del contexto, que preserva la continuidad y coherencia de los datos.

Bibliotecas de instrumentación

  • OpenTelemetry Python simplifica la instrumentación de aplicaciones Python existentes proporcionando paquetes de instrumentación para marcos, bibliotecas y protocolos ampliamente utilizados.
  • Integraciones para frameworks web(como Flask y Django)clientes de bases de datos(como SQLAlchemy y Pymongo)sistemas de mensajería(como Kafka y RabbitMQ)y muchos más se pueden encontrar en las bibliotecas de instrumentación.

Ecosistema de exportadores

  • Una serie de exportadores proporcionados por OpenTelemetry Python permite a los desarrolladores exportar datos de telemetría a diferentes sistemas de observabilidad y backends.
  • Las integraciones con plataformas de observabilidad como Jaeger, Zipkin, Prometheus, AWS X-Ray, Google Cloud Trace y otras son compatibles con los exportadores.
  • Los desarrolladores pueden configurar exportadores para transferir datos telemétricos a uno o varios backends para su almacenamiento, análisis y visualización a largo plazo.
  • OpenTelemetry Python admite técnicas de muestreo variable para regular la cantidad de datos telemétricos recopilados.
  • Los desarrolladores tienen la opción de aplicar una lógica de muestreo personalizada, configurar el muestreo para muestrear un determinado porcentaje de trazas o muestrear según parámetros predefinidos(como cabeceras de solicitud o rutas).

Registro contextual

  • Las herramientas para registrar datos contextuales además de datos telemétricos están disponibles con el SDK de Python de OpenTelemetry.
  • Los desarrolladores pueden añadir contexto de rastreo y span a los mensajes de registro con el registro contextual, que ofrece más contexto para la solución de problemas y la depuración.

Crear y configurar OpenTelemetry Python

Establecer la configuración de OpenTelemetry

Para configurar OpenTelemetry para su proyecto, puede empezar por instalar los paquetes necesarios utilizando pip install opentelemetry-exporter-jaeger.

pip install opentelemetry-exporter-jaeger
PYTHON

Después, instale el OpenTelemetry Python SDK utilizando el siguiente comando pip install opentelemetry-sdk.

pip install opentelemetry-sdk
PYTHON

El paquete pip opentelemetry-api proporciona una API completa para la instrumentación, y también ofrece instrumentación automática facilitando la instrumentación de sus aplicaciones. Una forma alternativa de hacerlo podría ser utilizando el método export-import BatchSpanProcessor para asegurar una exportación eficiente de los datos de telemetría.

Para definir los parámetros del SDK de OpenTelemetry, cree un archivo de configuración. El archivo de configuración otel_config.py sirve como ejemplo. Asegúrese de que todas sus importaciones como resources import Resource y trace import TracerProvider están presentes para configurar el ejemplo de código sin errores.

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 de este archivo de configuración:

  • El exportador Jaeger está configurado para exportar trazas a un agente Jaeger localhost.
  • Usando el exportador Jaeger, construimos un TracerProvider y lo configuramos para que sea el proveedor global del trazador.
  • Para nuestro programa Python, proporcionamos el nombre del servicio.

Inicializar OpenTelemetry en su aplicación

Importe el módulo otel_config en su programa Python, a continuación, inicialice OpenTelemetry al principio con el siguiente código Python de ejemplo:

from opentelemetry import trace
from otel_config import tracer_provider

# Initialize OpenTelemetry
trace.get_tracer(__name__)
PYTHON

Al hacer esto, la configuración que se encuentra en otel_config.py se inicializa para la instrumentación OpenTelemetry.

Instrumente su aplicación

Utilice OpenTelemetry para instrumentar su programa Python para que pueda grabar trazas. Tienes dos opciones para instrumentar tu código: manualmente o a través de las librerías incorporadas. Esta es una ilustración de algunas llamadas de instrumentación manual:

from opentelemetry import trace

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

Ver rastros en Jaeger UI

Para ver y examinar las trazas grabadas, vaya a la interfaz de usuario de Jaeger. Para ver las trazas que registra el recopilador OpenTelemetry, abra la interfaz de usuario de Jaeger en su navegador web(normalmente en http://localhost:16686) y elija el nombre de su servicio.

Usted ha establecido y configurado con éxito OpenTelemetry Python en su aplicación siguiendo estas instrucciones. Ahora, usted puede ver cómo su programa Python se comporta y realiza mediante el uso de OpenTelemetry para grabar trazas y exportarlas al backend Jaeger.

Primeros pasos con IronPDF

¿Qué es IronPDF?

Con la potente biblioteca .NET IronPDF de Iron Software, los desarrolladores pueden crear, editar y presentar documentos PDF dentro de aplicaciones .NET. Los desarrolladores pueden utilizar IronPDF para crear mediante programación documentos PDF a partir de diversas fuentes, como archivos PDF preexistentes, texto HTML, URL e imágenes. Veamos con más detalle las características de IronPDF:

OpenTelemetry Python(Cómo funciona para desarrolladores): Figura 2 - Página de inicio de IronPDF

Conversión de HTML a PDF

Los desarrolladores pueden convertir fácilmente contenidos HTML en archivos PDF con IronPDF. Al utilizar texto HTML como entrada, los desarrolladores pueden producir documentos PDF visualmente ricos con formato, imágenes y estilos.

Convertir URL en PDF

Los desarrolladores pueden generar documentos PDF directamente a partir de URL utilizando IronPDF. Una aplicación excelente para esta funcionalidad es la captura de contenidos de páginas web o contenidos creados dinámicamente a partir de aplicaciones web.

Convertir una imagen en PDF

Con IronPDF, las imágenes en formatos PNG, JPEG y BMP pueden convertirse en documentos PDF. Esta función permite a los desarrolladores de aplicaciones crear documentos PDF a partir de fotos, lo que resulta útil para aplicaciones como la creación de álbumes de fotos o la incorporación de fotos a archivos PDF.

Cómo instalar IronPDF

Después de asegurarse de que Python está instalado en su ordenador, utilice pip para instalar IronPDF.

pip install ironpdf
PYTHON

Uso de OpenTelemetry para generar un documento PDF con IronPDF

Añade el siguiente código debajo de la inicialización de OpenTelemetry para utilizar IronPDF paracrear un PDF documento:

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

En este pasaje del código:

  • Utilizando el trazador OpenTelemetry, comenzamos un nuevo tramo llamado pdf_generation.
  • Durante este tiempo, utilizamos IronPDF para convertir el material HTML en un documento PDF.
  • Un archivo llamado output.pdf contiene el material PDF generado.

    OpenTelemetry Python(Cómo funciona para los desarrolladores): Figura 3 - Ejemplo de salida generada a partir del código anterior

Conclusión

Por último, la combinación de observabilidad y capacidades de generación de documentos en aplicaciones Python es proporcionada por la conexión OpenTelemetry Python y IronPDF. Los desarrolladores pueden crear fácilmente documentos de aspecto profesional sobre la marcha, al tiempo que obtienen una mejor comprensión del rendimiento del sistema mediante la integración del rastreo distribuido y la recopilación de métricas con la generación dinámica de PDF.

La colaboración entre OpenTelemetry Python y IronPDF emerge como un potente habilitador, permitiendo a los desarrolladores crear aplicaciones fiables, escalables y de alto rendimiento, ya que las empresas se esfuerzan por la eficiencia y la excelencia en sus soluciones de software.

IronPDF incluye una licencia de por vida a un precio razonable si se adquiere en un paquete. El paquete es una gran oferta por solo 749 $, y solo hay que comprarlo una vez para varios sistemas. Los titulares de licencias disponen de ayuda de ingeniería en línea 24 horas al día, 7 días a la semana. Visite el sitio web para obtener más información sobre la tasa. Visite esta página para obtener más información sobre los productos comercializados por Iron Software.

< ANTERIOR
Guía de Matplotlib Python para principiantes
SIGUIENTE >
Reintentar funciones con Tenacity en Python

¿Listo para empezar? Versión: 2024.11.1 acaba de salir

Instalación pip gratuita Ver licencias >