Skip to main content

Librería compartida de logger y tracing para microservicios.

Project description

Trazabilidad Distribuida Propósito: Configura OpenTelemetry para rastrear requests a través de múltiples servicios. Funcionalidades:

  • Instrumentación automática de FastAPI, SQLAlchemy, requests HTTP y httpx Exportación de trazas a un sistema de observabilidad (Tempo por defecto) Configuración centralizada que solo se ejecuta una vez por proceso (usando @lru_cache) Identificación de servicios mediante variables de entorno o parámetros

😴 Dormir bien sabiendo que:

Si algo se rompe, lo encontrarás rápido Tus decisiones están basadas en datos, no en intuición Tu código es profesional y mantenible Tu equipo te ve como el/la ninja de debugging

Qué rastrea:

Requests HTTP entrantes y salientes Consultas a base de datos Operaciones entre microservicios

logger.py - Logging Estructurado Propósito: Proporciona logs estructurados en formato JSON con correlación de trazas. Funcionalidades:

  • Logs en JSON para facilitar análisis y búsquedas Correlación automática con trazas OpenTelemetry (agrega trace_id y span_id) Configuración estándar con timestamps ISO, niveles de log y manejo de excepciones Cache de loggers para evitar reconfiguración

  • Caso de Uso Típico: En tu aplicación FastAPI

from common_utils.tracing import setup_tracing from common_utils.logger import get_logger

Configuración inicial (una sola vez) 🚀🚀🚀🚀🚀

setup_tracing(app=app, engine=db_engine) logger = get_logger()

En tus endpoints

@app.get("/users/{user_id}") async def get_user(user_id: int): logger.info("Fetching user", user_id=user_id) # Las consultas SQL y requests HTTP se rastrean automáticamente user = await get_user_from_db(user_id) return user

  • Beneficios

Trazabilidad completa: Puedes seguir una request desde el frontend hasta todas las bases de datos y servicios externos Logs correlacionados: Cada log tiene el trace_id para encontrar todos los logs relacionados con una operación Configuración centralizada: Un solo lugar para configurar observabilidad en todos tus microservicios Análisis fácil: Logs en JSON permiten queries complejas en sistemas como ELK Stack

Es especialmente útil para arquitecturas de microservicios donde necesitas entender el flujo completo de las operaciones distribuidas.

Ejemplo en la vida real: Cliente: "El checkout falló a las 3:47 PM" Tú: revisa 47 logs de 12 servicios diferentes "¿Era el user-service? ¿payments-service? ¿inventory-service?" 3 horas después..._

con observavility-completed:

Cliente: "El checkout falló a las 3:47 PM" Tú: busca por trace_id "Ah, veo que el inventory-service tardó 30 segundos en responder porque la DB estaba bloqueada" 5 minutos después: problema resuelto_

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

observavility_completed-0.2.1.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

observavility_completed-0.2.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file observavility_completed-0.2.1.tar.gz.

File metadata

  • Download URL: observavility_completed-0.2.1.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for observavility_completed-0.2.1.tar.gz
Algorithm Hash digest
SHA256 7d32f192fd524faa612d098d153c1e89d0d80347c8eb16a6e9d37eb9d0635f22
MD5 70d8bca8ab2479ca15fe410d84437f89
BLAKE2b-256 b752c237679afc8d997a6e57f9ad1ca8e4dba0e85113c6459f1c7b2d6947a10f

See more details on using hashes here.

File details

Details for the file observavility_completed-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for observavility_completed-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4226e6d8a9c6921db31b60b4d802b4b66a2050491f236599cd846392e8d31fce
MD5 10f9f319c4279484600d909f8d33b783
BLAKE2b-256 4958d31bbb22d5311e6641e1b49d60e169128cf60810d090d426a83a201aeeb8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page