The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
receiver/hostmetrics
: enable feature gatereceiver.hostmetrics.normalizeProcessCPUUtilization
(#31368)
This changes the value of the metricprocess.cpu.utilization
by dividing it by the number of CPU cores.
For example, if a process is using 2 CPU cores on a 16-core machine,
the value of this metric was previously2
, but now it will be0.125
. -
testbed
: Remove deprecatedGetAvailablePort
function (#32800)
🚀 New components 🚀
healthcheckv2extension
: Introduce the skeleton for the temporary healthcheckv2 extension. (#26661)intervalprocessor
: Implements the new interval processor. See the README for more info about how to use it (#29461)OpenTelemetry Protocol with Apache Arrow Receiver
: Implementation copied from opentelemetry/otel-arrow repository @v0.20.0. (#26491)roundrobinconnector
: Add a roundrobin connector, that can help single thread components to scale (#32853)
💡 Enhancements 💡
-
telemetrygen
: Add support to set metric name (#32840) -
exporter/kafkaexporter
: Enable setting message topics using resource attributes. (#31178) -
exporter/datadog
: Introduces the Datadog Agent logs pipeline for exporting logs to Datadog under the "exporter.datadogexporter.UseLogsAgentExporter" feature gate. (#32327) -
elasticsearchexporter
: Add retry.retry_on_status config (#32584)
Previously, the status codes that trigger retries were hardcoded to be 429, 500, 502, 503, 504.
It is now configurable usingretry.retry_on_status
, and defaults to[429, 500, 502, 503, 504]
to avoid a breaking change.
To avoid duplicates, it is recommended to configureretry.retry_on_status
to[429]
, which would be the default in a future version. -
exporter/splunkhec
: add experimental exporter batcher config (#32545) -
windowsperfcountersreceiver
: Returns partial errors for failures during scraping to prevent throwing out all successfully retrieved metrics (#16712) -
jaegerencodingextension
: Promote jaegerencodingextension to alpha (#32699) -
kafkaexporter
: add an ability to publish kafka messages with message key based on metric resource attributes - it will allow partitioning metrics in Kafka. (#29433, #30666, #31675) -
cmd/opampsupervisor
: Switch the OpAMP Supervisor's bootstrap config to use the nopreceiver and nopexporter (#32455) -
otlpencodingextension
: Move otlpencodingextension to alpha (#32701) -
prometheusreceiver
: Prometheus receivers and exporters now preserve 'unknown', 'info', and 'stateset' types. (#16768)
It uses the metric.metadata field with the 'prometheus.type' key to store the original type. -
ptracetest
: Add support for ignore scope span instrumentation scope information (#32852) -
sqlserverreceiver
: Enable direct connection to SQL Server (#30297)
Directly connecting to SQL Server will enable the receiver to gather more metrics
for observing the SQL Server instance. The first metric added with this update is
sqlserver.database.io.read_latency
. -
connector/datadog
: The Datadog connector now has a config option to identify top-level spans by span kind. This new logic can be enabled by settingtraces::compute_top_level_by_span_kind
to true in the Datadog connector config. Default is false. (#32005)
traces::compute_top_level_by_span_kind
needs to be enabled in both the Datadog connector and Datadog exporter configs if both components are being used.
With this new logic, root spans and spans with a server or consumerspan.kind
will be marked as top-level. Additionally, spans with a client or producerspan.kind
will have stats computed.
Enabling this config option may increase the number of spans that generate trace metrics, and may change which spans appear as top-level in Datadog. -
exporter/datadog
: The Datadog exporter now has a config option to identify top-level spans by span kind. This new logic can be enabled by settingtraces::compute_top_level_by_span_kind
to true in the Datadog exporter config. Default is false. (#32005)
traces::compute_top_level_by_span_kind
needs to be enabled in both the Datadog connector and Datadog exporter configs if both components are being used.
With this new logic, root spans and spans with a server or consumerspan.kind
will be marked as top-level. Additionally, spans with a client or producerspan.kind
will have stats computed.
Enabling this config option may increase the number of spans that generate trace metrics, and may change which spans appear as top-level in Datadog. -
exporter/datadog
: Support stable semantic conventions for HTTP spans (#32823) -
cmd/opampsupervisor
: Persist collector remote config & telemetry settings (#21078) -
cmd/opampsupervisor
: Support AcceptsRestartCommand Capability. (#21077) -
telemetrygen
: Add headers to gRPC metadata for logs (#32668) -
sshcheckreceiver
: Add support for running this receiver on Windows (#30650) -
zipkinencodingextension
: Move zipkinencodingextension to alpha (#32702)
🧰 Bug fixes 🧰
-
prometheusremotewrite
: Modify prometheusremotewrite.FromMetrics to only generate target_info if there are metrics, as otherwise you can't deduce the timestamp. (#32318) -
prometheusremotewrite
: Change prometheusremotewrite.FromMetrics so that the target_info metric is only generated if at least one identifying OTel resource attribute (service.name and/or service.instance.id) is defined. (#32148) -
k8sclusterreceiver
: Fix container state metadata (#32676) -
sumologicexporter
: do not replace.
with_
for prometheus format (#31479) -
pkg/stanza
: Allow sorting by ascending order when using the mtime sort_type. (#32792) -
opampextension
: Add a newppid
parameter that can be used to enable orphan detection for the supervisor. (#32189) -
awsxrayreceiver
: Retain CloudWatch Log Group when translating X-Ray segments (#31784) -
pkg/stanza
: Fix issue whenexclude_older_than
is enabled withoutordering_criteria
configured (#32681) -
awskinesisexporter
: the compressor was crashing under high load due it not being thread safe. (#32589)
removed compressor abstraction and each execution has its own buffer (so it's thread safe) -
filelogreceiver
: When a flush timed out make sure we are at EOF (can't read more) (#31512, #32170) -
vcenterreceiver
: Adds thevcenter.cluster.name
resource attribute to resource pool with a ClusterComputeResource parent (#32535) -
vcenterreceiver
: Updatesvcenter.cluster.memory.effective
(primarily that the value was reporting MiB when it should have been bytes) (#32782) -
vcenterreceiver
: Adds warning tovcenter.cluster.memory.used
metric if configured about its future removal (#32805) -
vcenterreceiver
: Updates thevcenter.cluster.vm.count
metric to also report suspended VM counts (#32803) -
vcenterreceiver
: Addsvcenter.datacenter.name
attributes to all resource types to help with resource identification (#32531) -
vcenterreceiver
: Addsvcenter.cluster.name
attributes warning log related to Datastore resource (#32674) -
vcenterreceiver
: Adds newvcenter.virtual_app.name
andvcenter.virtual_app.inventory_path
resource attributes to appropriate VM Resources (#32557) -
vcenterreceiver
: Adds functionality forvcenter.vm.disk.throughput
while also changing to a gauge. (#32772) -
vcenterreceiver
: Adds initially disabled functionality for VM Templates (#32821) -
remotetapprocessor
: Fix memory leak on shutdown (#32571) -
haproxyreceiver
: Fix reading stats larger than 4096 bytes (#32652) -
connector/count
: Fix handling of non-string attributes in the count connector (#30314) -
datadogexporter
: Fix nil pointer dereference when using beta infrastructure monitoring offering (#32865)
The bug happened under the following conditions:- Setting
datadog.host.use_as_host_metadata
to true on a payload with data about the Datadog exporter host - Running using the official opentelemetry-collector-contrib Docker image
- Setting
-
pkg/translator/jaeger
: translate binary attribute values to/from Jaeger as is, without encoding them as base64 strings (#32204) -
awscloudwatchreceiver
: Fixed a bug where autodiscovery would not use nextToken in the paginated request (#32053) -
awsxrayexporter
: make comma,
as invalid char for x-ray segment name (#32610)
API Changelog
🛑 Breaking changes 🛑
pkg/stanza
: Pass TelemetrySettings to the Build method of the Builder interface (#32662, #31256)
The reason for this breaking change is to pass in the component.TelemetrySettings
so as to use them later in various ways:- be able to report state statistics and telemetry in general
- be able to switch from SugaredLogger to Logger
🚩 Deprecations 🚩
confmap/provider/s3
: Deprecates3provider.New
in favor ofs3provider.NewFactory
(#32742)confmap/provider/secretsmanager
: Deprecatesecretsmanagerprovider.New
in favor ofsecretsmanagerprovider.NewFactory
(#32743)
🚀 New components 🚀
roundrobinconnector
: Add a roundrobin connector, that can help single thread components to scale (#32853)
💡 Enhancements 💡
opampextension
: Added support for other components to register custom capabilities and receive custom messages from an opamp extension (#32021)kafkaexporter
: add an ability to publish kafka messages with message key based on metric resource attributes - it will allow partitioning metrics in Kafka. (#29433, #30666, #31675)sshcheckreceiver
: Add support for running this receiver on Windows (#30650)