v0.89.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End user facing changes
🛑 Breaking changes 🛑
-
pkg/stanza
: Improve parsing of Windows Event XML by handling anonymousData
elements. (#21491)
This improves the contents of Windows log events for which the publisher manifest is unavailable. Previously, anonymousData
elements were ignored. This is a breaking change for users who were relying on the previous data format. -
processor/k8sattributes
: Graduate "k8sattr.rfc3339" feature gate to Beta. (#28817)
Time format ofk8s.pod.start_time
attribute value migrated from RFC3339:
Before: 2023-07-10 12:34:39.740638 -0700 PDT m=+0.020184946
After: 2023-07-10T12:39:53.112485-07:00
The feature gate can be temporary reverted back by adding--feature-gate=-k8sattr.rfc3339
to the command line. -
filelogreceiver
: Change "Started watching file" log behavior (#28491)
Previously, every unique file path which was found by the receiver would be remembered indefinitely.
This list was kept independently of the uniqueness / checkpointing mechanism (which does not rely on the file path).
The purpose of this list was to allow us to emit a lot whenever a path was seen for the first time.
This removes the separate list and relies instead on the same mechanism as checkpointing. Now, a similar log is emitted
any time a file is found which is not currently checkpointed. Because the checkpointing mechanism does not maintain history
indefintiely, it is now possible that a log will be emitted for the same file path. This will happen when no file exists at
the path for a period of time. -
dockerstatsreceiver
: cpu.container.percent metric is removed in favor of container.cpu.utilization (#21807)
The metriccontainer.cpu.percentage
is now removed.container.cpu.utilization
is enabled by default as a replacement.
For details, see the docs. -
encoding extensions
: Rename encoding extensions for consistency with storage extensions (#24451)jaegerencoding
->jaeger_encoding
otlpencoding
->otlp_encoding
textencoding
->text_encoding
zipkinencoding
->zipkin_encoding
-
remoteobserverprocessor
: Rename remoteobserverprocessor to remotetapprocessor (#27873) -
collectdreceiver
: Stop using opencensus metrics, use the obsrecv format (#25148)
🚩 Deprecations 🚩
datadogexporter
: Deprecate configtraces::peer_service_aggregation
in favor oftraces::peer_tags_aggregation
(#29089)postgresqlreceiver
: Deprecation of postgresql replication lag metricspostgresql.wal.lag
in favor of more precise 'postgresql.wal.delay' (#26714)
🚀 New components 🚀
extension/opampextension
: Add a new extension that implements an OpAMP agent for reporting the collector's health and effective configuration. (#16462)sumologicprocessor
: add Sumo Logic Processor (#23946)
move processor from https://github.com/SumoLogic/sumologic-otel-collector/ repositoryalertmanagerexporter
: Add new exporter for sending events as alerts to Alertmanager (#23569)remotetapextension
: Add a new extension, remotetapextension to use with the remoteobserverprocessor processors. (#19634)otlpencodingextension
: Introduce OTLP encoding extension (#6272)pkg/translator/azure
: Create a translator for Azure Resource Log format (#18210)
💡 Enhancements 💡
-
awsxrayexporter
: Convert individual HTTP error events into exceptions within subsegments for AWS SDK spans and strip AWS.SDK prefix from remote aws service name (#27232) -
azuremonitorexporter
: Added connection string support to the Azure Monitor Exporter (#28853)
This enhancement simplifies the configuration process and aligns the exporter with Azure Monitor's recommended practices.
The Connection String method allows the inclusion of various fields such as the InstrumentationKey and IngestionEndpoint
within a single string, facilitating an easier and more integrated setup.
While the traditional InstrumentationKey method remains supported for backward compatibility, it will be phased out.
Users are encouraged to adopt the Connection String approach to ensure future compatibility and to leverage the broader
configuration options it enables. -
opensearchexporter
: Add log exporting capability to the opensearchexporter. (#23611) -
pdatatest
: Allow to compare metrics resource attributes or metric attribute values by matching on a portion of the dimension value with a regular expression. (#27690)
UseMatchResourceAttributeValue("node_id", "cloud-node")
to match two metrics with a resource attribute value that starts with "cloud-node".
UseMatchMetricAttributeValue("hostname", "container-tomcat-", "gauge.one", "sum.one")
to match metrics with thehostname
attribute starting withcontainer-tomcat-
. -
processor/tailsampling
: adds optional upper bound duration for sampling (#26115) -
clickhouseexporter
: Add persistent storage support to clickhouse exporter (#27653) -
azuremonitorexporter
: Added documentation to describe how to use with the AAD Auth Proxy and enable AAD based authentication. (#24451) -
azuremonitorexporter
: Extended Azure Monitor exporter to support persistent queue. Default is for QueueSettings.Enabled to be false. (#25859) -
collectdreceiver
: Add support of confighttp.HTTPServerSettings (#28811) -
collectdreceiver
: Promote collectdreceiver as beta component (#28658) -
receiver/hostmetricsreceiver
: Added support for host's cpuinfo frequnecies. (#27445)
In Linux the current frequency is populated using the values from /proc/cpuinfo. An os specific implementation will be needed for Windows and others. -
datadogexporter
: Add a new traces configtrace_buffer
that specifies the number of outgoing trace payloads to buffer before dropping. (#28577)
If you start seeing log messages likePayload in channel full. Dropped 1 payload.
in the datadog exporter, consider setting a highertrace_buffer
to avoid traces being dropped. -
datadogexporter
: Add a new configtraces::peer_tags_aggregation
that enables aggregation of peer related tags in Datadog exporter (#29089) -
receiver/hostmetrics/scrapers/process
: add configuration option to muteerror reading username for process
(#14311, #17187) -
syslogexporter
: Promote syslogexporter to alpha and add it to otelcontribcol (#21242, #21244, #21245) -
azureevenhubreceiver
: Allow the Consumer Group to be set in the Configuration. (#28633) -
spanmetricsconnector
: Add Events metric to span metrics connector that adds list of event attributes as dimensions (#27451) -
exceptionsconnector
: Add trace id and span id to generated logs from exceptions when using exceptionsconnector. (#24407) -
processor/k8sattribute
: support adding labels and annotations from node (#22620) -
windowseventlogreceiver
: Add parsing for Security and Execution event fields. (#27810) -
filelogreceiver
: Add the ability to order files by mtime, to only read the most recently modified files (#27812) -
wavefrontreceiver
: Wrap metrics receiver under carbon receiver instead of using export function (#27248) -
exporter/datadog
: Added the "exporter.datadogexporter.DisableAPMStats" feature gate to disable APM stats computation. (#28615) -
pkg/ottl
: Add IsBool function into OTTL (#27897) -
k8sclusterreceiver
: add k8s.node.condition metric (#27617) -
kafka
: Expose resolve_canonical_bootstrap_servers_only (#26022) -
mongodbatlasreceiver
: Enhanced collector logs to include more information about the MongoDB Atlas API calls being made during logs retrieval. (#28851) -
datadogexporter
: Add support for host.cpu attributes. (#29156) -
datadogexporter
: Add support for custom container tags via resource attributes prefixed bydatadog.container.tag.*
. (#29156) -
receiver/mongodbatlasreceiver
: emit resource attributes "mongodb_atlas.region.name
" and "mongodb_atlas.provider.name
" on metric scrape. (#28833) -
pkg/golden
: Move the internal/coreinternal/golden folder to pkg/golden (#28594) -
processor/resourcedetection
: Addprocessor.resourcedetection.hostCPUModelAndFamilyAsString
feature gate to change the type ofhost.cpu.family
andhost.cpu.model.id
attributes fromint
tostring
. (#29025)
This feature gate will graduate to beta in the next release. -
tailsamplingprocessor
: Optimize performance of tailsamplingprocessor (#27889) -
redisreceiver
: include server.address and server.port resource attributes (#22044) -
servicegraphprocessor, servicegraphconnector
: Add a config option to periodically flush metrics, instead of flushing on every push. (#27679) -
spanmetricsconnector
: Add exemplars to sum metric (#27451) -
exporter/syslog
: send syslog messages in batches (#21244)
This changes the behavior of the Syslog exporter to send each batch of Syslog messages in a single request (with messages separated by newlines), instead of sending each message in a separate request and closing the connection after each message. -
cmd/telemetrygen
: Use exporter per worker for better metrics throughput (#26709) -
cmd/telemetrygen
: Add support for --otlp-http for telemetrygen logs (#18867) -
exporter/awss3exporter
: This feature allows role assumption for s3 exportation. It is especially useful on Kubernetes clusters that are using IAM roles for service accounts (#28674)
🧰 Bug fixes 🧰
-
lokiexporter
: The tenant attribute is now not automatically promoted to a label. (#21045)
To add tenant attributes (resource/record) to labels, use the label hints explicitly. -
azuretranslator
: Allow numeric fields to use a String or Integer representation in JSON. (#28650) -
extension/zipkinencodingextension
: Fix bug when err is nil if invalid protocol value is supplied. (#28686) -
filelogreceiver
: Fix issue where counting number of logs emitted could cause panic (#27469, #29107) -
lokireceiver
: Fix issue where counting number of logs emitted could cause panic (#27469, #29107) -
kafkareceiver
: Fix issue where counting number of logs emitted could cause panic (#27469, #29107) -
k8sobjectsreceiver
: Fix issue where counting number of logs emitted could cause panic (#27469, #29107) -
fluentforwardreceiver
: Fix issue where counting number of logs emitted could cause panic (#27469, #29107) -
otlpjsonfilereceiver
: Fix issue where counting number of logs emitted could cause panic (#27469, #29107) -
datadogconnector
: Mark datadogconnector asMutatesData
to prevent data race (#29111) -
azureeventhubreceiver
: Updated documentation around Azure Metric to OTel mapping. (#28622) -
receiver/hostmetrics
: Fix panic on load_scraper_windows shutdown (#28678) -
apachesparkreceiver
: Replacing inaccurate units for the spark.job.stage.active and spark.job.stage.result metrics for the Apache Spark receiver. (#29104) -
splunkhecreceiver
: Do not encode JSON response objects as string. (#27604) -
processor/k8sattributes
: Set attributes from namespace/node labels or annotations even if node/namespaces attribute are not set. (#28837) -
datadogexporter
: Only extract DD container tags from resource attributes. Previously, container tags were also extracted from span attributes. (#29156) -
datadogexporter
: Only add container tags in dedicated container tag section. Previously, container tags were also added as span tags. Container tags will now only be accessible via the span container tab, and not as span tags. (#29156) -
pkg/stanza
: Fix data-corruption/race-condition issue in udp async (reuse of buffer); use buffer pool isntead. (#27613) -
datadogexporter
: Fixes potential log records loss on a transient network/connectivity error (#24550)
The Datadog exporter threats network/connectivity errors (http client doesn't receive a response) as permanent errors, which can lead to log records loss. This change makes these errors retryable. -
servicegraphprocessor, servicegraphconnector
: Measure latency in seconds instead of milliseconds (#27488)
Measures latency in seconds instead of milliseconds, as the metric name indicates.
Previously, milliseconds was used.
This unit is still available via the feature gateprocessor.servicegraph.legacyLatencyUnitMs
.
This is a breaking change. -
sshcheckreceiver
: Use key_file instead of keyfile for the key in config. Aligns project practice, code, and docs. (#27035) -
zipkinreceiver
: Return BadRequest in case of permanent errors (#4335)
API changes
🛑 Breaking changes 🛑
carbonreceiver
: Do not export function New and pass checkapi. (#26304)collectdreceiver
: Move to use confighttp.HTTPServerSettings (#28811)kafkaexporter
: Do not export function WithTracesMarshalers, WithMetricsMarshalers, WithLogsMarshalers and pass checkapi (#26304)remoteobserverprocessor
: Rename remoteobserverprocessor to remotetapprocessor (#27873)