HN Debrief

OTel isn’t going well

  • Infrastructure
  • Developer Tools
  • Open Source

The post says OpenTelemetry has won the standards battle without becoming a good product. Its core complaint is not that observability is unnecessary, but that OTel’s APIs, semantic conventions, collectors, and language implementations have accreted into a sprawling system that is hard to use and slow to mature consistently across traces, metrics, and logs. People reading it largely said that matches reality. The recurring pattern was familiar: tracing can be valuable, vendors increasingly expect OTLP, and OTel is often the only realistic way to keep backend options open, but the day-to-day experience of integrating it is rough.

If you are choosing observability tooling now, treat OTel as an interchange layer, not a clean developer platform. Budget time for manual instrumentation, performance testing, and collector architecture instead of assuming the standard alone will reduce integration work or vendor lock-in.

Discussion mood

Mostly negative and weary. People like the goal of a common observability standard, but they see OTel as over-engineered, performance-heavy, badly documented, and especially painful in Python, Ruby, Django, serverless, and self-hosted setups.

Key insights

  1. 01

    Cross-language symmetry made the SDKs worse

    Trying to make every language feel like the same framework appears to be the design mistake that poisoned the developer experience. Several comments argued OTel should have standardized the protocol and concepts, then let each language expose native-feeling clients. Instead it imported a tower of abstractions, registry magic, and auto-discovery that make customization slow and expensive. That explains why swapping one piece often means learning half the stack and replacing much more than you expected.

    Evaluate OTel libraries per language, not as one platform choice. If your stack spans multiple languages, expect the worst implementation to define your rollout cost and keep your own instrumentation boundary thin.

      Attribution:
    • kalkin #1
    • Groxx #1 #2
    • cogman10 #1
  2. 02

    Dynamic upgrade from metrics to traces breaks on cost and architecture

    The appealing idea of sending cheap metrics first and asking the app for traces only when a graph looks suspicious falls apart once you think through the mechanics. You need back-channel communication, local buffering, and enough retained context inside the process to reconstruct higher-fidelity data after the fact. That adds latency, security risk, and complexity. In practice, teams either emit traces continuously and sample later, or they accept that they will miss detail when an anomaly appears.

    Do not base your observability design on on-demand trace reconstruction. Decide upfront where always-on tracing is affordable and where coarse metrics are all you can justify.

      Attribution:
    • thorian1828i03 #1 #2
    • ffsm8 #1
    • ragall #1
    • PunchyHamster #1
  3. 03

    Serverless pays the OTel tax immediately

    Lambda and similar runtimes make OTel’s overhead impossible to hide. The comments singled out cold starts, extra memory use, and startup latency from the Lambda layer and AWS Distro for OpenTelemetry, especially compared with AWS-native X-Ray and CloudWatch paths. The complaint was not that exporting telemetry is impossible. It was that the standard path is materially heavier right where serverless economics are most sensitive.

    If you run serverless workloads, benchmark OTel against cloud-native telemetry before standardizing on it. A portability win can disappear if instrumentation meaningfully raises cold-start latency or memory sizing.

      Attribution:
    • bilalq #1 #2 #3
    • ojkelly #1
  4. 04

    Auto-instrumentation breaks real apps at startup

    The failure mode is not just "less flexible than manual instrumentation." In larger Django and Go deployments, auto-instrumentation can assume startup order, middleware injection points, or runtime behavior that production apps simply do not have. One detailed Django example described OTel loading settings too early and hiding too much logic inside a single injection path. The broader point is that auto-instrumentation works best on toy setups and simple service shapes, then becomes a liability once startup and configuration are customized.

    Treat auto-instrumentation as a bootstrap tool, not the foundation of a production design. Plan for explicit hooks and smaller primitives before your app lifecycle gets complicated.

      Attribution:
    • gertburger #1 #2
    • rm #1
    • nunez #1
  5. 05

    Self-hosted observability is still a product gap

    People did not object only to OTel itself. They also pointed at the absence of a polished, self-hosted, end-to-end experience. The open source options exist, from the Grafana LGTM stack to SigNoz, VictoriaMetrics, and ClickStack, but users still run into multiple query languages, glue components, and integration sprawl. That is why Datadog-style platforms keep winning even when the underlying data path is OTel.

    If you plan to self-host, assess the operator and query experience as seriously as protocol support. OTel compatibility does not give you a coherent product or a unified way to ask questions of the data.

      Attribution:
    • losingthefight #1
    • arccy #1
    • pphysch #1
    • reactordev #1
    • luckydata #1
    • Havoc #1
  6. 06

    OTel gets easier once you ignore the docs

    One of the few positive takes was not that OTel is clean, but that it becomes manageable when you treat it like a low-level system instead of a polished framework. Reading the code, watching the wire traffic with tcpdump or netcat, and using the debug exporter gave better results than following the official guidance. That suggests the implementation is more dependable than the presentation layer around it.

    Assign someone to learn OTel by inspecting actual traffic and exporters, not by reading docs alone. You will debug integrations faster if you treat OTLP as a protocol you can observe directly.

      Attribution:
    • cyberax #1
    • chrismarlow9 #1

