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.1.1.tar.gz (4.3 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.1.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: observavility_completed-0.1.1.tar.gz
  • Upload date:
  • Size: 4.3 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.1.1.tar.gz
Algorithm Hash digest
SHA256 786347dce42621cd21ca44e978c0e1a864cdcb72c89adae1fa630ecfc2aba548
MD5 659e11bb3e5abd2ecbc136f491defb6e
BLAKE2b-256 5806ed960120698afb5758f453e65bf34b9cac132d1a6feab2cab1923393a89b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for observavility_completed-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3fcba772f160a2233986e7d1ea51100cb828772298d91552afe340e8f399281c
MD5 642dab093afcf5634260e2f227330e26
BLAKE2b-256 5e340141551562f00daf47748f3c0767e8c6f7d0843d900db773ec869111ba68

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