Reference¶
Look-up facts for the OpenTelemetry project as used by the guidance program: signal and protocol stability, semantic-convention stability, OpenTelemetry Operator facts, and a catalogue of the published blueprints and reference implementations. Every row was checked on 2026-09-25 against the upstream repositories (opentelemetry-specification, opentelemetry-proto, semantic-conventions, opentelemetry-operator, opentelemetry.io). Collector-engine facts (distributions, release cadence, component stability) live in the sibling OTel Collector topic.
Current Versions¶
| Component | Latest (date) | Source |
|---|---|---|
| Specification | v1.61.0 (2026-09-14) | spec CHANGELOG |
OTLP protobuf definitions (opentelemetry-proto) |
1.11.0 (2026-07-21) | proto CHANGELOG |
| Semantic conventions | v1.44.0 (2026-09; exact date TBD, the CHANGELOG has no dates) | semconv CHANGELOG, semconv docs |
| OpenTelemetry Operator | v0.159.0 (2026-09-14) | Operator CHANGELOG, release page |
| Operator Helm chart | 0.123.1 (appVersion 0.159.0) | helm-charts |
| Collector core | v1.67.0 / v0.161.0 (see sibling topic) | Collector CHANGELOG |
Specification changelog date typos
The spec CHANGELOG labels v1.55.0 through v1.58.0 with 2025 dates (for example "v1.58.0 (2025-06-22)"), but they sit between v1.54.0 (2026-02-13) and v1.59.0 (2026-07-10). Read them as 2026 releases.
Recent specification releases:
| Version | Date | Notable changes |
|---|---|---|
| v1.61.0 | 2026-09-14 | view_matching_mode on MeterProvider. maxExportBatchSize on the periodic MetricReader marked stable. AttributeValueDepthLimit for nested attribute values |
| v1.60.0 | 2026-08-07 | Entity specification plus Entity support in the Resource SDK. OTLP exporter max request/response size options |
| v1.59.0 | 2026-07-10 | Profiles data model added. Environment variables as context-propagation carriers reach Release Candidate. SDK self-observability guidelines |
| v1.58.0 | 2026 (see note) | OpenCensus compatibility requirements deprecated. Non-OTLP attribute representation stabilized |
Signal Status¶
Status as declared in the specification documents (**Status**: headers) and the OTLP maturity table on 2026-09-25:
| Signal | API | SDK | OTLP (protobuf / JSON) | Notes |
|---|---|---|---|---|
| Traces | Stable | Stable | Stable / Stable | Some newer SDK features (for example OnEnding) are Development |
| Metrics | Stable | Mixed (core Stable) | Stable / Stable | Prometheus compatibility sections are being stabilized release by release |
| Logs | Stable (Logs Bridge API) | Stable | Stable / Stable | Log data model Stable. The API is for log appenders, not end users |
| Baggage | Stable | Stable | N/A | Not a telemetry signal, so no OTLP or Collector component |
| Profiles | Alpha (spec README) | In development per language | Development / Development (profiles/v1development) |
Public alpha announced 2026-03-26. Collector support from v0.148.0 |
| Entities | Development | Development | N/A | Entity spec added in v1.60.0 |
| Declarative configuration | N/A | Data model Stable | N/A | YAML file-based SDK configuration. Language support varies |
Profiles are still alpha
The Profiling SIG's own public-alpha announcement advises against critical production workloads and notes that production-ready backends had not yet emerged. The spec README calls the signal Alpha, while the proto repo marks the profiles/* packages as Development. Both labels mean the format can still break.
OTLP Quick Facts¶
| Fact | Value |
|---|---|
| Default ports | 4317 (gRPC), 4318 (HTTP) |
| Default SDK exporter protocol | http/protobuf (the blueprint's Action 2 also names HTTP/protobuf as the default) |
| Stable packages | common, resource, trace, metrics, logs (plus their collector/* services), in binary protobuf and JSON |
| Development packages | profiles/*, processcontext/* (added in 1.11.0 for OTEP 4719 process-context sharing) |
| Attribute values (since 1.9.0) | Consumers must accept empty, bytes, heterogeneous arrays, and kvlist attribute values |
| Size limits (since 1.11.0) | Request and response size limitations documented for HTTP bodies and gRPC messages |
| Retry signalling | Retryable codes such as HTTP 429/503 or gRPC UNAVAILABLE. Retry-After may be an HTTP-date (clarified in 1.11.0) |
Semantic Conventions Stability¶
Status of the convention areas the guidance program depends on, per the semconv CHANGELOG and the docs' **Status**: headers:
| Area | Status | Since | Notes |
|---|---|---|---|
| HTTP spans and metrics | Stable | v1.23.0 (2023-11-03) | Experimental attributes live in stable groups as opt-in. v1.42.0 made network.peer.address opt-in on two HTTP client metrics (cardinality) |
| Database (MariaDB, SQL Server, MySQL, PostgreSQL) | Stable | v1.33.0 | First release where the database core stabilized. Release Candidate in v1.28.0. Other databases vary (Oracle RC) |
code.* attributes |
Stable | v1.33.0 | |
| RPC (core, gRPC, Apache Dubbo) | Release Candidate | v1.40.0 | |
| Messaging (including Kafka) | Development | v1.44.0 defined one span per operation type (create, send, receive, process, settle) | |
Generative AI (gen_ai.*, OpenAI, MCP) |
Development | Moved in v1.42.0 | Deprecated in the main repo and moved to semantic-conventions-genai |
| CI/CD and VCS | Release Candidate | v1.43.0 | |
| Process metrics and entity | Release Candidate | v1.43.0 | |
| Selected K8s and container memory metrics | Release Candidate | v1.44.0 | v1.44.0 also renamed *.memory.paging.faults to *.paging.faults (breaking) |
service.instance.id, service.namespace |
Stable | v1.40.0 | |
deployment.environment.name, otel.event.name, telemetry.distro.* |
Stable | v1.41.0 | The blueprint's minimum resource attributes rely on deployment.environment.name |
OpenTelemetry Operator¶
Custom Resources¶
| CRD | API version | Purpose |
|---|---|---|
OpenTelemetryCollector |
opentelemetry.io/v1beta1 (v1alpha1 still served) |
Collector as deployment (default), daemonset, statefulset, or sidecar via spec.mode |
Instrumentation |
opentelemetry.io/v1alpha1 |
SDK and auto-instrumentation settings: exporter endpoint, propagators, sampler, per-language images |
TargetAllocator |
opentelemetry.io/v1alpha1 |
Prometheus scrape-target distribution across Collector replicas |
OpAMPBridge |
opentelemetry.io/v1alpha1 |
Manage Collectors through OpAMP |
ClusterObservability |
opentelemetry.io/v1alpha1 |
Controller-of-controllers that creates an agent DaemonSet, a cluster StatefulSet, and one Instrumentation CR. Behind the operator.clusterobservability feature gate |
Injection Annotations¶
Annotations go on the namespace or on the pod template (spec.template.metadata.annotations), not on the Deployment's own metadata.
| Annotation | Runtime |
|---|---|
instrumentation.opentelemetry.io/inject-java |
Java agent |
instrumentation.opentelemetry.io/inject-nodejs |
Node.js |
instrumentation.opentelemetry.io/inject-python |
Python (otel-python-platform selects glibc or musl) |
instrumentation.opentelemetry.io/inject-dotnet |
.NET (otel-dotnet-auto-runtime selects the runtime) |
instrumentation.opentelemetry.io/inject-go |
Go eBPF instrumentation (otel-go-auto-target-exe names the binary) |
instrumentation.opentelemetry.io/inject-apache-httpd |
Apache HTTPD module |
instrumentation.opentelemetry.io/inject-nginx |
NGINX module |
instrumentation.opentelemetry.io/inject-sdk |
SDK environment variables only, no agent |
sidecar.opentelemetry.io/inject |
Injects a Collector sidecar from an OpenTelemetryCollector with mode: sidecar |
Accepted values: "true" (the single matching CR in the namespace), "<name>" (a CR in the same namespace), "<namespace>/<name>" (a CR in another namespace, instrumentation only), "false" (opt out).
Compatibility And Bundled Versions (v0.159.0)¶
| Item | Value |
|---|---|
| Kubernetes | v1.25 to v1.36 (1.36 support added in v0.157.0) |
| cert-manager | v1 (needed for the webhook certificates in the default manifest install) |
| prometheus-operator packages | v0.93.1 |
| Versioning rule | Operator minor tracks the Collector minor. It upgrades managed OpenTelemetryCollector resources unless spec.image is custom |
| Java auto-instrumentation | v2.31.1 |
| .NET auto-instrumentation | v1.16.0 |
| Node.js auto-instrumentation | v0.78.0 |
| Python auto-instrumentation | v0.65b0 |
| Go auto-instrumentation | v0.24.0 |
| Apache HTTPD / NGINX modules | 1.0.4 |
Recent Behavior Changes¶
| Version | Change |
|---|---|
| v0.159.0 | Target Allocator gets an explicit none filter strategy (breaking for typed Go clients). resizePolicy on the Collector CR. Ready=False condition when the TargetAllocator cannot be fetched |
| v0.158.0 | Operator and operand NetworkPolicies enabled by default (feature gates promoted to beta). GOMEMLIMIT/GOMAXPROCS set automatically. Node.js injection now defaults OTEL_METRICS_EXPORTER=otlp |
| v0.157.0 | Kubernetes 1.36 support. Target Allocator mTLS without cert-manager |
Guidance Program Catalogue¶
| Page | Kind | Date | Status |
|---|---|---|---|
| Managed Telemetry Platforms for Kubernetes Workloads | Blueprint (living) | sig-end-user issue #246. Site PR #10107 merged 2026-06-24 (2026-08 research, not re-checked) | Published. 5 challenges, 4 guidelines, 5 implementation actions, 5 appendices |
| Infrastructure and Processes in Non-K8s Environments | Blueprint (living) | Tracked as sig-end-user issue #245 | Published. 3 challenges, 3 guidelines, 6 implementation steps. Reference architectures "Coming soon" |
| Kubernetes observability | Blueprint | sig-end-user issue #247 | In progress. Not found on the site as of 2026-09-25 |
| Adobe | Reference implementation (snapshot) | 2026-04-08 | Published |
| Mastodon | Reference implementation (snapshot) | 2026-03-18 | Published |
| Skyscanner | Reference implementation (snapshot) | 2026-04-21 | Published |
| Introducing OTel Blueprints and Reference Implementations | Announcement blog | 2026-05-12 | End-User SIG, with the Developer Experience SIG |
The reference-implementation dates are the byline dates on each page. Proposals go through issue templates in the sig-end-user repository before a docs pull request.
Managed-Platforms Blueprint Map¶
| Part | Items |
|---|---|
| Challenges | 1 Inconsistent configuration and low adoption of standards. 2 Collector configuration sprawl. 3 Pipelines not optimized for observability data. 4 Weak telemetry governance and low ROI. 5 Low observability of SDKs and pipelines |
| Guidelines | 1 Centralize default, extensible SDK configuration. 2 Shared ownership of telemetry production. 3 Centrally managed Collector Gateways. 4 Aggregate, process, and sample at different layers |
| Actions | 1 Operator (or shared packages) for app-level config. 2 Organization standards in the default config. 3 Operator or Helm charts for Gateways. 4 Collector processors for efficient volumes. 5 Monitor SDKs and Collectors |
| Appendices | 1 Trace sampling techniques. 2 gRPC load balancing. 3 SDK config overrides. 4 file_storage deployment notes. 5 k8s_attributes deployment notes |
| Declared out of scope | Audit logging and business reporting pipelines. Compliance (GDPR, HIPAA, PCI) and inter-layer auth/encryption. Semantic-convention governance. Full sampling architecture |
Reference Implementation Fact Sheet¶
Company-reported figures (self-reported, not audited):
| Fact | Adobe | Mastodon | Skyscanner |
|---|---|---|---|
| Organization | Central observability team plus product-group teams from acquisitions | ~20 people. One engineer runs observability | 1,400 employees. 6-engineer Hubble platform team |
| Estate | Thousands of Collectors per signal type | mastodon.social: 9-15 nodes (16 cores, 64 GB), 70-80 pods. mastodon.online: 3-6 nodes (8 cores, 32 GB), 20-30 pods | 1,000+ microservices on 24 production clusters, mostly Java |
| Traffic | Not published | Up to 300,000 daily active users and ~10M requests/min (mastodon.social) | Not published |
| Collector distribution | Custom build (Contrib opt-in) | Contrib | Contrib (plans custom builds) |
| Backend | Multiple, chosen per team | Datadog (named in the config) | One commercial vendor (New Relic per Skyscanner's own post) |
| Upgrade cadence | Quarterly (Collector and Operator) | Not stated | About every six months |
| Rollout | Helm chart picked up on next team deploy | Argo CD from Git | Argo CD: Dev, then 3 Alpha, 8 Beta, and the remaining 13 production clusters |
| Sampling | Not described | Tail: all errors plus ~0.1% of successes | Error-based trace sampling. A span processor un-errors expected cache-miss 404s first |
Sources¶
- OpenTelemetry specification CHANGELOG and status summary
- opentelemetry-proto README (maturity table) and CHANGELOG
- Semantic conventions CHANGELOG and GenAI semantic conventions repo
- Operator compatibility matrix, auto-instrumentation docs, sidecar injection, ClusterObservability
- OpenTelemetry Profiles Enters Public Alpha (2026-03-26)
- Guidance pages listed in the catalogue above