Against the grain

  1. 01

    The standard is still worth the pain

    Even commenters who like OTel conceded it is awkward, but they still saw the open protocol and shared data model as a major win. Their point was simple: the alternative is deep vendor lock-in or a pile of disconnected tools with uneven coverage. OTel may be clumsy, yet it is the only broadly accepted interchange layer across commercial and open source backends.

    If backend portability or multi-vendor routing is strategic for you, keep OTel in the architecture despite the rough edges. Just be clear that you are buying interoperability, not elegance.

      Attribution:
    • cyberax #1
    • masterj #1
  2. 02

    Business events matter more than framework purity

    A smaller set of comments pushed back on the obsession with SDK ugliness and said the real value comes from instrumenting meaningful business events. Once teams understand what they actually need to observe, the extra setup work can pay off quickly. From that angle, OTel is good enough because the hard part is not emitting spans. It is choosing the events that explain what the system and the business are doing.

    Do not let OTel’s design flaws delay domain instrumentation. Even a messy telemetry stack is useful if it captures the events that map to user and revenue-impacting behavior.

      Attribution:
    • brikym #1
    • dwoldrich #1

In plain english

AWS
Amazon Web Services, Amazon's cloud computing platform.
AWS Distro for OpenTelemetry
Amazon's packaged distribution of OpenTelemetry components for use on AWS services.
ClickStack
A ClickHouse-based observability product aimed at providing an integrated telemetry experience.
CloudWatch
Amazon CloudWatch, AWS's monitoring and logging platform.
CPU
Central processing unit, the main processor that executes program instructions.
Django
A Python web framework for building server-rendered and database-backed applications.
Grafana LGTM stack
A self-hosted observability stack built from Loki for logs, Grafana for dashboards, Tempo for traces, and Mimir or Prometheus for metrics.
Jaeger
An open source distributed tracing system used to collect and visualize request traces.
Lambda
AWS Lambda, Amazon's serverless function service that runs code on demand.
netcat
A classic command-line tool that opens raw TCP or UDP connections and is often used for testing, piping data, or simple ad hoc networking.
OTel
OpenTelemetry, an open standard and set of tools for collecting application telemetry such as traces, metrics, and logs.
OTLP
OpenTelemetry Protocol, the wire protocol used to send telemetry data from applications or collectors to backends.
Prometheus
An open source metrics collection and monitoring system widely used for infrastructure and application telemetry.
SDK
Software Development Kit, a bundle of tools and code libraries developers use to build apps.
SigNoz
An open source observability platform built around OpenTelemetry.
tcpdump
A command-line tool for capturing and inspecting network packets.
VictoriaMetrics
An open source time-series database and observability toolkit often used for metrics and related telemetry.
X-Ray
AWS X-Ray, Amazon's distributed tracing service for tracking requests across services.

Reference links

Observability design and standards

Collector and adaptive telemetry references

Serverless and Lambda tooling

Self-hosted observability products

  • VictoriaMetrics
    Pointed to as a more integrated open source observability option.
  • ClickStack
    Suggested as one of the closest self-hosted experiences to Datadog.