Releases: open-telemetry/opentelemetry-collector
v1.15.0/v0.109.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.109.0
End User Changelog
🐛 Known bugs 🐛
- The
ocb
binary has an identified bug caused by the fact that some of the providers have been marked stable and the default providers in theocb
binary still use the unstable version. In order to fix this explicitly add the default providers in your otel builder config, if not already configured:
providers:
- gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.15.0
- gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.15.0
- gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v0.109.0
- gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.109.0
- gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.109.0
Alternatively you can pass the --skip-strict-version-check
flag.
🛑 Breaking changes 🛑
scraperhelper
: Remove deprecatedObsReport
,ObsReportSettings
,NewObsReport
types/funcs (#11086)confmap
: Remove stableconfmap.strictlyTypedInput
gate (#11008)confmap
: Removes stableconfmap.unifyEnvVarExpansion
feature gate. (#11007)ballastextension
: Removes the deprecated ballastextension (#10671)service
: Removes stableservice.disableOpenCensusBridge
feature gate (#11009)
🚩 Deprecations 🚩
processorhelper
: These funcs are not used anywhere, marking them deprecated. (#11083)
🚀 New components 🚀
extension/experimental/storage
: Moveextension/experimental/storage
into a separate module (#11022)
💡 Enhancements 💡
-
configtelemetry
: Add guidelines for each level of component telemetry (#10286) -
service
: moveuseOtelWithSDKConfigurationForInternalTelemetry
gate to beta (#11091) -
service
: implement a no-op tracer provider that doesn't propagate the context (#11026)
The no-op tracer provider supported by the SDK incurs a memory cost of propagating the context no matter
what. This is not needed if tracing is not enabled in the Collector. This implementation of the no-op tracer
provider removes the need to allocate memory when tracing is disabled. -
envprovider
: Mark module as stable (#10982) -
fileprovider
: Mark module as stable (#10983) -
processor
: Add incoming and outgoing counts for processors using processorhelper. (#10910)
Any processor using the processorhelper package (this is most processors) will automatically report
incoming and outgoing item counts. The new metrics are:- otelcol_processor_incoming_spans
- otelcol_processor_outgoing_spans
- otelcol_processor_incoming_metric_points
- otelcol_processor_outgoing_metric_points
- otelcol_processor_incoming_log_records
- otelcol_processor_outgoing_log_records
🧰 Bug fixes 🧰
configgrpc
: Change the value of max_recv_msg_size_mib from uint64 to int to avoid a case where misconfiguration caused an integer overflow. (#10948)exporterqueue
: Fix a bug in persistent queue that Offer can becomes deadlocked when queue is almost full (#11015)
API Changes
🛑 Breaking changes 🛑
Remove
extensiontestStatusWatcher helpers
: They were unused. They may be added back on a different module or aftercomponentstatus
is marked 1.0
(#11044)pprofile
: Change Profile ID field from a byte array to a custom data type (#11048)connector
: Remove deprecated connector builder (#11019)exporter
: Remove deprecated exporter builder (#11019)extension
: Remove deprecated extension builder (#11019)processor
: Remove deprecated processor builder (#11019)receiver
: Remove deprecated receiver builder (#11019)
🚩 Deprecations 🚩
configtelemetry
: DeprecatingTelemetrySettings.MeterProvider
in favour ofTelemetrySettings.LeveledMeterProvider
(#10912)extension
: Deprecateextension.ConfigWatcher
,extension.PipelineWatcher
andextension.Dependent
in favor of equivalents in theextensioncapabilities
module. (#11000)scraperhelper
: deprecate NewScraper, should use NewScraperWithComponentType (#11082)
🚀 New components 🚀
extensioncapabilities
: Create a new module for optional extension capabilities. (#11000)
💡 Enhancements 💡
connectorprofiles
: Add ProfilesRouterAndConsumer interface, and NewProfilesRouter method. (#11023)pprofileotlp
: Introduce grpc service implementation of pprofileotlp (#11048)pprofile
: Introduce marshalling and unmarshalling of pprofile data (#11048)service
: Support profiles in the service package (#11024)
v1.14.1/v0.108.1
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.108.0
End User Changelog
🧰 Bug fixes 🧰
mdatagen
: Fix a missing import in the generated test file (#10969)
v1.14.0/v0.108.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.108.0
End User Changelog
🛑 Breaking changes 🛑
all
: Added support for go1.23, bumped the minimum version to 1.22 (#10869)otelcol
: Remove deprecatedConfmapProvider
interface. (#10934)confmap
: Markconfmap.strictlyTypedInput
as stable (#10552)
💡 Enhancements 💡
exporter/otlp
: Add batching option to otlp exporter (#8122)builder
: Add a --skip-new-go-module flag to skip creating a module in the output directory. (#9252)component
: AddTelemetrySettings.LeveledMeterProvider
func to replace MetricsLevel in the near future (#10931)mdatagen
: AddLeveledMeter
method to mdatagen (#10933)service
: Addslevel
configuration option toservice::telemetry::trace
to allow users to disable the default TracerProvider (#10892)
This replaces the feature gateservice.noopTracerProvider
introduced in v0.107.0componentstatus
: Add new Reporter interface to define how to report a status via acomponent.Host
implementation (#10852)mdatagen
: support using a different github project in mdatagen README issues list (#10484)mdatagen
: Updates mdatagen's usage to output a complete command line example, including the metadata.yaml file. (#10886)extension
: Add ModuleInfo to extension.Settings to allow extensions to access component go module information. (#10876)confmap
: Mark module as stable (#9379)
🧰 Bug fixes 🧰
batchprocessor
: Update units for internal telemetry (#10652)confmap
: Fix bug where an unset env var used with a non-string field resulted in a panic (#10950)service
: Fix memory leaks during service package shutdown (#9165)mdatagen
: Update generated telemetry template to only include context import when there are async metrics. (#10883)mdatagen
: Fixed bug in which settingSkipLifecycle
&SkipShutdown
to true would result in a generated file with an unused importconfmaptest
(#10866)confmap
: Use string representation for field types where all primitive types are strings. (#10937)otelcol
: Preserve internal representation when unmarshaling component configs (#10552)
API Changes
🛑 Breaking changes 🛑
extensions
: RemoveStatusWatcher
interface. Usecomponentstatus.Watcher
instead. (#10777)component
: Removed Status related types and functions. Usecomponentstatus
instead. (#10777)component
: RemoveReportStatus
fromTelemetrySettings
. Usecomponentstatus.ReportStatus
instead. (#10777)componentstatus
: Make componentstatus.InstanceID immutable. (#10494)
🚩 Deprecations 🚩
scraperhelper
: deprecate NewObsReport, ObsReport, ObsReportSettings, scrapers should use NewScraperControllerReceiver (#10959)mdatagen
: Deprecating generatedMeter
func in favour ofLeveledMeter
(#10939)connector
: Deprecate connector.Builder, and move it into an internal package of the service module (#10784)exporter
: Deprecate exporter.Builder, and move it into an internal package of the service module (#10783)extension
: Deprecate extension.Builder, and move it into an internal package of the service module (#10785)processor
: Deprecate processor.Builder, and move it into an internal package of the service module (#10782)receiver
: Deprecate receiver.Builder, and move it into an internal package of the service module (#10781)
v1.13.0/v0.107.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.107.0
End User Changelog
v1.13.0/v0.107.0
🛑 Breaking changes 🛑
service
: Remove OpenCensus bridge completely, mark feature gate as stable. (#10414)confmap
: Set theconfmap.unifyEnvVarExpansion
feature gate to Stable. Expansion of$FOO
env vars is no longer supported. Use${FOO}
or${env:FOO}
instead. (#10508)service
: Removeotelcol
from Prometheus configuration. This means that any metric that isn't explicitly prefixed withotelcol_
no longer have that prefix. (#9759)
💡 Enhancements 💡
-
mdatagen
: export ScopeName in internal/metadata package (#10845)
This can be used by components that need to set their scope name manually. Will save component owners from having to store a variable, which may diverge from the scope name used by the component for emitting its own telemetry. -
semconv
: Add v1.26.0 semantic conventions package (#10249, #10829) -
mdatagen
: Expose a setting on tests::host to set up your own host initialization code (#10765)
Some receivers require a host that has additional capabilities such as exposing exporters.
For those, we can expose a setting that allows them to place a different host in the generated code. -
confmap
: Allow using any YAML structure as a string when loading configuration. (#10800)
Previous to this change, slices could not be used as strings in configuration. -
ocb
: migrate build and release of ocb binaries to opentelemetry-collector-releases repository (#10710)
ocb binaries will now be released under open-telemetry/opentelemetry-collector-releases tagged as "cmd/builder/vX.XXX.X" -
semconv
: Add semantic conventions version v1.27.0 (#10837) -
client
: Mark module as stable. (#10775)
🧰 Bug fixes 🧰
-
configtelemetry
: Add 10s read header timeout on the configtelemetry Prometheus HTTP server. (#5699) -
service
: Allow users to disable the tracer provider via the feature gateservice.noopTracerProvider
(#10858)
The service is returning an instance of a SDK tracer provider regardless of whether there were any processors configured causing resources to be consumed unnecessarily. -
processorhelper
: Fix processor metrics not being reported initially with 0 values. (#10855) -
service
: Implement thetemporality_preference
setting for internal telemetry exported via OTLP (#10745) -
configauth
: Fix unmarshaling of authentication in HTTP servers. (#10750) -
confmap
: If loading an invalid YAML string through a provider, use it verbatim instead of erroring out. (#10759)
This makes the ${env:ENV} syntax closer to how ${ENV} worked before unifying syntaxes. -
component
: Allow component names of up to 1024 characters in length. (#10816) -
confmap
: Remove original string representation if invalid. (#10787)
Go API Changelog
v1.13.0/v0.107.0
🛑 Breaking changes 🛑
otelcol
: Delete deprecated NewCommandMustSetProvider (#10778)component
: Removes the deprecatedHost.GetFactory
method. (#10771)otelcoltest
: Theotelcol.LoadConfig
method no longer sets theexpandconverter
. (#10510)ocb
: Collectors built with OCB will no longer include theexpandconverter
(#10510)exporterhelper
: Delete deprecatedexporterhelper.ObsReport
andexporterhelper.NewObsReport
(#10779, #10592)
🚩 Deprecations 🚩
expandconverter
: Deprecateexpandconverter
. (#10510)
🚀 New components 🚀
componentstatus
: Adds new componentstatus module that will soon replace status content in component. (#10730)connector/connectorprofiles
: Allow handling profiles in connector. (#10703)exporter/exporterprofiles
: Allow handling profiles in exporter. (#10702)processor/processorprofiles
: Allow handling profiles in processor. (#10691)receiver/receiverprofiles
: Allow handling profiles in receiver. (#10690)
💡 Enhancements 💡
v0.106.1
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.106.1
End User Changelog
v0.106.1
🧰 Bug fixes 🧰
configauth
: Fix unmarshaling of authentication in HTTP servers. (#10750)
cmd/builder/v0.106.1
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.106.1
v0.106.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.106.0
End User Changelog
v0.106.0
🛑 Breaking changes 🛑
-
service
: Update all metrics to includeotelcol_
prefix to ensure consistency across OTLP and Prometheus metrics (#9759)
This change is marked as a breaking change as anyone that was using OTLP for metrics will
see the new prefix which was not present before. Prometheus generated metrics remain
unchanged. -
confighttp
: DeleteClientConfig.CustomRoundTripper
(#8627)
Set (*http.Client).Transport on the *http.Client returned from ToClient to configure this. -
confmap
: When passing configuration for a string field using any provider, use the verbatim string representation as the value. (#10605, #10405)
This matches the behavior of${ENV}
syntax prior to the promotion of theconfmap.unifyEnvVarExpansion
feature gate
to beta. It changes the behavior of the${env:ENV}
syntax with escaped strings. -
component
: Adds restrictions on the character set for component.ID name. (#10673) -
processor/memorylimiter
: The memory limiter processor will no longer account for ballast size. (#10696)
If you are already using GOMEMLIMIT instead of the ballast extension this does not affect you. -
extension/memorylimiter
: The memory limiter extension will no longer account for ballast size. (#10696)
If you are already using GOMEMLIMIT instead of the ballast extension this does not affect you. -
service
: The service will no longer be able to get a ballast size from the deprecated ballast extension. (#10696)
If you are already using GOMEMLIMIT instead of the ballast extension this does not affect you.
🚀 New components 🚀
client
: Create a new go modulego.opentelemetry.io/collector/client
(#9804)
This module contains generic representations of clients connecting to different receivers.
💡 Enhancements 💡
exporterhelper
: Add data_type attribute tootelcol_exporter_queue_size
metric to report the type of data being processed. (#9943)confighttp
: Add option to include query params in auth context (#4806)configgrpc
: gRPC auth errors now return gRPC status code UNAUTHENTICATED (16) (#7646)httpprovider, httpsprovider
: Validate URIs in HTTP and HTTPS providers before fetching. (#10468)
🧰 Bug fixes 🧰
processorhelper
: update units for internal telemetry (#10647)confmap
: Increase the amount of recursion and URI expansions allowed in a single line (#10712)exporterhelper
: There is no guarantee that after the exporterhelper sends the plog/pmetric/ptrace data downstream that the data won't be mutated in some way. (e.g by the batch_sender) This mutation could result in the proceeding call to req.ItemsCount() to provide inaccurate information to be logged. (#10033)exporterhelper
: Update units for internal telemetry (#10648)receiverhelper
: Update units for internal telemetry (#10650)scraperhelper
: Update units for internal telemetry (#10649)service
: Use Command/Version to populate service name/version attributes (#10644)
Go API Changelog
v0.106.0
🛑 Breaking changes 🛑
-
configauth
: removing deprecated methods GetServerAuthenticatorContext and GetClientAuthenticatorContext (#9808) -
connector,exporter,receiver,extension,processor
: Remove deprecated funcs/structs (#10423)
Remove the following funcs & structs:- connector.CreateSettings -> connector.Settings
- connectortest.NewNopCreateSettings -> connectortest.NewNopSettings
- exporter.CreateSettings -> exporter.Settings
- exportertest.NewNopCreateSettings -> exportertest.NewNopSettings
- extension.CreateSettings -> extension.Settings
- extensiontest.NewNopCreateSettings -> extensiontest.NewNopSettings
- processor.CreateSettings -> processor.Settings
- processortest.NewNopCreateSettings -> processortest.NewNopSettings
- receiver.CreateSettings -> receiver.Settings
- receivertest.NewNopCreateSettings -> receivertest.NewNopSettings
-
component/componenttest
: Add optional ...attribute.KeyValue argument to TestTelemetry.CheckExporterMetricGauge. (#10593) -
confighttp
: Auth data type signature has changed (#4806)
As part of the linked PR, theauth
attribute was moved fromconfigauth.Authentication
to a newAuthConfig
, which contains aconfigauth.Authentication
. For end-users, this
is a non-breaking change. For users of the API, create a new AuthConfig using the
configauth.Authentication
instance that was being used before. -
mdatagen
: Remove WithAttributes option from the telemetry builder constructor. (#10608)
Attribute sets for async instruments now can be set as options to callback setters and async instruments initializers.
This allows each async instrument to have its own attribute set. -
service/extensions
: AddsOptions
toextensions.New
. (#10728)
This is only a breaking change if you are depending onextensions.New
's signature. Calls toextensions.New
are not broken.
🚩 Deprecations 🚩
component
: Deprecates Host.GetFactory. (#10709)
🚀 New components 🚀
component/componentprofiles
: Add componentprofiles module. (#10525)
💡 Enhancements 💡
exporter, processor, receiver
: Document factory functions. (#9323)component
: Document status enums and New constructors (#9822)confighttp, configgrpc
: Remove the experimental comment onIncludeMetadata
in confighttp and configgrpc (#9381)confighttp
: Addconfighttp.NewDefaultServerConfig()
to instantiate the default HTTP server configuration (#9655)consumer/consumertest
: Allow testing profiles with consumertest. (#10692)
🧰 Bug fixes 🧰
confmap
: Fix wrong expansion of environment variables escaped with$$
, e.g.$${ENV_VAR}
and$$ENV_VAR
. (#10713)
This change fixes the issue where environment variables escaped with $$ were expanded.
The collector now converts$${ENV_VAR}
to${ENV_VAR}
and$$ENV_VAR
to$ENV_VAR
without further expansion.
cmd/builder/v0.106.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.106.0
v1.12.0/v0.105.0
Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.105.0
End User Changelog
v1.12.0/v0.105.0
🛑 Breaking changes 🛑
service
: addservice.disableOpenCensusBridge
feature gate which is enabled by default to remove the dependency on OpenCensus (#10414)confmap
: Promoteconfmap.strictlyTypedInput
feature gate to beta. (#10552)
This feature gate changes the following:- Configurations relying on the implicit type casting behaviors listed on #9532 will start to fail.
- Configurations using URI expansion (i.e.
field: ${env:ENV}
) for string-typed fields will use the value passed inENV
verbatim without intermediate type casting.
💡 Enhancements 💡
configtls
: Mark module as stable. (#9377)confmap
: Remove extra closing parenthesis in sub-config error (#10480)configgrpc
: Update the default load balancer strategy to round_robin (#10319)
To restore the behavior that was previously the default, setbalancer_name
topick_first
.cmd/builder
: Add go module info the builder generated code. (#10570)otelcol
: Add go module to components subcommand. (#10570)confmap
: Add explanation to errors related toconfmap.strictlyTypedInput
feature gate. (#9532)confmap
: Allow usingmap[string]any
values in string interpolation (#10605)
🧰 Bug fixes 🧰
builder
: provide context when a module in the config is missing its gomod value (#10474)confmap
: Fixes issue where confmap could not escape$$
whenconfmap.unifyEnvVarExpansion
is enabled. (#10560)mdatagen
: fix generated comp test for extensions and unused imports in templates (#10477)otlpreceiver
: Fixes a bug where the otlp receiver's http response was not properly translating grpc error codes to http status codes. (#10574)exporterhelper
: Fix incorrect deduplication of otelcol_exporter_queue_size and otelcol_exporter_queue_capacity metrics if multiple exporters are used. (#10444)service/telemetry
: Add ability to set service.name for spans emitted by the Collector (#10489)internal/localhostgate
: Correctly log info message whencomponent.UseLocalHostAsDefaultHost
is enabled (#8510)
Go API Changelog
v1.12.0/v0.105.0
🛑 Breaking changes 🛑
otelcol
: Obtain the Collector's effective config from otelcol.Config (#10139)
otelcol.Collector
will now marshalconfmap.Conf
objects fromotelcol.Config
itself.otelcoltest
: Remove deprecated methodsLoadConfigWithSettings
andLoadConfigAndValidateWithSettings
(#10512)
🚩 Deprecations 🚩
configauth
: DeprecatedAuthentication.GetClientAuthenticatorContext
andAuthentication.GetServerAuthenticatorContext
(#10578)otelcol
: Deprecateotelcol.ConfmapProvider
(#10139)
otelcol.Collector
will now marshalconfmap.Conf
objects fromotelcol.Config
itself.otelcol
: Deprecate(*otelcol.ConfigProvider).GetConfmap
(#10139)
Call(*confmap.Conf).Marshal(*otelcol.Config)
to get the Collector's configuration.exporterhelper
: Deprecate the obsreport API in the exporterhelper package. (#10592)
🚀 New components 🚀
consumer/consumerprofiles
: Allow handling profiles in consumer. (#10464)