v0.82.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
🛑 Breaking changes 🛑
-
receiver/awsfirehose
: Change the type ofConfig.AccessKey
to beconfigopaque.String
(#17273) -
receiver/cloudfoundry
: Change the type ofConfig.UAA.Password
to beconfigopaque.String
(#17273) -
exporter/datasetexporter
: Remove temporary client side attribute aggregation and corresponding traces.max_wait and traces.aggregate config options which are now redundant. (#20660)
This pull request removes the following attributes from the DataSet trace events: services,
span_count, error_count. Those attributes were populated on the client side as part of the client
side aggregation code. This client side aggregation was meant as a temporary solution until a
proper solution is implement on the server side. Being a temporary solution meant it had many
edge cases and would only work under specific and limited circumstances (all spans which belong
to a trace are part of the same batch received by the plugin).Corresponding config options (traces.aggregate and traces.max_wait) which are not redundant and
unused have also been removed. -
mysqlreceiver
: removingmysql.locked_connects
metric which is replaced bymysql.connection.errors
(#23211) -
pkg/ottl
: Allow access to the metrics slice in the metric context (#24446)
This is only a breaking change for users using OTTL in custom components. For all Contrib components this is an enhancement. -
pkg/stanza
: Make fileconsumer.PositionalScanner internal (#23999) -
pkg/stanza
: Make fileconsumer.Fingerprint internal (#23998) -
receiver/httpcheck
: Fail fast on endpoint missing scheme (#23020)
Previously, when configured with an endpoint without HTTP/HTTPS scheme like "opentelemetry.io",
the receiver would start correctly, but fail to check the endpoint, producing thehttpcheck.error
metric on every collection interval. After this change, the receiver fails to start, writing
an error log saying that you need to provide a scheme in the endpoint. -
receiver/jmx
: Change the types ofConfig.{Password,KeystorePassword,TruststorePassword}
to beconfigopaque.String
(#17273) -
httpcheckreceiver
: support scraping multiple targets (#18823) -
resourcedetectionprocessor
: Disablehost.id
by default on thesystem
detector. This restores the behavior prior to v0.72.0 when using thesystem
detector together with other detectors that sethost.id
(#21233)
To re-enablehost.id
on thesystem
detector setsystem::resource_attributes::host.id::enabled
totrue
:resourcedetection: detectors: [system] system: resource_attributes: host.id: enabled: true
-
receiver/nsxt
: Change the type ofConfig.Password
to beconfigopaque.String
(#17273) -
receiver/podman
: Change the type ofConfig.SSHPassphrase
to beconfigopaque.String
(#17273) -
receiver/postgresql
: Change the type ofConfig.Password
to beconfigopaque.String
(#17273) -
prometheusreciever
: Remove unused buffer_period and buffer_count configuration options (#24258) -
prometheusreceiver
: Add thetrim_metric_suffixes
configuration option to allow enable metric suffix trimming. (#21743, #8950)
When enabled, suffixes for unit and type are trimmed from metric names.
If you previously enabled thepkg.translator.prometheus.NormalizeName
feature gate, you will need to enable this option to have suffixes trimmed. -
receiver/pulsar
: Change the types ofConfig.Authentication.Token.Token
andConfig.Authentication.Athenz.PrivateKey
to beconfigopaque.String
(#17273) -
receiver/rabbitmq
: Change the type ofConfig.Password
to beconfigopaque.String
(#17273) -
receiver/redis
: Change the type ofConfig.Password
to beconfigopaque.String
(#17273) -
receiver/riak
: Change the type ofConfig.Password
to beconfigopaque.String
(#17273) -
receiver/saphana
: Change the type ofConfig.Password
to beconfigopaque.String
(#17273) -
receiver/snmp
: Change the types of theConfig.{AuthPassword,PrivacyPassword}
fields to be ofconfigopaque.String
(#17273) -
receiver/snowflake
: Change the type ofConfig.Password
to beconfigopaque.String
(#17273) -
receiver/solace
: Change the type ofConfig.Auth.PlainText.Password
to beconfigopaque.String
(#17273) -
spanmetricsconnector
: Histograms will not have exemplars by default (#23872)
Previously spanmetricsconnector would attach every single span as an exemplar to the histogram.
Exemplars are now disabled by default. To enable them setexemplars::enabled=true
-
receiver/vcenter
: Change the type ofConfig.Password
to beconfigopaque.String
(#17273)
🚩 Deprecations 🚩
dynatraceexporter
: Add deprecation note to Dynatrace metrics exporter (#23992)pkg/stanza
: Deprecate fileconsumer.EmitFunc in favor of fileconsumer.emit.Callback (#24036)pkg/stanza
: Deprecate filconsumer.Finder and related sortation structs and functions (#24013)servicegraphprocessor
: Service Graph Processor is deprecated in favor of the Service Graph Connector (#19737)
🚀 New components 🚀
exceptionsconnector
: A connector that generate metrics and logs from recorded applications exceptions from spans (#17272)opensearchexporter
: exports OpenTelemetry signals to OpenSearch. (#23611)routingconnector
: A connector version of the routingprocessor (#19738)
💡 Enhancements 💡
-
lokiexporter, lokitranslator
: Added settingdefault_labels_enabled
. This setting allows to make default labelsexporter
,job
,instance
,level
optional (#22156) -
windowseventlogreceiver
: Addexclude_providers
to the config. One or more event log providers to exclude from processing. (#21491) -
loadbalancingexporter
: Added docs for k8s service resolver. (#24287) -
loadbalancingexporter
: Added kubernetes service resolver to loadbalancingexporter. (#22776) -
opamp supervisor
: Add Capabilities support to Supervisor config. (#21044) -
opamp supervisor
: OpAMP Supervisor config file now supports "tls" settings in the "server" section. (#23848) -
pkg/ottl
: Add newLen
converter that computes the length of strings, slices, and maps. (#23847) -
pkg/stanza
: Add option to skip log tokenization for both tcp and udp receivers. use the 'one_log_per_packet' setting to skip log tokenization if multiline is not used. (#23440) -
redisreceiver
: Adds unit to metrics where this was missing. (#23573)
Affected metrics can be found below.- redis.role
- redis.cmd.calls
- redis.clients.connected
- redis.clients.blocked
- redis.keys.expired
- redis.keys.evicted
- redis.connections.received
- redis.connections.rejected
- redis.memory.fragmentation_ratio
- redis.rdb.changes_since_last_save
- redis.commands.processed
- redis.keyspace.hits
- redis.keyspace.misses
- redis.slaves.connected
- redis.db.keys
- redis.db.expires
-
elasticsearchexporter
: Add span duration in span store. (#14538) -
exporter/datasetexporter
: Rename 'observed_timestamp' field on the DataSet event to 'sca:observedTimestamp' and ensure the value is nanoseconds since epoch, update serializing and handling of body / message field to ensure it's consistent with other DataSet integrations and allow user to disable exporting scope information with each event by setting 'export_scope_info_on_event' logs config option to false. (#20660, #23826) -
exporter/datasetexporter
: Correctly map LogRecord severity to DataSet severity, remove redundant DataSet event message field prefix (OtelExporter - Log -) and remove redundant DataSet event fields (flags, flags.is_sampled). (#20660, #23672) -
journaldreceiver
: fail if unsufficient permissions for journalctl command (#20906) -
pkg/ottl
: Adds support for using boolean expressions with durations (#22713) -
pkg/ottl
: Adds support for using boolean expressions with time objects (#22008) -
pkg/ottl
: Add newDuration
converter to convert string to a Golang time.duration (#22015) -
kafkareceiver
: Added support for json-encoded logs for the kafkareceiver (#20734) -
resourcedetectionprocessor
: Support GCP Cloud Run Jobs in resource detection processor. (#23681) -
googlemanagedprometheusexporter
: GMP exporter now automatically adds target_info and otel_scope_info metrics. (#24372) -
googlemanagedprometheusexporter
: GMP exporter supports filtering resource attributes to metric labels. (#21654) -
hostmetricsreceiver
: Remove the need to set environment variables with hostmetricsreceiver (#23861) -
experimentalmetricmetadata
: Introduce experimental entity event data types (#23565) -
influxdbexporter
: limit size of write payload (#24001) -
k8sclusterreceiver
: Change k8s.clusterresourcequota metrics to use mdatagen (#4367) -
k8sclusterreceiver
: Change k8s.cronjob.active_jobs to use mdatagen (#10553) -
k8sclusterreceiver
: Change k8s.daemonset metrics to use mdatagen (#10553) -
k8sclusterreceiver
: Refactor k8s.job metrics to use mdatagen (#10553) -
k8sclusterreceiver
: Change k8s.replicaset metrics to use mdatagen (#10553) -
k8sclusterreceiver
: Update k8s.replicationcontroller metrics to use mdatagen (#10553) -
k8sattrprocessor
: Add k8sattr.rfc3339 feature gate to allow RFC3339 format for k8s.pod.start_time timestamp value. (#24016)
Timestamp value before and after.
2023-07-10 12:34:39.740638 -0700 PDT m=+0.020184946
,2023-07-10T12:39:53.112485-07:00
-
k8sclusterreceiver
: k8sclusterreceiver - Begin emitting entity events as logs (#24400) -
k8sclustereceiver
: Report entity state periodically (#24413) -
exporter/kafka
: Added support to Kafka exporter for configuring SASL handshake version (#21074) -
tailsamplingprocessor
: Added invert_match rule for numeric matcher, to support exclusion decision (#24563) -
cmd/mdatagen
: Simplify resource building in MetricsBuilder, suggest using ResourceBuilder instead. (#24443) -
cmd/mdatagen
: Introduce resource builder helper. (#24360) -
datadogexporter
: Add support for themetrics::sums::initial_cumulative_monotonic_value
setting (#24544)
The setting has the same values and semantics as theinitial_value
setting from thecumulativetodelta
processor -
datadogexporter
: Source resolution logic now runs all source providers in parallel to improve start times. (#24234)
All source providers now run in all environments so you may see more spurious logs from downstream dependencies when using the Datadog exporter. These logs should be safe to ignore. -
datadogexporter
: Add support for reporting host metadata from remote hosts. (#24290)
Resource attributes for each telemetry signal will be used for host metadata if the 'datadog.host.use_as_metadata' boolean attribute is set to 'true'. -
resourcedetectionprocessor
: The system detector now detects thehost.arch
semantic convention (#22939)
The GOARCH value is used on architectures that are not well-known -
pkg/ottl
: Improve error reporting for errors during statement parsing (#23840)- Failures are now printed for all statements within a context, and the statements are printed next to the errors.
- Erroneous values found during parsing are now quoted in error logs.
-
prometheusremotewrite
: improve the latency and memory utilisation of the conversion from OpenTelemetry to Prometheus remote write (#24288) -
prometheusremotewriteexporter, prometheusexporter
: Addadd_metric_suffixes
configuration option, which can disable the addition of type and unit suffixes. (#21743, #8950) -
pkg/translator/prometheusremotewrite
: Downscale exponential histograms to fit prometheus native histograms if necessary. (#17565) -
routingprocessor
: Enables processor to extract metadata from client.Info (#20913)
Enables processor to perform context based routing for payloads on the http server of otlp receiver -
processor/transform
: Report all errors from parsing OTTL statements (#24245) -
azuremonitorexporter
: Map enduser.id to Azure UserID tag (#18103)
🧰 Bug fixes 🧰
datasetexporter
: Call the correct library function then exporter is shutting down. (#24253)awscloudwatchreceiver
: emit logs from one log stream in the same resource (#22145)resourcedetectionprocessor
: avoid returning empty host.id on thesystem
detector (#24230)ecsobserver
: Don't fail with error when finding a task of EC2 launch type and missing container instance, just ignore them. This fixes behavior when task is provisioning and its containers are not assigned to instances yet. (#23279)filelogreceiver
: Fix file sort timestamp validation (#24041)lokitranslator
: Fix bug when attributes targeted in slice hint not converted to labels when log record has severity_number (#22038)prometheusreceiver
: Don't fail the whole scrape on invalid data (#24030)datadogreceiver
: Include datadog span.Resource in translated span attributes (#23150)cmd/telemetrygen
: Move the span attribute span.kind to the native Kind which is a top level trace information (#24286)pkg/stanza
: Fix issue where nil body would be converted to string (#24017)pkg/stanza
: Fix issue where syslog input ignored enable_octet_counting setting (#24073)processor/resourcedetection
: Fix docker detector not setting any attributes. (#24280)processor/resourcedetection
: Fix Heroku config option for theservice.name
andservice.version
attributes (#24355)
service.name
andservice.version
attributes were mistakenly controlled byheroku.app.name
and
heroku.release.version
options underresource_attributes
configuration introduced in 0.81.0.
This PR fixes the issue by using the correct config options named the same as the attributes.processor/resourcedetection
: make sure to use a aks config struct instead of nil to avoid collector panic (#24549)filelogreceiver
: Fix issue where files were deduplicated unnecessarily (#24235)processor/tailsamplingprocessor
: Fix data race when accessing spans during policies evaluation (#24283)zipkintranslator
: Stop dropping error tags from Zipkin spans. The old code removes all errors from those spans, rendering them useless if an actual error happened. In addition, no longer delete error tags if they contain useful information. (#16530)