NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #1051 by repository stars
Last release today
07 Oct 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
1550 releases · first in 2019
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
pkg/instrumentation: Move pkg/instrumentation to internal/instrumentation
pkg/instrumentation: Move pkg/instrumentation to internal/instrumentation (#4140)targetallocator, collector: Remove stable feature gate PrometheusOperatorIsAvailable (#4141)controller: Harmonize CLI and env var configuration to allow setting all configuration (#3565)
In order of priority, the default configuration is assigned first, overwritten by environment variables and CLI arguments successively.
managementState: managementState property on resources is no longer a required field since it has a default value as managed (#4076)
operator: Support for Kubernetes 1.33 version. (#4048)
target allocator: Adds support for HTML output in the target allocator. (#3622)
controller: Support a yaml config file to set all the configuration options exposed by controllers (#3565)
target allocator: ensure stable iteration order of target labels when generating hash (#4082)target allocator: Fix OpenShift must-gather for Target Allocator (#4084)opampbridge: Do not register the opampbridge webhook if the CRD is not present (#4070)auto-instrumentation: Fix the bug that k8s.container.name in OTEL_RESOURCE_ATTRIBUTES env is not set correctly for Go the auto-instrumentation when the pod has multiple containers. (#4089)collector: Fix the headless service name in StatefulSet mode to ensure consistent DNS resolution. The ServiceName field in the OpenTelemetryCollector spec can be used to customize the StatefulSet's serviceName. (#4029)
The ServiceName field in the OpenTelemetryCollector
spec can be used to customize the StatefulSet's serviceName if needed, while maintaining
the default behavior of using the headless service name.operator: Remove invalid operator.observability.prometheus feature flag references (#4159)
Fixed operator installation failure caused by references to the non-existent operator.observability.prometheus feature flag.
Removed the flag from the bundle and cleaned up API and documentation references.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
collector: Move validation to be part of the CRD for sidecar mode
collector: Move validation to be part of the CRD for sidecar mode (#3319)
target allocator: Promote the operator.collector.targetallocatorcr feature flag to Beta (#2422)
As a result of this change, when the target allocator section is enabled in the Collector CR,
this now creates a TargetAllocator CR instead of generating the manifests directly. Behavior should otherwise be
unchanged. You can go back to the previous behaviour by passing the
--feature-gates=-operator.collector.targetallocatorcr command-line option to the operator.
collector: Set the default spec.replicas to 1 in the OpenTelemetryCollector CRD. (#4042)
This default no longer relies on the admission webhook.
collector, target allocator: Fix operator RBAC for managing targetallocator finalizers on OpenShift. (#4069)
On OpenShift OwnerReferencesPermissionEnforcement is enabled by default, which requires the operator to have permissions to remove finalizers from resources it owns.
https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
target allocator: Add app.kubernetes.io/managed-by label to Target Allocator CRs created by the Collector CR (#4025)
target allocator: Fixes an issue where the same target from two different jobs was being allocated for only one job (#4044)
Nothing published for this version
Nothing published for this version
target-allocator: Switch to Prometheus 3.0 defaults for ScraperProtocols, requires prometheusreceiver >0.120.0
target-allocator: Switch to Prometheus 3.0 defaults for ScraperProtocols, requires prometheusreceiver >0.120.0 (#3872)target-allocator: Allow to configure ScraperProtocols in prometheus common config (#4000)target allocator: set default target allocator grace period to 30 seconds (#3989)
The config option collectorNotReadyGracePeriod have been set to 30s by default. The target allocator now waits for 30 seconds before reallocating targets from a collector which isn't Ready.
Setting this value to 0 will restore previous behaviour.otel-allocator: Remove overwrite of global config ScraperProtocols (#3996)target allocator: Fix user-defined volumes in the TargetAllocator CR (#3992)collector: add terminationGracePeriodSeconds to DaemonSet and StatefulSet specs (#4003)webhook: Allow to run the operator without the OpenTelemetry CRDs present (#3568) Skip registering the webhook and keep the operator working in case t
webhook: Allow to run the operator without the OpenTelemetry CRDs present (#3568)
Skip registering the webhook and keep the operator working in case the OpenTelemetryCollector CRDs are not deployed.collector: Fixes container port duplication for user-provided and operator inferred ports (#3950)
This patch improves container port collisions when the user defines additional ports in the CR.
When ports are specified in the CR:
collector: Prevent the operator from overriding the env vars defined by the user in the OpenTelemetryCollector spec. (#3963)
This change ensures that the operator does not override the environment variables defined by the user in the OpenTelemetryCollector spec.
It combines user-defined environment variables with automatically inferred ones, giving precedence to user-defined ones.
opamp: Fix config loading priority (#3928)
target allocator: Fix config loading priority (#3928)
collector: Set the statusReplicas field for the DaemonSet (#3930)
collector: Fix OpenShift internal collector metrics dashboards to use _total suffix (#3994)
The following settings (or missing metrics configuration since 0.119.0) exposes metrics with _total suffix:
service:
telemetry:
metrics:
readers:
- pull:
exporter:
prometheus:
host: '0.0.0.0'
port: 8888
The following settings exposes metrics without _total suffix:
service:
telemetry:
address: 0.0.0.0:8888
targetallocator: Do not override the collector namespace from the config file if the environment variable is not set. (#3976)
Nothing published for this version
Nothing published for this version
collector: Re-try failed upgrades (#3515) The upgrade process runs now in the reconcile loop. In case of an error, the operator re-tries the upgrade w
collector: Re-try failed upgrades (#3515)
The upgrade process runs now in the reconcile loop.
In case of an error, the operator re-tries the upgrade with exponential backoff.opamp: Enables the OpAMP Bridge to act as a read-only proxy for effective configuration and health reporting.
opamp: Enables the OpAMP Bridge to act as a read-only proxy for effective configuration and health reporting. (#3823)collector: Fix the telemetry config to not override the user-defined config. (#3913)collector: Fix Jaeger query extension default endpoint (#3906)
The operator 0.122.0 introduced a fix to add a default endpoint. However, for Jaeger query extension the endpoint
was put in the wrong place, causing collector to fail to start due to an incorrect config.You can do the following to avoid breaking changes:
auto-instrumentation: Update recommended resource attributes to match the semantic conventions (#3797)
This change updates the recommended resource attributes to match the semantic conventions.
The following attributes have been updated:
service.version now uses the docker image digest in addition to the tagapp.kubernetes.io/part-of for service.namespace has been removedapp.kubernetes.io/instance has been added (translates to service.name)service.namespace now also uses the Kubernetes namespace name (if resource.opentelemetry.io/service.namespace is not set)You can do the following to avoid breaking changes:
service.version: Set the version explicitly using resource.opentelemetry.io/service.version
(not recommended, the version has only been made more specific)service.namespace: Set the namespace explicitly using resource.opentelemetry.io/service.namespace -
or just rely on the Kubernetes namespace name, which is now the defaultservice.name: If you have enabled useLabelsForResourceAttributes:
Set the name explicitly using resource.opentelemetry.io/service.name if app.kubernetes.io/instance is used for another purposetarget allocator: Specific changes on CRD, Manifest, Controller, etc to allow specifying value for collector grace period (#3781)auto-instrumentation: Increase default instrumentation memory limit to 256Mi (#3479)collector: Fix the default configuration for the internal metrics endpoint (#3730)collector: Set the default endpoint to 0.0.0.0:13133 for the collector health check extension (#3825, #3688)operator: Remove the deprecated --label command-line option (#3236) Use --labels-filter instead.
all: Move feature gate operator.observability.prometheus to stable (#3669)operator: Remove the deprecated --label command-line option (#3236)
Use --labels-filter instead.opamp: Allows specifying non-identifying attributes for the Bridge, also follows OpAMP guidelines for reporting instance.service.id (#2301)
target allocator: Allow setting the collector namespace via the config file (#3782)
auto-instrumentation: Add support to set image pull policy for agent images (#3575)
auto-instrumentation: Enhanced Java auto-instrumentation with improved volume mount paths and configuration options (#3843)
target allocator: Add support for setting the allowNamespaces and denyNamespaces in the target allocator.
(#3086)
allowNamespaces can be set to an empty list to watch all namespaces (default) or to list of namespaces to watch.
denyNamespaces can be set to an empty list to deny watching any namespaces (default) or to a list of namespaces to deny watching.
target allocator: Do not assign targets to a collector pod that is not Ready for longer than a non-zero grace period (#3781)
collector: Add nil check for Extensions in GetLivenessProbe and GetReadinessProbe functions (#3747)OpenTelemetry Collector - v0.120.0
This is disabled by default, which is a breaking change, because it was enabled by default in 0.113.0 and 0.114.0.
operator: Make ServiceMonitor for operator metrics optional and disable it by default (#3474)
Add --create-sm-operator-metrics flag to create a ServiceMonitor for the operator metrics.
This is disabled by default, which is a breaking change, because it was enabled by default in 0.113.0 and 0.114.0.auto-instrumentation: add upper version limit to Python dependency urllib3 (#3616)target allocator: check for Prometheus CRDs before watching Service/Pod Monitors (#3726)target allocator: Introduce TargetAllocator CRD (#2422) See the CRD changelog for more information.
target allocator: Introduce TargetAllocator CRD (#2422)
See the CRD changelog for more information.target allocator: Support camelcase matchLabels and matchExpressions in target allocator config (#3350)collector: Fix config handling with null values. (#3452)
Fix the defaulting webhook error src and dst must not be nil caused by defaulting a known component with a null value:
e.g.receivers:
zipkin:
collector: Prevent mounting secrets to collector when TA is not deployed and mTLS feature gate is enabled (#3456)target allocator: change metric opentelemetry_allocator_targets_remaining type from counter to gauge
target allocator: change metric opentelemetry_allocator_targets_remaining type from counter to gauge (#3578)auto-instrumentation: add Python instrumentation of aiokafka, click (#3611)operator: Add support for Kubernetes 1.32 (#3544)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
target allocator: Process discovered targets asyncchronously (#1842) This change enables the target allocator to process discovered targets asynchrono
target allocator: Process discovered targets asyncchronously (#1842)
This change enables the target allocator to process discovered targets asynchronously.
This is a significant performance improvement for the target allocator, as it allows it to process targets in parallel, rather than sequentially.
This change also introduces new metrics to track the performance of the target allocator.
operator: Fix the admission webhook to when metrics service address host uses env var expansion (#3513)
This should allow the metrics service address to have the host portion expanded from an environment variable,
like $(env:POD_IP) instead of using 0.0.0.0, which is the recommended by the Collector.
auto-instrumentation: Apache instrumentation sidecar fails to start if target container define lifecycle (#3547)
collector: Fix deletion of optional resources for OpenTelemetryCollector CRs (#3454)
auto-instrumentation: Remove the mapping of app.kubernetes.io/instance to service.instance.id (#3495) Technically, this is a breaking change, but we r…
collector: enables support for pulling scrape config and probe CRDs in the target allocator (#1842)collector: support for creating a service for extensions when ports are specified. (#3460)github action: Add new line character at the end of PrometheusRule file. (#3503)
auto-instrumentation: Reverts PR 3379 which inadvertently broke users setting JAVA_TOOL_OPTIONS (#3463)
Reverts a previous PR which was causing JAVA_TOOL_OPTIONS to not be overriden when
set by users. This was resulting in application crashloopbackoffs for users relying
on java autoinstrumentation.
auto-instrumentation: Remove the mapping of app.kubernetes.io/instance to service.instance.id (#3495)
Technically, this is a breaking change, but we regard it as a bug fix because the previous behavior was incorrect.
if you did have multiple container instrumentation and use app.kubernetes.io/instance to set the service.instance.id,
you will now see multiple instances in the UI - which is the correct behavior.
You can still use the attribute resource.opentelemetry.io/service.instance.id to set the service.instance.id,
which will be shared across all containers in the pod - but this is not recommended for multiple container instrumentation instances.
Refer to the semantic conventions for more information.
auto-instrumentation: Reverts PR 3379 which inadvertently broke users setting JAVA_TOOL_OPTIONS (#3463) Reverts a previous PR which was causing JAVA_T
auto-instrumentation: Reverts PR 3379 which inadvertently broke users setting JAVA_TOOL_OPTIONS (#3463)
Reverts a previous PR which was causing JAVA_TOOL_OPTIONS to not be overriden when
set by users. This was resulting in application crashloopbackoffs for users relying
on java autoinstrumentation.github action: Add new line character at the end of PrometheusRule file. (#3503)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
collector: Create RBAC rules for the k8s_cluster receiver automatically.
collector: Create RBAC rules for the k8s_cluster receiver automatically. (#3427)
collector: Create RBAC rules for the k8sobjects receiver automatically. (#3429)
collector: Add a warning message when one created collector needs extra RBAC permissions and the service account doesn't have them. (#3432)
target allocator: Added allocation_fallback_strategy option as fallback strategy for per-node allocation strategy, can be enabled with feature flag operator.targetallocator.fallbackstrategy (#3477)
If using per-node allocation strategy, targets that are not attached to a node will not be allocated. As the per-node strategy is required when running as a daemonset, it is not possible to assign some targets under a daemonset deployment. Feature flag operator.targetallocator.fallbackstrategy has been added and results in consistent-hashing being used as the fallback allocation strategy for "per-node" only at this time.
auto-instrumentation: updated node auto-instrumentation dependencies to the latest version (#3476)
operator: Replace references to gcr.io/kubebuilder/kube-rbac-proxy with quay.io/brancz/kube-rbac-proxy (#3485)
operator: Operator pod crashed if the Service Monitor for the operator metrics was created before by another operator pod. (#3446)
Operator fails when the pod is restarted and the Service Monitor for operator metrics was already created by another operator pod. To fix this, the operator now sets the owner reference on the Service Monitor to itself and checks if the Service Monitor already exists.
auto-instrumentation: Bump base memory requirements for python and go (#3479)
This release fixes an important bug that caused the operator to crash when prometheus-operator CRDs were present in the cluster. See #3446 for details
This release fixes an important bug that caused the operator to crash when prometheus-operator CRDs were present in the cluster. See #3446 for details. This fix is also present in v0.114.0.
operator: Operator pod crashed if the Service Monitor for the operator metrics was created before by another operator pod. (#3446)
Operator fails when the pod is restarted and the Service Monitor for operator metrics was already created by another operator pod.
To fix this, the operator now sets the owner reference on the Service Monitor to itself and checks if the Service Monitor already exists.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →