Cloud · Observability

OpenTelemetry goes 'stable by default': what it means for Kubernetes telemetry, and how to migrate

OpenTelemetry has spent its first years growing fast. Its governance committee has now made stability the priority, and the first big results are landing in Kubernetes telemetry, including attribute renames that will touch dashboards and alerts.

PlaybookSumanta Mukhopadhyay8 min read5 sources
#observability#opentelemetry#kubernetes#platform
PLAYBOOK · CLOUD · OBSERVABILITY23 Oct 2026 · 20:15 GST

Ask platform teams what frustrates them about OpenTelemetry and stability comes up quickly: components at different maturity levels, attribute names that change between releases, and upgrades that quietly break dashboards. The project has heard the same thing. In November 2025 its Governance Committee wrote that complexity and lack of stability were creating impediments to production deployments, and set out a plan to change priorities1.

A year on, the first concrete results are in, and Kubernetes telemetry is where most platform teams will feel them.

What 'stable by default' means

The committee's goals were explicit1:

  • All OpenTelemetry distributions should be stable by default, with standard mechanisms to opt in to experimental features.
  • A single, consistent set of stability criteria, including documentation, performance testing and benchmarks.
  • Easier stabilisation of instrumentation libraries, and federation of semantic conventions.
  • Epoch releases that are easier for organisations to consume.

For a platform team, the practical promise is fewer surprises: stable components you can rely on, and clearly marked opt-ins for anything that isn't.

The Kubernetes example

The Kubernetes attributes processor, which enriches telemetry with metadata such as pod, namespace and node, shows what that journey involves. Its stability depended on the Kubernetes semantic conventions it emits, so the two efforts moved together23:

WhenWhat happened
Nov 2025The Kubernetes semantic conventions group began focused work on stabilising Kubernetes attributes, in step with the Collector's stability goals2
Mar 2026Kubernetes attributes reached release candidate; the processor offered feature gates to try the new schema2
Jun 2026The attributes shipped as stable in Semantic Conventions v1.42.034
Sep 2026The Kubernetes attributes processor reached v1.0.0, meeting the Collector's stable criteria3

The v1.0.0 announcement is clear that moving to the new convention names means some breakage for existing users, and points to a migration guide35. During the transition the processor provided feature gates, processor.k8sattributes.EmitV1K8sConventions and processor.k8sattributes.DontEmitV0K8sConventions, so teams could emit the new attributes before dropping the old ones2.

Stability is a one-time cost paid up front: a final round of renames, then a long period where names stop moving. It's worth paying deliberately rather than discovering it in a broken dashboard.

Why attribute renames hurt more than they look

Kubernetes attributes are everywhere in an observability estate: dashboard filters, alert rules, service level objectives, cost allocation by namespace, retention policies, access controls and the queries engineers keep in runbooks. A renamed attribute doesn't throw an error. It just makes a filter match nothing, so a dashboard goes quiet and an alert never fires.

The migration plan I use

  1. Inventory dependencies on attribute names. Export dashboards, alert rules, recording rules and saved queries, and search them for the Kubernetes attributes in your telemetry. Include cost reports that group by namespace or workload, as in Kubernetes FinOps.
  2. Read the migration guide for your exact version of the Collector and processor5, and list old and new names side by side.
  3. Emit both, then switch. Where your version supports it, emit the new conventions alongside the old in a non-production environment, update dashboards and alerts to the new names, then stop emitting the old ones.
  4. Use the gateway layer to manage the transition centrally rather than on every node, which is one reason I favour the agent-to-gateway pattern in Collector deployment patterns.
  5. Add canary checks: alerts that fire when a key dashboard query returns no data, so silent breakage is caught.
  6. Pin Collector versions and upgrade deliberately, with a changelog review for every component you use.

A broader stability strategy

The Kubernetes processor is one component among many working towards stability3. The same pattern applies elsewhere, from the span events deprecation to GenAI conventions that are still evolving, covered in LLM observability. My rules for platform teams:

  • Prefer stable components in production, and record each experimental component you depend on with the reason and an owner.
  • Treat telemetry schemas as interfaces, with the same versioning discipline as APIs and the contract thinking in data contracts.
  • Budget a small, regular amount of time for observability upgrades, rather than a painful catch-up every two years.

How I can help

I design and modernise observability platforms on OpenTelemetry and Kubernetes, including migrations like this one that keep dashboards and alerts working. As a fractional CTO I can own that roadmap. Or analyse your challenge and bring the result to a call.

References
  1. 1
    Evolving OpenTelemetry's stabilization and release practicesOpenTelemetry Governance Committee · 7 Nov 2025
  2. 2
  3. 3
  4. 4
    Semantic Conventions v1.42.0OpenTelemetry, GitHub
  5. 5
FAQ

Common questions

What does 'stable by default' mean in OpenTelemetry?

It is a goal set by the OpenTelemetry Governance Committee in late 2025: distributions should be stable by default, with standard ways to opt in to experimental features, and a single, consistent set of stability criteria covering documentation, performance testing and benchmarks.

What changed with the Kubernetes attributes processor?

It reached v1.0.0 in September 2026, meeting the Collector's stable criteria. It now emits Kubernetes attributes based on semantic conventions that became stable in Semantic Conventions v1.42.0, which involves some breaking changes for existing users, covered by a migration guide.

How can I test the new Kubernetes attribute schema safely?

The processor offered feature gates, processor.k8sattributes.EmitV1K8sConventions and processor.k8sattributes.DontEmitV0K8sConventions, to switch to the new conventions gradually. Check the processor's documentation for the gates and behaviour in your Collector version.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. US & UAE time zones.