Logfire: Observabilidad sencilla para aplicaciones de Python

En mi artículo anterior sobre Pydantic, te presenté a Logfire en uno de los ejemplos de código como una plataforma de observabilidad diseñada para proporcionar a los desarrolladores información sobre las aplicaciones en Python. En este artículo, profundizarás en Logfire y sus capacidades que eventualmente simplificarán tu viaje de Observabilidad desde el rastreo hasta la depuración y el registro.

Logfire es una plataforma innovadora de observabilidad desarrollada por los creadores de Pydantic, diseñada para proporcionar a los desarrolladores poderosas ideas sobre sus aplicaciones en Python. Construido sobre los mismos principios que hicieron de Pydantic un éxito, Logfire tiene como objetivo facilitar la implementación y comprensión de la observabilidad, ofreciendo profundos conocimientos sobre el comportamiento de la aplicación.

Características clave

Integración sin fisuras

Logfire se integra sin esfuerzo con proyectos de Python existentes, requiriendo una configuración mínima. Con solo unas pocas líneas de código, los desarrolladores pueden comenzar a recopilar datos valiosos sobre el rendimiento y el comportamiento de su aplicación.

Integración con Pydantic

Logfire ofrece una integración excepcional con los modelos de Pydantic. Esto permite a los desarrolladores obtener ideas sin precedentes sobre la validación de datos y el uso de modelos en todas sus aplicaciones.

Instrumentación automática

Logfire puede instrumentar automáticamente bibliotecas y frameworks populares, reduciendo la necesidad de registros y rastreos manuales. Esta característica ahorra tiempo y garantiza una cobertura exhaustiva del comportamiento de la aplicación.

Compatible con OpenTelemetry

Construido sobre OpenTelemetry, Logfire asegura la compatibilidad con los estándares de la industria y permite opciones flexibles de exportación de datos.

Prerrequisitos

  1. Inicia sesión en Logfire.
  2. Sigue las indicaciones para crear tu cuenta. Esta cuenta te ayudará a organizar tus proyectos.
  3. Desde tu organización, haz clic en Nuevo proyecto para crear tu primer proyecto.


Empezar

Para empezar a usar Logfire, sigue estos sencillos pasos:

Paso 1. Instala el paquete de Logfire con el siguiente comando. Si estás utilizando Jupyter Notebook, ejecuta !pip install logfire.

Shell

 

Installing LogFire

Paso 2. Autentícate con el servicio de Logfire. Esto abrirá un navegador y pedirá las credenciales de inicio de sesión de Logfire.

Shell

 

Authentication with LogFire

3. Configura Logfire en tu aplicación. Una vez instalado el paquete, necesitas utilizar los siguientes comandos para configurar Logfire.

Python

 

Puedes seguir los pasos como parte de la configuración de tu proyecto:

Project setup

Uso Básico

Un Span en Logfire es un bloque de construcción esencial de una traza. Puedes definir un span con logfire.span. En el ejemplo a continuación, el span exterior establece el tema: el cumpleaños del usuario. Al usuario se le pedirá su cumpleaños y se capturará a través de la terminal o el símbolo del sistema. El espacio captura la fecha de nacimiento ingresada por el usuario.

Aquí hay un ejemplo simple de cómo usar Logfire para rastreo manual:

Python

 

Logfire project showing spans

Si no ves la salida DEBUG, haz clic en Filtrar datos locales –> Niveles –> debug.

Integración de Pydantic

Como se discutió en mi artículo anterior, la funcionalidad principal de Pydantic es la validación de datos. Utiliza anotaciones de tipo de Python para validar automáticamente la estructura y los tipos de datos. Cuando defines un modelo de Pydantic, cada campo se anota con su tipo esperado. Pydantic luego asegura que cualquier dato asignado a estos campos se ajuste a los tipos especificados.

La integración de Logfire con Pydantic es particularmente poderosa. Aquí te mostramos cómo puedes usarla para registrar las validaciones de los modelos de Pydantic:

Python

 

Esta configuración registrará automáticamente detalles sobre todas las validaciones de modelos de Pydantic, proporcionando información valiosa sobre el procesamiento de datos dentro de tu aplicación.

Integraciones de Frameworks

Logfire ofrece integraciones con populares frameworks y bibliotecas de Python. Para el ejemplo de código en Python a continuación, necesitas proporcionar la clave de API de OpenAI e instalar los paquetes requeridos (FASTAPI, instructor, OpenAI, etc.).

Para empezar, FastAPI es un framework web de Python que ayuda a los desarrolladores a crear interfaces de programación de aplicaciones (APIs). FastAPI es conocido por su escalabilidad, facilidad de uso y alto rendimiento.

OpenAI API helps AI enthusiasts access large language models (LLMs) like GPT-3 via an API request. This helps developers to integrate cutting-edge AI capabilities into their applications, enabling tasks like text generation, image creation, code writing, and more through simple API calls.

Instructor es un paquete de Python que te ayuda a extraer fácilmente datos estructurados como JSON a partir de la salida de LLMs.

Aquí tienes un ejemplo de cómo integrar Logfire con FastAPI, la API de OpenAI e Instructor:

Python

 

Esta configuración ofrece un registro exhaustivo de las solicitudes de FastAPI, llamadas a la API de OpenAI y validaciones de modelos de Pydantic, brindando una visión holística del comportamiento de tu aplicación.

Logfire showing the quota exceeded error information

Conclusión

Logfire representa un avance significativo para hacer que la observabilidad sea accesible y potente para los desarrolladores de Python. Logfire permite a los desarrolladores comprender y optimizar mejor sus aplicaciones al combinar facilidad de uso con información detallada. Ya sea que estés trabajando en un proyecto pequeño o una aplicación a gran escala, Logfire proporciona las herramientas para obtener información valiosa sobre el comportamiento y rendimiento de tu código.

¡Por favor demuestra tu apoyo con un me gusta y comparte con tu comunidad de desarrolladores!

Source:
https://dzone.com/articles/logfire-uncomplicated-observability-for-python-app