v0.97.0
End User Changes
🛑 Breaking changes 🛑
datadogconnector
: Remove feature gateconnector.datadogconnector.performance
(#31638)cmd/mdatagen
: Delete deprecated cmd/mdatagen from this project. Use go.opentelemetry.io/collector/cmd/mdatagen instead. (#30497)receiver/postgresql
: Bump postgresqlreceiver.preciselagmetrics gate to beta (#31220)receiver/vcenter
: Bump receiver.vcenter.emitPerfMetricsWithObjects feature gate to stable (#31215)prometheusreceiver
: Remove enable_protobuf_negotiation option on the prometheus receiver. Use config.global.scrape_protocols = [ PrometheusProto, OpenMetricsText1.0.0, OpenMetricsText0.0.1, PrometheusText0.0.4 ] instead. (#30883)
See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#configuration-file for details on setting scrape_protocols.vcenterreceiver
: Fixed the resource attribute model to more accurately support multi-cluster deployments (#30879)
For more information on impacts please refer #31113. The main impacts are that
thevcenter.resource_pool.name
,vcenter.resource_pool.inventory_path
, andvcenter.cluster.name
are reported with more accuracy on VM metrics.
🚩 Deprecations 🚩
instanaexporter
: Mark the Instana Exporter as deprecated. (#31765)
🚀 New components 🚀
awss3receiver
: introduce the AWS S3 receiver (#30750)sumologicextension
: promote toalpha
stability (#29601)googleclientauthextension
: Add boilerplate for Google Client Auth Extension (#31412)grafanacloudconnector
: Adds a connector to generate metrics for Grafana Cloud. (#31647)rabbitmqexporter
: Add new exporter for sending telemetry to RabbitMQ brokers using the AMQP 0.9.1 protocol (#28891)
💡 Enhancements 💡
-
exporter/loadbalancingexporter
: Adding AWS Cloud Map for service discovery of Collectors backend. (#27241) -
ottl
: Add new function to decode a base64 encoded string and output the original string (#31543) -
ackextension
: adding the in-memory implementation of the ackextension (#26376) -
awss3exporter
: addcompression
option to enable file compression on S3 (#27872)
Addcompression
option to compress files usingcompress/gzip
library before uploading to S3. -
servicegraphprocessor
: Added a new configuration optiondatabase_name_attribute
to allow users to specify a custom attribute name for identifying the database name in span attributes. (#30726) -
awss3exporter
: Add support for encoding extension to awss3exporter (#30554) -
processor/k8sattributes
: Add support fork8s.node.uid
metadata (#31637) -
awss3exporter
: Add support for specifying the file extension for files uploaded to S3 when using an encoding extension. (#31818) -
datadogexporter
: Datadog exporter uses the same default HTTP settings as Datadog Agent HTTP transport (#31733) -
datadogexporter
: Datadog exporter respects a subset of settings in confighttp client configs (#31733)
Currently the following configs are respected:read_buffer_size
,write_buffer_size
,timeout
,max_idle_conns
,max_idle_conns_per_host
,max_conns_per_host
,idle_conn_timeout
,disable_keep_alives
andtls.insecure_skip_verify
. -
deltatocumulativeprocessor
: introduce configurable stream limit (#31488)
Addsmax_streams
option that allows to set upper bound (default = unlimited)
to the number of tracked streams. Any additional streams exceeding the limit
are dropped. -
deltatocumulativeprocessor
: expire stale series (#30705, #31016)
Addsmax_stale
option that allows to set an interval (default =5min
)
after which a series that no longer receives new samples is removed from
tracking. -
datadogconnector
: Add a new option to the Datadog connector to enable container tags on stats Payloads. (#31642)
This change adds a new option to the Datadog connector to enable container tags on stats Payloads. This is useful for users who want to use container tags as second primary tag for Datadog APM. -
dockerstatsreceiver
: add metrics for online CPU count and memory fails count (#31366) -
fileexporter
: Adopt the encoding extension with the file exporter. (#31774) -
pkg/ottl
: AddParseXML
function for parsing XML from a target string. (#31133) -
fileexporter
: Added the option to write telemetry data into multiple files, where the file path is based on a resource attribute. (#24654) -
fileexporter
: File write mode is configurable now (truncate or append) (#31364) -
elasticsearchexporter
: When timestamp is not set, use observedTimestamp (#11752) -
k8sclusterreceiver
: add optional status_last_terminated_reason resource attribute (#31282) -
awsproxyextension
: Expose service_name as configurable option. Previously, it was hardcoded as xray. (#29550) -
datadogexporter
: Add new telemetry metric,otelcol_datadog_otlp_translator_resources_missing_source
that counts OTLP resources missing a hostname-identifying attribute. (#31805)- Enable Collector metrics https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/troubleshooting.md#metrics to check for this metric.
-
extension/opamp
: Promote the OpAMP extension to alpha stability (#31616) -
prometheusremotewriteexporter
: Publish telemetry about translation of metrics from Otel to Prometheus. Don't drop all data points if some fail translation. (#29729) -
prometheusreceiver
: Use confighttp for target allocator client (#31449) -
spanmetricsconnector
: Addmetrics_expiration
option to enable expiration of metrics if spans are not received within a certain time frame. (#30559)
The feature can be configured by specifiying the desired duration in themetrics_expiration
option. By default, the expiration is disabled (set to 0). -
splunkentreceiver
: Updated the config.go and propogated these changes to other receiver components. Change was necessary to differentiate different configurable endpoints. (#30254) -
exporter/datadogexporter
: Do not drop traces when payload channel is full. (#31893) -
connector/datadogconnector
: Do not resolve container tags if payload already has tags associated with it. (#31893)
🧰 Bug fixes 🧰
-
bigipreceiver
: Fix potential nil pointer usage in GetPoolMembers (#31899) -
carbonreceiver
: Do not report fatal error when closed normally (#31913) -
datadogexporter
: Fix data race in metrics exporter shutdown (#31663) -
deltatocumulativeprocessor
: timer-based expiry (#31615)
converts expiry to 1m timer, eliminating a race condition and failing test -
telemetrygen
: Do not use WithBlock when forming grpc connections for metrics/traces in telemetrygen to avoid infinite retry after failure (#31401) -
filestatsreceiver
: Fix file.path to return the proper absolute path of the file (#31738) -
internal/docker
: Updated docker dependency and fixed zap.String incompatibility (#31087) -
exporter/loadbalancing
: Fix panic when a sub-exporter is shut down while still handling requests. (#31410) -
cmd/telemetrygen
: Fixed key mapping for logs telemetry attributes. (#31309) -
exporter/awskinesisexporter
: Fix the capacity of records slices in the initialized batch (#20914) -
hostmetricsreceiver
: Adds the receiver.hostmetrics.normalizeProcessCPUUtilization feature gate to optionally normalize process.cpu.utilization values. (#31368)
When enabled, the receiver.hostmetrics.normalizeProcessCPUUtilization feature gate will cause process.cpu.utilization values to be divided by the number of logical cores on the system. This is necessary to produce a value on the interval of [0-1], as the description of process.cpu.utilization the metric says. -
transformprocessor
: Change metric unit for metrics extracted withextract_count_metric()
to be the default unit (1
) (#31575)
The original metricunit
does not apply to extractedcount
metrics the same way it does tosum
,min
ormax
.
Metrics extracted usingextract_count_metric()
now use the more appropriate default unit (1
) instead. -
dockerstatsreceiver
: Add shutdown method to fix leaking goroutines (#30438) -
loadbalancingexporter
: Fix memory leaks on shutdown (#31050) -
signalfxexporter
: Fix memory leak in shutdown (#30864, #30438) -
servicegraphprocessor
: Fix 'failed to find dimensions for key' error from race condition in metrics cleanup. (#31701) -
processor/k8sattributes
: Allows k8sattributes processor to work with k8s role/rolebindings when filter::namespace is set. (#14742) -
exporter/datadog
: Demote noisy gohai logs to debug level (#29741)
These logs would be present at the info level when using the official Docker images but were not useful to end-users. -
opencensusreceiver
: Refactor the opencensusreceiver to pass lifecycle tests and avoid leaking gRPC connections. (#31643) -
sqlqueryreceiver
: Fix memory leak on shutdown for log telemetry (#31782)
Go API Changes
🛑 Breaking changes 🛑
datadogexporter
: Remove config structsLimitedClientConfig
andLimitedTLSClientSettings
(#31733)
This should have no impact to end users as long as they do not import Datadog exporter config structs in their source code.cmd/mdatagen
: Delete deprecated cmd/mdatagen from this project. Use go.opentelemetry.io/collector/cmd/mdatagen instead. (#30497)azuremonitorreceiver
: Reduce the public API for this receiver. (#24850)
This unexports the following types ArmClient, MetricsDefinitionsClientInterface, MetricsValuesClient.general
: Update any component usingscraperhelper.ScraperControllerSettings
to usescraperhelper.ControllerConfig
(#31816)
This changes the config field name fromScraperControllerSettings
toControllerConfig
prometheusreceiver
: Remove enable_protobuf_negotiation option on the prometheus receiver. Use config.global.scrape_protocols = [ PrometheusProto, OpenMetricsText1.0.0, OpenMetricsText0.0.1, PrometheusText0.0.4 ] instead. (#30883)
See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#configuration-file for details on setting scrape_protocols.
🚩 Deprecations 🚩
pkg/stanza
: Deprecate fileconsumer.BuildWithSplitFunc in favor of Build with options pattern (#31596)
💡 Enhancements 💡
clickhouseexporter
: Allow configuringON CLUSTER
andENGINE
when creating database and tables (#24649)
Increases table creation flexibility with the ability to add replication for fault toleranceall
: Remove explicit checks in all receivers to check if the next consumer is nil (#31793)
The nil check is now done by the pipeline builder.
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.