For years, auto-instrumentation promised effortless observability but kept falling short. Youβd still end up manually adding spans to business logic, hunting down missing metadata, or trying to piece together how a feature rollout was affecting customers.
That finally shifted in
- With OTel auto-instrumentation maturing and LaunchDarkly adding built-in OTel support to server-side SDKs, teams started getting feature flag context baked into their traces without writing instrumentation code. The zero-config promise actually started delivering.
Auto-instrumentation that actually knows about your features
The game changed when OTel auto-instrumentation actually got good. Instead of just capturing basic HTTP calls, it now handles:- Framework-level request tracing.
- Automatic context propagation across services.
- Runtime metadata and environment details.
- Errors and exceptions without manual try-catch blocks.
What auto-instrumentation unlocks
When you ship a new feature variant, you immediately see how it performs per cohort. If thereβs a latency spike in the βnew-checkout-flowβ variation, youβll know within minutes before it affects user experience. That same visibility matters during incidents. When an outage hits, filter traces by flag evaluation to see which features were active when errors occurred. The trace shows you whether it was the new recommendation engine, the optimized query path, or something else entirely. This is especially powerful for experimentation. LaunchDarkly processes your OTel traces into metrics automatically, so when you run an A/B test, you get latency, error rate, and throughput calculated per variation without extra config. The same telemetry powering your dashboards powers your experiments. The best part of this setup is that it scales without additional work. As teams ship more features behind flags, the telemetry gets more valuable without getting more expensive to maintain. New services inherit feature-aware tracing just by initializing the SDK.When to add custom spans
Zero-config doesnβt mean never-config. Youβll still want custom spans for:- Business logic milestones. If you need to measure time-to-recommendation or search-to-purchase, custom spans make that explicit.
- ML pipeline stages. Feature extraction, model inference, and post-processing often warrant their own spans for detailed performance analysis.
- Cross-service boundaries. Queue producers, stream processors, and async workers may need manual context propagation and span creation.
- Experiment-specific KPIs. If your A/B test measures βitems added to cartβ or βvideo completion rate,β youβll instrument those as custom metrics.