OpenTelemetry Collector
service
: The validate
sub-command no longer validates that each pipeline's type is the same as its component types (#10031)semconv
: Add support for v1.25.0 semantic convention (#10072)builder
: remove the need to go get a module to address ambiguous import paths (#10015)pmetric
: Support parsing metric.metadata from OTLP JSON. (#10026)exporterhelper
: Fix enabled config option for batch sender (#10076)This changelog includes only developer-facing changes. If you are looking for user-facing changes, check out CHANGELOG.md.
configgrpc
: Adds NewDefault*
functions for all the config structs. (#9654)exporterqueue
: Expose ErrQueueIsFull so upstream components can retry or apply backpressure. (#10070)mdatagen
: Call connectors with routers to be the same as the service graph (#10079)builder
: Add strict version checking when using the builder. Add the temporary flag --skip-strict-versioning
for skipping this check. (#9896)
Strict version checking will error on major and minor version mismatches
between the otelcol_version
configured and the builder version or versions
in the go.mod. This check can be temporarily disabled by using the --skip-strict-versioning
flag. This flag will be removed in a future minor version.
telemetry
: Distributed internal metrics across different levels. (#7890)
The internal metrics levels are updated along with reported metrics:
basic
to normal
, which can be overridden with service::telmetry::metrics::level
configuration.normal
level:
processor_batch_batch_send_size
processor_batch_metadata_cardinality
processor_batch_timeout_trigger_send
processor_batch_size_trigger_send
detailed
level:
confighttp
: Disable concurrency in zstd compression (#8216)
cmd/builder
: Allow configuring confmap.Provider
s in the builder. (#4759)
If no providers are specified, the defaults are used.
The default providers are: env, file, http, https, and yaml.
To configure providers, use the providers
key in your OCB build
manifest with a list of Go modules for your providers.
The modules will work the same as other Collector components.
mdatagen
: enable goleak tests by default via mdatagen (#9959)
cmd/mdatagen
: support excluding some metrics based on string and regexes in resource_attributes (#9661)
cmd/mdatagen
: Generate config and factory tests covering their requirements. (#9940)
The tests are moved from cmd/builder.
confmap
: Add ProviderSettings
, ConverterSettings
, ProviderFactories
, and ConverterFactories
fields to confmap.ResolverSettings
(#9516)
This allows configuring providers and converters, which are instantiated by NewResolver
using the given factories.
exporter/otlp
: Allow DNS scheme to be used in endpoint (#4274)service
: fix record sampler configuration (#9968)service
: ensure the tracer provider is configured via go.opentelemetry.io/contrib/config (#9967)otlphttpexporter
: Fixes a bug that was preventing the otlp http exporter from propagating status. (#9892)confmap
: Fix decoding negative configuration values into uints (#9060)component
: Removed deprecated function GetExporters
from component.Host
interface (#9987)confighttp
: deprecate ToClientContext, ToServerContext, ToListenerContext, replaced by ToClient, ToServer, ToListener (#9807)configtls
: Deprecates ClientConfig.LoadTLSConfigContext
and ServerConfig.LoadTLSConfigContext
, use ClientConfig.LoadTLSConfig
and ServerConfig.LoadTLSConfig
instead. (#9945)configauth
: Adds NewDefault*
functions for all the config structs. (#9821)configtls
: Adds NewDefault*
functions for all the config structs. (#9658)pmetric
: Support metric.metadata in pdata/pmetric (#10006)service
: emit internal collector metrics with _ instead of / with OTLP export (#9774)
This is addressing an issue w/ the names of the metrics generated by the Collector for its
internal metrics. Note that this change only impacts users that emit telemetry using OTLP, which
is currently still in experimental support. The prometheus metrics already replaced /
with _
and they will do the same with _
.mdatagen
: Adds unsupported platforms to the README header (#9794)confmap
: Clarify the use of embedded structs to make unmarshaling composable (#7101)nopexporter
: Promote the nopexporter to beta (#7316)nopreceiver
: Promote the nopreceiver to beta (#7316)otlpexporter
: Checks for port in the config validation for the otlpexporter (#9505)service
: Validate pipeline type against component types (#8007)configtls
: Fix issue where IncludeSystemCACertsPool
was not consistently used between ServerConfig
and ClientConfig
. (#9835)component
: Fix issue where the components
command wasn't properly printing the component type. (#9856)otelcol
: Fix issue where the validate
command wasn't properly printing valid component type. (#9866)receiver/otlp
: Fix bug where the otlp receiver did not properly respond with a retryable error code when possible for http (#9357)component
: Restricts maximum length for component.Type
to 63 characters. (#9872)configgrpc
: Remove deprecated ToServerContext
, use ToServer
instead. (#9836)configgrpc
: Remove deprecated SanitizedEndpoint
. (#9836)configtls
: Remove Deprecated TLSSetting
, TLSClientSetting
, and TLSServerSetting
. (#9786)configtls
: Rename TLSSetting
to Config
on ClientConfig
and ServerConfig
. (#9786)confighttp
: Deprecate ToClient
,ToListener
and ToServer
use ToClientContext
,ToListenerContext
and ToServerContext
instead. (#9807)configtls
: Deprecate ClientConfig.LoadTLSConfig
and ServerConfig.LoadTLSConfig
, use ClientConfig.LoadTLSConfigContext
and ServerConfig.LoadTLSConfigContext
instead. (#9811)Introduce new module for generating pdata: pdata/testdata (#9886)
exporterhelper
: Make the WithBatcher
option available for regular exporter helpers based on OTLP data type. (#8122)
Now, WithBatcher
can be used with both regular exporter helper (e.g. NewTracesExporter) and the request-based exporter
helper (e.g. NewTracesRequestExporter). The request-based exporter helpers require WithRequestBatchFuncs
option
providing batching functions.
confmap
: Creates a logger in the confmap.ProviderSettings and uses it to log when there is a missing or blank environment variable referenced in config. For now the noop logger is used everywhere except tests. (#5615)
telemetry
: Remove telemetry.useOtelForInternalMetrics stable feature gate (#9752)exporter/nop
: Add the nopexporter
to serve as a placeholder exporter in a pipeline (#7316)
This is primarily useful for starting the Collector with only extensions enabled
or to test Collector pipeline throughput.
receiver/nop
: Add the nopreceiver
to serve as a placeholder receiver in a pipeline (#7316)
This is primarily useful for starting the Collector with only extensions enabled.
configtls
: Validates TLS min_version and max_version (#9475)
Introduces Validate()
method in TLSSetting.
configcompression
: Mark module as Stable. (#9571)
cmd/mdatagen
: Use go package name for the scope name by default and add an option to provide the scope name in metadata.yaml. (#9693)
cmd/mdatagen
: Generate the lifecycle tests for components by default. (#9683)
It's encouraged to have lifecycle tests for all components enadled, but they can be disabled if needed
in metadata.yaml with skip_lifecycle: true
and skip_shutdown: true
under tests
section.
cmd/mdatagen
: optimize the mdatagen for the case like batchprocessor which use a common struct to implement consumer.Traces, consumer.Metrics, consumer.Logs in the meantime. (#9688)
exporterhelper
: Fix persistent queue size backup on reads. (#9740)processor/batch
: Prevent starting unnecessary goroutines. (#9739)otlphttpexporter
: prevent error on empty response body when content type is application/json (#9666)confmap
: confmap honors Unmarshal
methods on config embedded structs. (#6671)otelcol
: Respect telemetry configuration when running as a Windows service (#5300)configgrpc
: Remove deprecated ToServer
function. (#9787)confignet
: Change Transport
field from string
to TransportType
(#9385)component
: Change underlying type of component.Type
to an opaque struct. (#9208)obsreport
: Remove deprecated obsreport/obsreporttest package. (#9724)component
: Remove deprecated error ErrNilNextConsumer
(#9322)connector
: Remove LogsRouter
, MetricsRouter
and TracesRouter
. Use LogsRouterAndConsumer
, MetricsRouterAndConsumer
, TracesRouterAndConsumer
respectively instead. (#9095)receiver
: Remove deprecated struct ScraperControllerSettings
and function NewDefaultScraperControllerSettings
(#6767)confmap
: Remove deprecated provider.New
methods, use NewWithSettings
moving forward. (#9443)configgrpc
: Deprecated ToServerContext
, use ToServer
instead. (#9787)configgrpc
: Deprecate SanitizedEndpoint
(#9788)exporterhelper
: Add experimental batching capabilities to the exporter helper (#8122)confignet
: Adds NewDefault*
functions for all the config structs. (#9656)configtls
: Validates TLS min_version and max_version (#9475)
Introduces Validate()
method in TLSSetting.exporterhelper
: Invalid exporterhelper options now make the exporter creation error out instead of panicking. (#9717)components
: Give NoOp components a unique name (#9637)configgrpc
: Remove deprecated GRPCClientSettings
, GRPCServerSettings
, and ServerConfig.ToListenerContext
. (#9616)confighttp
: Remove deprecated HTTPClientSettings
, NewDefaultHTTPClientSettings
, and CORSSettings
. (#9625)confignet
: Removes deprecated NetAddr
and TCPAddr
(#9614)configtls
: Add include_system_ca_certs_pool
to configtls, allowing to load system certs and additional custom certs. (#7774)otelcol
: Add ConfigProviderSettings
to CollectorSettings
(#4759)
This allows passing a custom list of confmap.Provider
s to otelcol.NewCommand
.pdata
: Update to OTLP v1.1.0 (#9587)
Introduces Span and SpanLink flags.confmap
: Update mapstructure to use a maintained fork, github.com/go-viper/mapstructure/v2. (#9634)
See https://github.com/mitchellh/mapstructure/issues/349 for context.configretry
: Allow max_elapsed_time to be set to 0 for indefinite retries (#9641)client
: Make Metadata.Get
thread safe (#9595)configgrpc
: Deprecates ToServer
. Use ToServerContext
instead. (#9624)component
: deprecate component.ErrNilNextConsumer (#9526)configtls
: Rename TLSClientSetting, TLSServerSetting, and TLSSetting based on the naming convention used in other config packages. (#9474)receivertest
: add support for metrics in contract checker (#9551)