OpenTelemetry Overkill: Structured Logging with Python

OpenTelemetry was overkill. A JSON logger was enough. Everyone reaches for OpenTelemetry. We almost did too. We were working on a system with several integrations. Logs were unstructured and our log provider couldn't query them properly. Someone suggested OpenTelemetry. It made sense on paper: industry standard, widely adopted, serious tooling. But when I looked at what we actually needed, it didn't fit. We weren't dealing with dozens of services talking to each other. We just needed structured output. Pulling in a full observability SDK for that felt like overkill. We went with python-json-logger instead. Same logging module underneath, same config style, same stdout. The output just became structured JSON. For request tracing we added asgi-correlation-id, one line in the logging config and every log entry carries a trace_id you can follow through the whole request. Performance also came up at some point. We swapped the default JSON encoder to msgspec. Still no OpenTelemetry. The lesson I took from this: match your observability tooling to your actual system complexity. Ecosystem hype will push you toward solutions your architecture doesn't need yet. If you're figuring out your Python logging stack, happy to share what worked. Drop a comment or connect. #BackendEngineering #Python #Observability #SoftwareEngineering #OpenTelemetry

To view or add a comment, sign in

Explore content categories