Cloud & DevOpsInfrastructure

OTel Kubernetes Attributes Processor: v1.0 Migration

OpenTelemetry Kubernetes Attributes Processor v1.0 migration - attribute names changed

The OpenTelemetry Kubernetes Attributes Processor shipped v1.0.0 on September 16, 2026, bundled with collector-contrib v0.161.0. Seven attribute names changed to match the stable Kubernetes semantic conventions, the processor itself got renamed, a deprecated config option was hard-removed, and two feature gates flipped on by default. If you have not migrated yet, your dashboards are querying attribute names that no longer exist — and getting no errors back, just empty results.

What Actually Changed

Three categories of breaking change landed together in this release.

The Processor Was Renamed

The processor name in your collector YAML changed from k8sattributes to k8s_attributes. One underscore. Easy to miss on upgrade, hard failure if you leave the old name in place.

# This breaks on v0.161.0+
processors:
  k8sattributes:
    auth_type: serviceAccount

# Use this instead
processors:
  k8s_attributes:
    auth_type: serviceAccount

Seven Attribute Names Changed

These are the attribute renames that will silently break your Grafana dashboards, Prometheus alert rules, and Loki queries:

Old Name (v0)New Name (v1)
container.image.tagcontainer.image.tags (now a list)
k8s.pod.labelsk8s.pod.label
k8s.pod.annotationsk8s.pod.annotation
k8s.node.labelsk8s.node.label
k8s.node.annotationsk8s.node.annotation
k8s.namespace.labelsk8s.namespace.label
k8s.namespace.annotationsk8s.namespace.annotation

Notice that container.image.tag gained an s and became a list — a container can carry multiple image tags, and the old single-string model was always wrong. The label and annotation attributes shed a letter each, moving from plural to singular key format.

A Config Option Was Hard Removed

The deployment_name_from_replicaset config key was removed in v0.160.0. Any config that still contains it will cause the collector to fail at startup. Remove it before upgrading — deployment name derivation from ReplicaSet now happens automatically.

The Dangerous Part: Silent Data Loss

There are no errors. No warnings at query time. The collector starts, runs, and happily emits telemetry — just without the attributes your dashboards expect. Your Grafana panels show empty graphs. Your alert rules never fire. You discover this in a post-incident review, not before the incident.

This is the worst kind of observability failure: the system appears healthy because it is producing data. It is just not the data anyone is querying.

How to Migrate Without Breaking Production

OpenTelemetry provides two feature gates that let you emit both old and new attribute names simultaneously during the transition. Enable dual-emit by passing this flag to your collector:

--feature-gates=-processor.k8sattributes.DontEmitV0K8sConventions,processor.k8sattributes.EmitV1K8sConventions

With dual-emit enabled, the processor outputs both v0 and v1 attribute names. Update your dashboards and alert rules to reference the new names, verify they are working, then remove the flag to complete the migration.

Do not attempt to disable v0 without enabling v1 — the processor rejects that configuration at startup with a hard error.

Why Stability Matters Here

The k8sattributes processor is the first core processor in the OTel Collector to reach stable status. That means the attribute names above are now under the OpenTelemetry stability guarantee: they will not change without a major version bump. For teams that have been cautious about adopting OTel at scale — particularly those burned by previous semconv churn — this is the signal they were waiting for.

The Kubernetes semantic conventions themselves reached stable status in Semantic Conventions v1.42.0 in June 2026. The processor’s v1.0.0 release is the downstream consequence — aligning implementation with specification.

What to Do Right Now

  1. Grep your collector configs for k8sattributes: and rename to k8s_attributes:
  2. Remove any deployment_name_from_replicaset keys
  3. Enable dual-emit using the feature gate flag above
  4. Update dashboards and alert rules to use new attribute names (see table above)
  5. Test in staging, verify no empty panels
  6. Remove the dual-emit flag to complete migration

The official OTel migration guide covers the full transition path, including Helm chart updates for teams using the OTel Operator.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *