This changelog includes only developer-facing changes. If you are looking for user-facing changes, check out CHANGELOG.md.
s3provider: Delete deprecatedNewfactory function. UseNewFactoryinstead. (#37921)secretsmanagerprovider: Delete deprecatedNewfunction, useNewFactoryinstead (#37923)pkg/stanza: Remove deprecatedflush.WithPeriod. (#37784)pkg/stanza: Remove deprecated func BuildWithSplitFunc from stanza/fileconsumer (#37723)
pkg/stanza: Deprecate all functions in stanza/decode (#37734)
pkg/translator/prometheusremotewrite: add support for metric type sum in FromMetricsV2 (#33661) The public function is partially implemented and not ready for usepkg/datadog: Expose the internal Zaplogger implementation (#37939)dbstorageextension: Add DB Transactions to dbstorage.Batch() method as it is expected by Storage API (#37805)internal/datadog: create new packagegithub.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog/hostmetadatawhich exposesGetSourceProviderfromgithub.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog/hostmetadata(#37668)textutil: Remove unnecessary copy while decoding and constructing string (#37734) This PR affects all log receivers, text extension and kafkareceiver.telemetrygen: Exported the API for telemetrygen for test uses. Additionally added new E2E tests and fixed race condition (#36984)tailsamplingprocessor: Add support for external caches when using the Tailsampling Processor in code. (#37035)
metricstarttimeprocessor: Add the initial skeleton for the metricsstarttimeprocessor (#37186) The component is still in development and is not ready for use.
routingconnector: Changematch_onceparameter fromboolto*bool. (#29882) Boolean values should still unmarshal successfully, but direct instantiation in code will fail. The change allows us to check for usage and warn of the upcoming removal in v0.120.0.
pkg/ottl: Enhanced error messages for invalid cache access and introduced options to configure their values within the OTTL contexts. (#29017)pkg/ottl: Add value expression parser that enables components using ottl to retrieve values from the output of an expression (#35621) the expression can be either a literal value, a path value within the context, or the result of a converter and/or a mathematical expression.
pkg/ottl: Change OTTL contexts to properly handleottl.Pathwith context (#29017) The OTTL contexts have a new optionEnablePathContextNamesto enable support for expressing a statement's context via path names in the statement
routingprocessor: Deprecated in favor of the routing connector. (#36616)
pkg/ottl: Add theottl.ParserCollectionutility to help handling parsers for multiple OTTL contexts (#29017) Theottl.ParserCollectiongroups contexts'ottl.Parsers, choosing the suitable one to parse a given statement. It supports context inference using the given statements, and allows prepending the context name to the statements' paths.
pkg/datadog: Refactor the API that provides metrics translator (#36474) This is API change only and does not affect end users
pkg/stanza: Changed signature ofemit.Callbackfunction inpkg/stanza/fileconsumer/emitpackage by introducingemit.Tokenstruct that encapsulates the token's body and attributes. (#36260)
pkg/datadog: Expose an APITranslatorFromConfigthat creates a new metrics translator (#36300) This is only code refactor and has no user-facing impact
testbed:scenarios.createConfigYaml()andutils.CreateConfigYaml()functions now take processor configs as a struct slice argument instead ofmap[string]string. (#33003)- This is to preserve processor order.
ProcessorNameAndConfigBodyis the newly created struct.
- This is to preserve processor order.
receiver/prometheusremotewrite: Implement body unmarshaling for Prometheus Remote Write requests (#35624) Warning - The HTTP Server still doesn't do anything. It's just a placeholder for now.
pkg/translator/jaeger: Remove error from method signature as it always returns nil (#35560)
pkg/status: Refactors the extension/healthcheckv2extension/internal/status into pkg/status (#34692)
pkg/translator/prometheusremotewrite: add FromMetricsV2 (#33661) The public function is partially implemented and not ready for usereceiver/prometheusremotewrite: Add HTTP Server to handler Prometheus Remote Write requests (#35535) Warning - The HTTP Server still doesn't do anything. It's just a placeholder for now.
opampsupervisor: Pass config structure instead of file path when using NewSupervisor function (#34379)
all: TimeoutSettings/QueueSettings fields in various Config structs are no longer embedded (#35158) Structs in which .TimeoutSettings is no longer embedded:- carbonexporter.Config
- googlecloudpubsubreceiver.Config Structs in which .TimeoutSettings and .QueueSettings are no longer embedded:
- alertmanagerexporter.Config
- googlecloudexporter.Config
- googlemanagedprometheusexporter.Config
- otelarrowexporter.Config
datadogexporter: The datadog exporter config has been deprecated in favor of the newdatadog/configpackage. The new package is shared between the Datadog exporter and the Datadog Connector. (#35067) The newdatadog/configpackage is a shared module for Datadog exporter configuration. The module is shared between the Datadog exporter and the Datadog Connector.
-
pkg/datadog: Create a new module for Datadog exporter configuration. (#35067) This change introduces a new module for Datadog exporter configuration. The module is shared between the Datadog exporter and the Datadog Connector. -
kafkaexporter: Add option to supply destination topic through context. (#34503, #34432)
pkg/ottl: Change the OTTL grammar to support expressing statements context via path names (#29017) Theottl.Pathinterface requires a new method:Context() stringprometheusreceiver: Move the TargetAllocator configuration struct to an internal directory (#33146)
pkg/ottl: Add support for localized time parsing into the coreinternal/timeutils (#32977)googlecloudmonitoringreceiver: Enhancing the Google Cloud monitoring receiver to establish a client connection, scrape GCP Cloud Metrics, and transform them into an OpenTelemetry compatible format for pipeline processing. (#33762)- Implements client connection to Google Cloud Monitoring API.
- Scrapes timeseries data based on configured metrics.
- Converts the data into OpenTelemetry format for use in the pipeline.
pkg/stanza/operator/input/windows: Change type name fromEvtRpcLogintoEvtRPCLogin. (#34656)
googlecloudmonitoringreceiver: Adding new component - Google Cloud monitoring receiver to fetch GCP Cloud Metrics and transform to OpenTelemetry compatible format. (#33762)
internal/grpcutil: Add internal/grpcutil package with gRPC-specified timeout parsing (#33688)pmetrictest: Add support for histogram comparison options (#34521)kafkaexporter: add an ability to partition logs based on resource attributes. (#33229)
exporter/clickhouse: Unexport extra configuration methods. (#33647)exporter/clickhouse: Change internal config type forcreate_schemato use aboolinstead of*bool(#33694)pkg/ottl: Changed ScopeContext, InstrumentationResourceContext, TransformContext interfaces to make SchemaURL accessible in resources and scopes on all signals (#30229)
pkg/ottl: Add ByteSliceLikeGetter interface (#31929)
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
pkg/winperfcounters: It is now possible to force awatcherto re-create the PDH query of a given counter via theReset()function. (#32798)
prometheusreceiver: Allow to configure http client used by target allocator generated scrape targets (#18054)
exp/metrics: fixes staleness.Evict such that it only ever evicts actually stale metrics (#33265)
-
opampextension: Move custom message interfaces to separate package (#32950) MovesCustomCapabilityRegistry,CustomCapabilityHandler, andCustomCapabilityRegisterOptionto a new module. These types can now be found in the newgithub.com/open-telemetry/opentelemetry-collector-contrib/extension/opampcustommessagesmodule. -
pkg/stanza: The internal logger has been changed from zap.SugaredLogger to zap.Logger. (#32177) Functions accepting a SugaredLogger, and fields of type SugaredLogger, have been deprecated.
testbed: Add the use of connectors to the testbed (#30165)
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
confmap/provider/s3: Deprecates3provider.Newin favor ofs3provider.NewFactory(#32742)confmap/provider/secretsmanager: Deprecatesecretsmanagerprovider.Newin favor ofsecretsmanagerprovider.NewFactory(#32743)
roundrobinconnector: Add a roundrobin connector, that can help single thread components to scale (#32853)
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)
prometheusremotewrite: Optimize the prometheusremotewrite.FromMetrics function, based around more performant metric identifier hashing. (#31385)pkg/pdatatest/plogtest: Add an option to ignore log timestamp (#32540)filelogreceiver: Addexclude_older_thanconfiguration setting (#31053)
pkg/sampling: Usability improvements in the sampling API. (#31918)
datadogexporter: Remove config structsLimitedClientConfigandLimitedTLSClientSettings(#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.ScraperControllerSettingsto usescraperhelper.ControllerConfig(#31816) This changes the config field name fromScraperControllerSettingstoControllerConfigprometheusreceiver: 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.
pkg/stanza: Deprecate fileconsumer.BuildWithSplitFunc in favor of Build with options pattern (#31596)
clickhouseexporter: Allow configuringON CLUSTERandENGINEwhen creating database and tables (#24649) Increases table creation flexibility with the ability to add replication for fault toleranceall: Remove explicit checks in all receivers to check if the next consumer is nil (#31793) The nil check is now done by the pipeline builder.
cmd/mdatagen: Use enum for stability levels in the Metadata struct (#31530)httpforwarder: Remove extension named httpforwarder, use httpforwarderextension instead. (#24171)
pkg/stanza: Remove deprecated pkg/stanza/attrs (#30449)httpforwarderextension: Rename the extension httpforwarder to httpforwarderextension (#24171)extension/storage: Thefilestorageanddbstorageextensions are now standalone modules. (#31040) If using the OpenTelemetry Collector Builder, you will need to update your import paths to use the new module(s).github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestoragegithub.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/dbstorage
pkg/golden: Added an option to skip the metric timestamp normalization for WriteMetrics. (#30919)healthcheckextension: Remove usage of deprecatedhost.ReportFatalError(#30582)
testbed: Deprecate testbed.GetAvailablePort in favor of testutil.GetAvailablePort (#30811) Move healthcheckextension to use testutil.GetAvailablePort
pkg_sampling: Package of code for parsing OpenTelemetry tracestate probability sampling fields. (#29738)
testbed: Remove unused AWS XRay mock receiver (#30381)docker: Adopt api_version as strings to correct invalid float truncation (#24025)prometheusreceiver: Consolidate Config members and remove the need of placeholders. (#29901)all: Remove obsolete "// +build" directive (#30651)testbed: Expand TestCase capabilities with broken out LoadGenerator interface (#30303)
pkg/stanza: Deprecate pkg/stanza/attrs package in favor of pkg/stanza/fileconsumer/attrs (#30449)
testbed: Adds and adopts new WithEnvVar child process option, moving GOMAXPROCS=2 to initializations (#30491)
carbonexporter: Change Config member names (#29862)carbonreceiver: Hide unnecessary public API (#29895)pkg/ottl: UnexportADD,SUB,MULT,DIV,EQ,NE,LT,LTE,GT, andGTE(#29925)pkg/ottl: ChangePathto be an Interface instead of the grammar struct. (#29897) Affects creators of custom contexts.golden: Use testing.TB for golden.WriteMetrics, golden.WriteTraces and golden.WriteLogs over *testing.T (#30277)
kafkaexporter: add ability to publish kafka messages with message key of TraceID - it will allow partitioning of the kafka Topic. (#12318)kafkaexporter: Adds the ability to configure the Kafka client's Client ID. (#30144)
pkg/ottl: RenameStatementstoStatementSequence. RemoveEvalfunction fromStatementSequence, useConditionSequenceinstead. (#29598)
pkg/ottl: AddConditionSequencefor evaluating lists of conditions (#29339)
clickhouseexporter: ReplaceConfig.QueueSettingsfield withexporterhelper.QueueSettingsand removeQueueSettingsstruct (#27653)kafkareceiver: Do not export the functionWithTracesUnmarshalers,WithMetricsUnmarshalers,WithLogsUnmarshalers(#26304)
datadogreceiver: The datadogreceiver supports the new datadog protocol that is sent by the datadog agent API/v0.2/traces. (#27045)pkg/ottl: Add ability to independently parse OTTL conditions. (#29315)
cassandraexporter: Exist check for keyspace and dynamic timeout (#27633)
carbonreceiver: Do not export function New and pass checkapi. (#26304)collectdreceiver: Move to use confighttp.HTTPServerSettings (#28811)kafkaexporter: Do not export function WithTracesMarshalers, WithMetricsMarshalers, WithLogsMarshalers and pass checkapi (#26304)remoteobserverprocessor: Rename remoteobserverprocessor to remotetapprocessor (#27873)
extension/encoding: Introduce interfaces for encoding extensions. (#28686)exporter/awss3exporter: This feature allows role assumption for s3 exportation. It is especially useful on Kubernetes clusters that are using IAM roles for service accounts (#28674)
pkg/stanza: Deprecate 'flush.WithPeriod'. Use 'flush.WithFunc' instead. (#27843)
exporter/kafka, receiver/kafka, receiver/kafkametrics: Move configuration parts to an internal pkg (#27093)pulsarexporter: Do not export function WithTracesMarshalers, add test for that and pass checkapi (#26304)pulsarreceiver: Do not export the functionsWithLogsUnmarshalers,WithMetricsUnmarshalers,WithTracesUnmarshalers, add tests and pass checkapi. (#26304)
mdatagen: allows adding warning section to resource_attribute configuration (#19174)mdatagen: allow setting empty metric units (#27089)
-
azuremonitorexporter: UnexportAcceptto comply with checkapi (#26304) -
tailsamplingprocessor: UnexportSamplingProcessorMetricViewsto comply with checkapi (#26304) -
awskinesisexporter: Do not export the functionsNewTracesExporter,NewMetricsExporter,NewLogsExporterand pass checkapi. (#26304) -
dynatraceexporter: Rename struct to keep expectedexporter.Factoryand pass checkapi. (#26304) -
ecsobserver: Do not export the functionDefaultConfigand pass checkapi. (#26304) -
f5cloudexporter: Do not export the functionNewFactoryWithTokenSourceGetterand pass checkapi. (#26304) -
fluentforwardreceiver: renameLogsandDetermineNextEventModefunctions and all usage to lowercase to stop exporting method and pass checkapi (#26304) -
groupbyattrsprocessor: Do not export the functionMetricViewsand pass checkapi. (#26304) -
groupbytraceprocessor: Do not export the functionMetricViewsand pass checkapi. (#26304) -
jaegerreceiver: Do not export the functionDefaultServerConfigUDPand pass checkapi. (#26304) -
lokiexporter: Do not export the functionMetricViewsand pass checkapi. (#26304) -
mongodbatlasreceiver: Rename struct to pass checkapi. (#26304) -
mongodbreceiver: Do not export the functionNewClientand pass checkapi. (#26304) -
mysqlreceiver: Do not export the functionQuery(#26304) -
pkg/ottl: Remove support forottlarg. The struct's field order is now the function parameter order. (#25705) -
pkg/stanza: Make trim func composable (#26536)- Adds trim.WithFunc to allow trim funcs to wrap bufio.SplitFuncs.
- Removes trim.Func from split.Config.Func. Use trim.WithFunc instead.
- Removes trim.Func from flush.WithPeriod. Use trim.WithFunc instead.
-
pkg/stanza: Rename syslog and tcp MultilineBuilders (#26631)- Rename syslog.OctetMultiLineBuilder to syslog.OctetSplitFuncBuilder
- Rename tc.MultilineBuilder to tcp.SplitFuncBuilder
-
probabilisticsamplerprocessor: Do not export the functionSamplingProcessorMetricViewsand pass checkapi. (#26304) -
sentryexporter: Do not export the functionsCreateSentryExporterand pass checkapi. (#26304) -
sumologicexporter: Do not export the functionCreateDefaultHTTPClientSettingsand pass checkapi. (#26304)
pkg/ottl: Add support for optional parameters (#20879) The newottl.Optionaltype can now be used in a function'sArgumentsstruct to indicate that a parameter is optional.
-
alibabacloudlogserviceexporter: Do not export the functionNewLogServiceClient(#26304) -
awss3exporter: Do not export the functionNewMarshaler(#26304) -
statsdreceiver: rename and do not export functionNewtonewReceiverto pass checkapi (#26304) -
chronyreceiver: Removes duplicateTimeoutfield. This change has no impact on end users of the component. (#26113) -
dockerstatsreceiver: Removes duplicateTimeoutfield. This change has no impact on end users of the component. (#26114) -
elasticsearchexporter: Do not export the functionDurationAsMicroseconds(#26304) -
jaegerexporter: Do not export the functionMetricViews(#26304) -
k8sobjectsreceiver: Do not export the functionNewTicker(#26304) -
pkg/stanza: Rename 'pkg/stanza/decoder' to 'pkg/stanza/decode' (#26340) -
pkg/stanza: Move tokenize.SplitterConfig.Encoding to fileconsumer.Config.Encoding (#26511) -
pkg/stanza: Remove Flusher from tokenize.SplitterConfig (#26517) Removes the following in favor of flush.WithPeriod - tokenize.DefaultFlushPeriod - tokenize.FlusherConfig - tokenize.NewFlusherConfig -
pkg/stanza: Remove tokenize.SplitterConfig (#26537) -
pkg/stanza: Rename "tokenize" package to "split" (#26540)- Remove 'Multiline' struct
- Remove 'NewMultilineConfig' struct
- Rename 'MultilineConfig' to 'split.Config'
-
pkg/stanza: Extract whitespace trim configuration into trim.Config (#26511)- PreserveLeading and PreserveTrailing removed from tokenize.SplitterConfig.
- PreserveLeadingWhitespaces and PreserveTrailingWhitespaces removed from tcp.BaseConfig and udp.BaseConfig.
oauth2clientauthextension: Enable dynamically reading ClientID and ClientSecret from files (#26117)- Read the client ID and/or secret from a file by specifying the file path to the ClientIDFile (
client_id_file) and ClientSecretFile (client_secret_file) fields respectively. - The file is read every time the client issues a new token. This means that the corresponding value can change dynamically during the execution by modifying the file contents.
- Read the client ID and/or secret from a file by specifying the file path to the ClientIDFile (
-
memcachedreceiver: Removes duplicateTimeoutfield. This change has no impact on end users of the component. (#26084) -
podmanreceiver: Removes duplicateTimeoutfield. This change has no impact on end users of the component. (#26083) -
zookeeperreceiver: Removes duplicateTimeoutfield. This change has no impact on end users of the component. (#26082) -
jaegerreceiver: Deprecate remote_sampling config in the jaeger receiver (#24186) The jaeger receiver will fail to start if remote_sampling config is specified in it. Thereceiver.jaeger.DisableRemoteSamplingfeature gate can be set to let the receiver start and treat remote_sampling config as no-op. In a future version this feature gate will be removed and the receiver will always fail when remote_sampling config is specified. -
pkg/ottl: use IntGetter argument for Substring function (#25852) -
pkg/stanza: Remove deprecated 'helper.Encoding' and 'helper.EncodingConfig.Build' (#25846) -
pkg/stanza: Remove deprecated fileconsumer config structs (#24853) Includes | - MatchingCriteria - OrderingCriteria - NumericSortRule - AlphabeticalSortRule - TimestampSortRule -
googlecloudexporter: remove retry_on_failure from the googlecloud exporter. The exporter itself handles retries, and retrying can cause issues. (#57233)
pkg/stanza: Deprecate 'helper.EncodingConfig' and 'helper.NewEncodingConfig' (#25846)pkg/stanza: Deprecate encoding related elements of helper package, in favor of new decoder package (#26019) Includes the following deprecations | - Decoder - NewDecoder - LookupEncoding - IsNoppkg/stanza: Deprecate tokenization related elements of helper package, in favor of new tokenize package (#25914) Includes the following deprecations | - Flusher - FlusherConfig - NewFlusherConfig - Multiline - MultilineConfig - NewMultilineConfig - NewLineStartSplitFunc - NewLineEndSplitFunc - NewNewlineSplitFunc - Splitter - SplitterConfig - NewSplitterConfig - SplitNone
googlemanagedprometheus: Add aadd_metric_suffixesoption to the googlemanagedprometheus exporter. When set to false, metric suffixes are not added. (#26071)receiver/prometheus: translate units from prometheus to UCUM (#23208)
receiver/influxdb: add allowable inputs to line protocol precision parameter (#24974)
exporter/clickhouse: Change the type ofConfig.Passwordto beconfigopaque.String(#17273)all: Remove go 1.19 support, bump minimum to go 1.20 and add testing for 1.21 (#8207)solacereceiver: Move model package to the internal package (#24890)receiver/statsdreceiver: Move protocol and transport packages to internal (#24892)filterprocessor: UnexportStrictandRegexp(#24845)mdatagen: Rename the mdatagen sum fieldaggregationtoaggregation_temporality(#16374)metricstransformprocessor: Unexport elements of the Go API of the processor (#24846)mezmoexporter: Unexport theMezmoLogLineandMezmoLogBodystructs (#24842)pkg/stanza: Remove deprecated 'fileconsumer.FileAttributes' (#24688)pkg/stanza: Remove deprecated 'fileconsumer.EmitFunc' (#24688)pkg/stanza: Remove deprecatedfileconsumer.Finder(#24688)pkg/stanza: Remove deprecatedfileconsumer.BaseSortRuleandfileconsumer.SortRuleImpl(#24688)pkg/stanza: Remove deprecated 'fileconsumer.Reader' (#24688)
pkg/stanza: Deprecate helper.Encoding and helper.EncodingConfig.Build (#24980)pkg/stanza: Deprecate fileconsumer MatchingCriteria in favor of new matcher package (#24853)
changelog: Generate separate changelogs for end users and package consumers (#24014)splunkhecexporter: Add heartbeat check while startup and new config param, heartbeat/startup (defaults to false). This is different than the healtcheck_startup, as the latter doesn't take token or index into account. (#24411)k8sclusterreceiver: Allows disabling metrics and resource attributes (#24568)cmd/mdatagen: Avoid reusing the same ResourceBuilder instance for multiple ResourceMetrics (#24762)
splunkhecreceiver: aligns success resp body w/ splunk enterprise (#19219) changes resp from plaintext "ok" to json {"text":"success", "code":0}