Skip to content

Releases: open-telemetry/opentelemetry-collector

v1.37.0/v0.131.0

29 Jul 15:42
v0.131.0
96f9a35
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.131.0

End User Changelog

πŸ›‘ Breaking changes πŸ›‘

  • confighttp: Move confighttp.framedSnappy feature gate to beta. (#10584)

πŸ’‘ Enhancements πŸ’‘

  • exporter/debug: Move to alpha stability except profiles (#13487)

  • exporterhelper: Enable exporter.PersistRequestContext feature gate by default. (#13437)
    Request context is now preserved by default when using persistent queues.
    Note that Auth extensions context is not propagated through the persistent queue.

  • pdata: Use pdatagen to generate marshalJSON without using gogo proto jsonpb. (#13450)

  • otlpreceiver: Remove usage of gogo proto which uses reflect.Value.MethodByName. Removes one source of disabling DCE. (#12747)

  • exporterhelper: Fix metrics split logic to consider metrics description into the size. (#13418)

  • service: New pipeline instrumentation now differentiates internal failures from downstream errors (#13234)
    With the telemetry.newPipelineTelemetry feature gate enabled, the "received" and "produced"
    metrics related to a component now distinguish between two types of errors:

    • "outcome = failure" indicates that the component returned an internal error;
    • "outcome = refused" indicates that the component successfully emitted data, but returned an
      error coming from a downstream component processing that data.
  • pdata: Remove usage of text/template from pdata, improves DCE. (#12747)

  • architecture: New Tier 3 platform riscv64 allowing the collector to be built and distributed for this platform. (#13462)

🧰 Bug fixes 🧰

  • exporterhelper: Prevents the exporter for being stuck when telemetry data is bigger than batch.max_size (#12893)
  • mdatagen: Fix import paths for mdatagen component (#13069)
  • otlpreceiver: Error handler correctly fallbacks to content type (#13414)
  • pdata/pprofiles: Fix profiles JSON unmarshal logic for originalPayload. The bytes have to be base64 encoded. (#13483)
  • xpdata: Fix unmarshaling JSON for entities, add e2e tests to avoid this in the future. (#13480)
  • service: Downgrade dependency of prometheus exporter in OTel Go SDK (#13429)
    This fixes the bug where collector's internal metrics are emitted with an unexpected suffix in their names when users configure the service::telemetry::metrics::readers with Prometheus
  • service: Revert Default internal metrics config now enables otel_scope_ labels (#12939, #13344)
    Reverting change temporarily due to prometheus exporter downgrade. This unfortunately re-introduces the bug that instrumentation scope attributes cause errors in Prometheus exporter. See http://github.com/open-telemetry/opentelemetry-collector/issues/12939 for details.
  • builder: Remove undocumented handling of DIST_* environment variables replacements (#13335)

API Changelog

πŸ›‘ Breaking changes πŸ›‘

  • configgrpc: Update optional fields to use configoptional.Optional field for optional values. (#13252, #13364)
    Specifically, the following fields have been updated to configoptional:

    • KeepaliveServerConfig.ServerParameters (KeepaliveServerParameters type)
    • KeepaliveServerConfig.EnforcementPolicy (KeepaliveEnforcementPolicy type)
  • xexporterhelper: Remove deprecated NewProfilesExporter function from xexporterhelper package (#13391)

πŸ’‘ Enhancements πŸ’‘

  • consumererror: Add new "Downstream" error marker (#13234)
    This new error wrapper type indicates that the error returned by a component's
    Consume method is not an internal failure of the component, but instead
    was passed through from another component further downstream.
    This is used internally by the new pipeline instrumentation feature to
    determine the outcome of a component call. This wrapper is not intended to
    be used by components directly.

  • pdata/pprofile: Introduce Equal method on the Function type (#13222)

  • pdata/pprofile: Introduce Equal method on the Link type (#13223)

  • pdata/pprofile: Add new helper method SetFunction to set a new function on a line. (#13222)

  • pdata/pprofile: Add new helper method SetLink to set a new link on a sample. (#13223)

  • pdata/pprofile: Add new helper method SetString to set or retrieve the index of a value in the StringTable. (#13225)

v1.36.1/v0.130.1

22 Jul 10:50
v0.130.1
d588ee2
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.130.1

End User Changelog

🧰 Bug fixes 🧰

  • service: Fixes bug where internal metrics are emitted with an unexpected suffix in their names when users configure service::telemetry::metrics::readers with Prometheus. (#13449)
    See more details on open-telemetry/opentelemetry-go#7039

API Changelog

v1.36.0/v0.130.0

14 Jul 14:21
v0.130.0
91ec67d
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.130.0

End User Changelog

❗ Known Issues ❗

  • Due to a bug in the internal telemetry Prometheus exporter, if you are configuring an internal telemetry Prometheus exporter, the collector's internal metrics will be emitted with an unexpected suffix in its name. For example, the metric otelcol_exporter_sent_spans__spans__total instead of otelcol_exporter_sent_spans_total. The workaround is to manually configure without_units: true in your internal telemetry Prometheus exporter config

    service:
      telemetry:
        metrics:
          readers:
            - pull:
                exporter:
                  prometheus:
                    host: 0.0.0.0
                    port: 8888
                    without_units: true

    If you are using the collector's default internal telemetry Prometheus exporter for exporting internal metrics you are unaffected.

This issue has been fixed in v0.130.1. If you are using the Collector builder, please use the builder v0.130.1 to fix this issue.

πŸ›‘ Breaking changes πŸ›‘

  • exporter/otlp: Remove deprecated batcher config from OTLP, use queuebatch (#13339)

πŸ’‘ Enhancements πŸ’‘

  • exporterhelper: Enable items and bytes sizers for persistent queue (#12881)
  • exporterhelper: Refactor persistent storage size backup to always record it. (#12890)
  • exporterhelper: Add support to configure a different Sizer for the batcher than the queue (#13313)
  • yaml: Replaced sigs.k8s.io/yaml with go.yaml.in/yaml for improved support and long-term maintainability. (#13308)

🧰 Bug fixes 🧰

  • exporterhelper: Fix exporter.PersistRequestContext feature gate (#13342)

  • exporterhelper: Preserve all metrics metadata when batch splitting. (#13236)
    Previously, when large batches of metrics were processed, the splitting logic in metric_batch.go could
    cause the name field of some metrics to disappear. This fix ensures that all metric fields are
    properly preserved when metricRequest objects are split.

  • service: Default internal metrics config now enables otel_scope_ labels (#12939, #13344)
    By default, the Collector exports its internal metrics using a Prometheus
    exporter from the opentelemetry-go repository. With this change, the Collector
    no longer sets "without_scope_info" to true in its configuration.

    This means that all exported metrics will have otel_scope_name,
    otel_scope_schema_url, and otel_scope_version labels corresponding to the
    instrumentation scope metadata for that metric.

    This notably prevents an error when multiple metrics are only distinguished
    by their instrumentation scopes and end up aliased during export.

    If this is not desired behavior, a Prometheus exporter can be explicitly
    configured with this option enabled.

API Changelog

πŸ›‘ Breaking changes πŸ›‘

  • exporterhelper: Use configoptional for sending_queue::batch field (#13345)
  • configgrpc: Update optional fields to use configoptional.Optional field for optional values. (#13250, #13252)
    Components using configgrpc package may need to update config values.
  • confighttp: Use configoptional.Optional in confighttp (#9478)
  • exporterhelper: Remove sizer map in favor of items/bytes sizers. Request based is automatically supported. (#13262)
  • pdata/pprofile: Remove field Profile.StartTime from pdata/pprofile (#13315)
    Remove Profile.StartTime from OTel Profiling signal.
  • exporterhelper: Remove deprecated old batcher config (#13003)
  • exporter/otlp: Remove deprecated batcher config from OTLP, use queuebatch (#13339)

🚩 Deprecations 🚩

  • exporterhelper: Deprecate NewRequestsSizer always supported. (#13262)
  • xexporterhelper: Introduce NewProfiles method and deprecate NewProfilesExporter (#13372)

πŸ’‘ Enhancements πŸ’‘

  • consumererror: Add Error type (#7047)
    This type can contain information about errors that allow components (e.g. exporters)
    to communicate error information back up the pipeline.

  • pdata: Document that changing pcommon.Map (Remove/removeIf/Put*) invalidates Value references obtained via Get. (#13073)

  • cmd/mdatagen: Add support for optional attribute (#12571)

  • exporterhelper: Add support to configure a different Sizer for the batcher than the queue (#13313)

  • pdata: Add support for the new resource-entity reference API as part of the experimental xpdata package. (#13264)

v1.35.0/v0.129.0

30 Jun 12:45
v0.129.0
8c7e0b7
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.129.0

End User Changelog

πŸ›‘ Breaking changes πŸ›‘

  • exporterhelper: Remove deprecated sending_queue::blocking options, use sending_queue::block_on_overflow. (#13211)

πŸ’‘ Enhancements πŸ’‘

  • mdatagen: Taught mdatagen to print the go list stderr output on failures, and to run go list where the metadata file is. (#13205)

  • service: Support setting sampler and limits under service::telemetry::traces (#13201)
    This allows users to enable sampling and set span limits on internal Collector traces using the
    OpenTelemetry SDK declarative configuration.

  • pdata/pprofile: Add new helper methods FromLocationIndices and PutLocation to read and modify the content of locations. (#13150)

  • exporterhelper: Preserve request span context and client information in the persistent queue. (#11740, #13220, #13232)
    It allows internal collector spans and client information to propagate through the persistent queue used by
    the exporters. The same way as it's done for the in-memory queue.
    Currently, it is behind the exporter.PersistRequestContext feature gate, which can be enabled by adding
    --feature-gates=exporter.PersistRequestContext to the collector command line. An exporter buffer stored by
    a previous version of the collector (or by a collector with the feature gate disabled) can be read by a newer
    collector with the feature enabled. However, the reverse is not supported: a buffer stored by a newer collector with
    the feature enabled cannot be read by an older collector (or by a collector with the feature gate disabled).

🧰 Bug fixes 🧰

  • pdata: Fix copying of optional fields when the source is unset. (#13268)
  • service: Only allocate one set of internal log sampling counters (#13014)
    The case where logs are only exported to stdout was fixed in v0.126.0;
    this new fix also covers the case where logs are exported through OTLP.

API Changelog

πŸ›‘ Breaking changes πŸ›‘

  • semconv: Removing deprecated semconv package (#13071)
  • configgrpc,confighttp: Unify return type of NewDefault*Config functions to return a struct instead of a pointer. (#13169)
  • exporterhelper: QueueBatchEncoding interface is changed to support marshaling and unmarshaling of request context. (#13188)

πŸ’‘ Enhancements πŸ’‘

  • pdata/pprofile: Introduce Equal method on the Mapping type (#13197)
  • configoptional: Make unmarshaling into None[T] work the same as unmarshaling into (*T)(nil). (#13168)
  • configoptional: Add a confmap.Marshaler implementation for configoptional.Optional (#13196)
  • pdata/pprofile: Introduce Equal methods on the Line and Location types (#13150)
  • pdata/pprofile: Add new helper method SetMapping to set a new mapping on a location. (#13197)

🧰 Bug fixes 🧰

  • confmap: Distinguish between empty and nil values when marshaling confmap.Conf structs. (#13196)

v1.34.0/v0.128.0

09 Jun 16:39
v0.128.0
ab80fb4
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.128.0

End User Changelog

πŸ›‘ Breaking changes πŸ›‘

  • service/telemetry: Mark "telemetry.disableAddressFieldForInternalTelemetry" as stable (#13152)

πŸ’‘ Enhancements πŸ’‘

  • confighttp: Update the HTTP server span naming to use the HTTP method and route pattern instead of the path. (#12468)
    The HTTP server span name will now be formatted as <http.request.method> <http.route>.
    If a route pattern is not available, it will fall back to <http.request.method>.

  • service: Use configured loggers to log errors as soon as it is available (#13081)

  • service: Remove stabilized featuregate useOtelWithSDKConfigurationForInternalTelemetry (#13152)

🧰 Bug fixes 🧰

  • telemetry: Add generated resource attributes to the printed log messages. (#13110)
    If service.name, service.version, or service.instance.id are not specified in the config, they will be generated automatically.
    This change ensures that these attributes are also included in the printed log messages.

  • mdatagen: Fix generation when there are no events in the metadata. (#13123)

  • confmap: Do not panic on assigning nil maps to non-nil maps (#13117)

  • pdata: Fix event_name skipped when unmarshalling LogRecord from JSON (#13127)

API Changelog

πŸ›‘ Breaking changes πŸ›‘

  • exporterhelper: Remove deprecated NewProfilesRequestExporter function from xexporterhelper package (#13157)
  • confighttp: Remove pointer to field cookies in confighttp.ClientConfig (#13116)
  • otlpreceiver: Use configoptional.Optional to define optional configuration sections in the OTLP receiver. Remove Unmarshal method. (#13119)
  • confighttp,configgrpc: Rename ClientConfig.TLSSetting and ServerConfig.TLSSetting to ClientConfig.TLS and ServerConfig.TLS. (#13115)
  • pdata/pprofile: Upgrade the OTLP protobuf definitions to version 1.7.0 (#13075)
    Note that the batcher is temporarily a noop.
  • pipeline: Remove deprecated MustNewID[WithName] (#13139)

πŸš€ New components πŸš€

  • configoptional: Add a new configoptional module to support optional configuration fields. (#12981)

πŸ’‘ Enhancements πŸ’‘

  • pdata: Introduce MoveAndAppendTo methods to the generated primitive slices (#13074)
  • pdata: Upgrade the OTLP protobuf definitions to version 1.7.0 (#13075)

🧰 Bug fixes 🧰

  • confmap: Correctly distinguish between nil and empty map values on the ToStringMap method (#13161)
    This means that ToStringMap() method can now return a nil map if the original value was nil.
    If you were not doing so already, make sure to check for nil before writing to the map to avoid panics.

  • confighttp: Make the NewDefaultServerConfig function return a nil TLS config by default. (#13129)

    • The previous default was a TLS config with no certificates, which would fail at runtime.

v1.33.0/v0.127.0

26 May 20:23
v0.127.0
2353b75
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.127.0

End User Changelog

🚩 Deprecations 🚩

  • semconv: Deprecating the semconv package in favour of go.opentelemetry.io/otel/semconv (#13012)

πŸ’‘ Enhancements πŸ’‘

  • exporter/debug: Display resource and scope in normal verbosity (#10515)
  • service: Add size metrics defined in Pipeline Component Telemetry RFC (#13032)
    See Pipeline Component Telemetry RFC for more details:
    • otelcol.receiver.produced.size
    • otelcol.processor.consumed.size
    • otelcol.processor.produced.size
    • otelcol.connector.consumed.size
    • otelcol.connector.produced.size
    • otelcol.exporter.consumed.size

API Changelog

πŸ›‘ Breaking changes πŸ›‘

  • mdatagen: Add context parameter for recording event to set traceID and spanID (#12571)
  • otlpreceiver: Use wrapper type for URL paths (#13046)

🚩 Deprecations 🚩

  • pipeline: Deprecate MustNewID and MustNewIDWithName (#12831)
  • pdata/profile: Replace AddAttribute with the PutAttribute helper method to modify the content of attributable records. (#12798)

πŸ’‘ Enhancements πŸ’‘

  • consumer/consumertest: Add context to sinks (#13039)
  • cmd/mdatagen: Add events in generated documentation (#12571)
  • confmap: Add a Conf.Delete method to remove a path from the configuration map. (#13064)
  • confmap: Support running Unmarshal hooks on nil values. (#12981)

v1.32.0/v0.126.0

13 May 05:29
v0.126.0
c2431f0
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.126.0

End User Changelog

πŸ›‘ Breaking changes πŸ›‘

  • configauth: Removes deprecated configauth.Authentication and extensionauthtest.NewErrorClient (#12992)
    The following have been removed:
    • configauth.Authentication use configauth.Config instead
    • extensionauthtest.NewErrorClient use extensionauthtest.NewErr instead

πŸ’‘ Enhancements πŸ’‘

  • service: Replace go.opentelemetry.io/collector/semconv usage with go.opentelemetry.io/otel/semconv (#12991)

  • confmap: Update the behavior of the confmap.enableMergeAppendOption feature gate to merge only component lists. (#12926)

  • service: Add item count metrics defined in Pipeline Component Telemetry RFC (#12812)
    See Pipeline Component Telemetry RFC for more details:

    • otelcol.receiver.produced.items
    • otelcol.processor.consumed.items
    • otelcol.processor.produced.items
    • otelcol.connector.consumed.items
    • otelcol.connector.produced.items
    • otelcol.exporter.consumed.items
  • tls: Add trusted platform module (TPM) support to TLS authentication. (#12801)
    Now the TLS allows the use of TPM for loading private keys (e.g. in TSS2 format).

🧰 Bug fixes 🧰

  • exporterhelper: Add validation error for batch config if min_size is greater than queue_size. (#12948)

  • telemetry: Allocate less memory per component when OTLP exporting of logs is disabled (#13014)

  • confmap: Use reflect.DeepEqual to avoid panic when confmap.enableMergeAppendOption feature gate is enabled. (#12932)

  • internal telemetry: Add resource attributes from telemetry.resource to the logger (#12582)
    Resource attributes from telemetry.resource were not added to the internal
    console logs.

    Now, they are added to the logger as part of the "resource" field.

  • confighttp and configcompression: Fix handling of snappy content-encoding in a backwards-compatible way (#10584, #12825)
    The collector used the Snappy compression type of "framed" to handle the HTTP
    content-encoding "snappy". However, this encoding is typically used to indicate
    the "block" compression variant of "snappy". This change allows the collector to:

    • When receiving a request with encoding 'snappy', the server endpoints will peek
      at the first bytes of the payload to determine if it is "framed" or "block" snappy,
      and will decompress accordingly. This is a backwards-compatible change.

    If the feature-gate "confighttp.framedSnappy" is enabled, you'll see new behavior for both client and server:

    • Client compression type "snappy" will now compress to the "block" variant of snappy
      instead of "framed". Client compression type "x-snappy-framed" will now compress to the "framed" variant of snappy.
    • Servers will accept both "snappy" and "x-snappy-framed" as valid content-encodings.
  • tlsconfig: Disable TPM tests on MacOS/Darwin (#12964)

API Changelog

🚩 Deprecations 🚩

  • configauth: Deprecate configauth.Authentication in favor of configauth.Config. (#12875)

πŸ’‘ Enhancements πŸ’‘

  • cmd/mdatagen: Add type definition for events in mdatagen (#12571)
  • cmd/mdatagen: Add functions for processing structured events in mdatagen (#12571)

v1.31.0/v0.125.0

28 Apr 19:34
v0.125.0
42a3ae0
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.125.0

End User Changelog

πŸ›‘ Breaking changes πŸ›‘

  • service: Lowercase values for 'otelcol.component.kind' attributes. (#12865)

  • service: Restrict the telemetry.newPipelineTelemetry feature gate to metrics. (#12856, #12933)
    The "off" state of this feature gate introduced a regression, where the Collector's internal logs were missing component attributes. See issue #12870 for more details on this bug.

    On the other hand, the "on" state introduced an issue with the Collector's default internal metrics, because the Prometheus exporter does not currently support instrumentation scope attributes.

    To solve both of these issues, this change turns on the new scope attributes for logs and traces by default regardless of the feature gate.
    However, the new scope attributes for metrics stay locked behind the feature gate, and will remain off by default until the Prometheus exporter is updated to support scope attributes.

    Please understand that enabling the telemetry.newPipelineTelemetry feature gate may break the export of Collector metrics through, depending on your configuration.
    Having a batch processor in multiple pipelines is a known trigger for this.

    This comes with a breaking change, where internal logs exported through OTLP will now use instrumentation scope attributes to identify the source component instead of log attributes.
    This does not affect the Collector's stderr output. See the changelog for v0.123.0 for a more detailed description of the gate's effects.

πŸ’‘ Enhancements πŸ’‘

  • mdatagen: Add support for attributes for telemetry configuration in metadata. (#12919)
  • configmiddleware: Add extensionmiddleware interface. (#12603, #9591)
  • configgrpc: Add gRPC middleware support. (#12603, #9591)
  • confighttp: Add HTTP middleware support. (#12603, #9591, #7441)
  • configmiddleware: Add configmiddleware struct. (#12603, #9591)

🧰 Bug fixes 🧰

  • exporterhelper: Do not ignore the num_consumers setting when batching is enabled. (#12244)
  • exporterhelper: Reject elements larger than the queue capacity (#12847)
  • mdatagen: Add time and plog package imports (#12907)
  • confmap: Maintain nil values when marshaling or unmarshaling nil slices (#11882)
    Previously, nil slices were converted to empty lists, which are semantically different
    than a nil slice. This change makes this conversion more consistent when encoding
    or decoding config, and these values are now maintained.

API Changelog

🚩 Deprecations 🚩

  • extensionauthtest: Deprecate NewErrorClient in favor of NewErrClient. (#12874)

πŸ’‘ Enhancements πŸ’‘

  • xextension/storage: ErrStorageFull error added to xextension/storage contract (#12925)
  • pdata: Add MoveTo to pcommon.Value, only type missing this (#12877)

🧰 Bug fixes 🧰

  • pdata: Fix MoveTo when moving to the same destination (#12887)

v1.30.0/v0.124.0

14 Apr 19:55
v0.124.0
cf18559
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.124.0

End User Changelog

πŸ› Known bugs πŸ›

  • service/telemetry: Missing attributes in internal Collector logs (#12870).
    • See issue description for workarounds.

πŸ’‘ Enhancements πŸ’‘

  • exporterhelper: Add support for bytes-based batching for profiles in the exporterhelper package. (#3262)
  • otelcol: Enhance config validation using command to capture all validation errors that prevents the collector from starting. (#8721)
  • exporterhelper: Link batcher context to all batched request's span contexts. (#12212, #8122)

🧰 Bug fixes 🧰

  • confighttp: Ensure http authentication server failures are handled by the provided error handler (#12666)

API Changelog

πŸ›‘ Breaking changes πŸ›‘

  • exporterbatcher: Remove deprecated package exporterbatcher (#12780)
  • exporterqueue: Remove deprecated package exporterqueue (#12779)

πŸ’‘ Enhancements πŸ’‘

  • mdatagen: Add variable for metric name in mdatagen (#12459)
    Access metric name via metadata.MetricsInfo.<metric-variable>.Name
  • client: Add support for iterating over client metadata keys (#12804)
  • service: Adds the GetFactory interface to the hostcapabilities package (#12789)
  • cmd/mdatagen: Add the foundational changes necessary for supporting logs data in mdatagen (#12571)

v1.29.0/v0.123.0

31 Mar 19:16
v0.123.0
1ad6912
Compare
Choose a tag to compare

Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.123.0

End User Changelog

❗ Known Issues ❗

  • This version increases memory usage by ~0.5 MB per component in the pipelines because a separate Zap Core logger is
    initialized for each component. The issue is partially fixed in v0.126.0 for users who write logs to stdout, but do
    not export logs via OTLP. See #13014 for more details.
  • service/telemetry: Missing attributes in internal Collector logs (#12870).
    • See issue description for workarounds.

πŸ›‘ Breaking changes πŸ›‘

  • service/telemetry: Mark telemetry.disableAddressFieldForInternalTelemetry as beta, usage of deprecated service::telemetry::address are ignored (#12756)
    To restore the previous behavior disable telemetry.disableAddressFieldForInternalTelemetry feature gate.
  • exporterbatch: Remove deprecated fields min_size_items and max_size_items from batch config. (#12684)

🚩 Deprecations 🚩

  • otlpexporter: Mark BatcherConfig as deprecated, use sending_queue::batch instead (#12726)
  • exporterhelper: Deprecate blocking in favor of block_on_overflow. (#12710)
  • exporterhelper: Deprecate configuring exporter batching separately. Use sending_queue::batch instead. (#12772)
    Moving the batching configuration to sending_queue::batch requires setting sending_queue::sizer to items
    which means that sending_queue::queue_size needs to be also increased by the average batch size number (roughly
    x5000 for the default batching configuration).
    See https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/exporterhelper#configuration

πŸ’‘ Enhancements πŸ’‘

  • exporterhelper: Add support to configure batching in the sending queue. (#12746)

  • exporterhelper: Add support for wait_for_result, remove disabled_queue (#12742)
    This has a side effect for users of the experimental BatchConfig with the queue disabled, since not this is | uses only NumCPU() consumers.

  • exporterhelper: Allow exporter memory queue to use different type of sizers. (#12708)

  • service: Add "telemetry.newPipelineTelemetry" feature gate to inject component-identifying attributes in internal telemetry (#12217)
    With the feature gate enabled, all internal telemetry (metrics/traces/logs) will include some of
    the following instrumentation scope attributes:

    • otelcol.component.kind
    • otelcol.component.id
    • otelcol.pipeline.id
    • otelcol.signal
    • otelcol.signal.output

    These attributes are defined in the Pipeline Component Telemetry RFC,
    and identify the component instance from which the telemetry originates.
    They are added automatically without changes to component code.

    These attributes were already included in internal logs as regular log attributes, starting from
    v0.120.0. For consistency with other signals, they have been switched to scope attributes (with
    the exception of logs emitted to standard output), and are now enabled by the feature gate.

    Please make sure that the exporter / backend endpoint you use has support for instrumentation
    scope attributes before using this feature. If the internal telemetry is exported to another
    Collector, a transform processor could be used to turn them into other kinds of attributes if
    necessary.

  • exporterhelper: Enable support to do batching using bytes sizer (#12751)

  • service: Add config key to set metric views used for internal telemetry (#10769)
    The service::telemetry::metrics::views config key can now be used to explicitly set the list of
    metric views used for internal telemetry, mirroring meter_provider::views in the SDK config.
    This can be used to disable specific internal metrics, among other uses.

    This key will cause an error if used alongside other features which would normally implicitly create views, such as:

    • not setting service::telemetry::metrics::level to detailed;
    • enabling the telemetry.disableHighCardinalityMetrics feature flag.

🧰 Bug fixes 🧰

  • exporterhelper: Fix order of starting between queue and batch. (#12705)

API Changelog

πŸ›‘ Breaking changes πŸ›‘

  • otlpreceiver/otlpexporter/otlphttpexporter: Avoid using go embedded messages in Config (#12718)

  • exporterqueue: Move Queue interface to internal, disallow alternative implementations (#12680)

  • extensionauth, configauth: Remove deprecated types and functions from extensionauth and configauth packages. (#12672)
    This includes:

    • extensionauth.NewClient,
    • extensionauth.ClientOption and all its implementations,
    • extensionauth.NewServer,
    • extensionauth.ServerOption and all its implementations and
    • configauth.Authenticator.GetClientAuthenticator.
  • exporterhelper: Remove deprecated converter types from exporterhelper (#12686)

  • exporterbatch: Remove deprecated fields min_size_items and max_size_items from batch config. (#12684)

🚩 Deprecations 🚩

  • exporterhelper: Deprecate BatcherConfig, SizeConfig and WithBatcher in favor of the new QueueBatchConfig. (#12748)
  • exporterbatcher: Deprecated Config, SizeConfig, SizerType, SizerType[Requests|Items|Bytes], NewDefaultConfig. Use alias from exporterhelper. (#12707)
  • exporterqueue: Deprecated Config, NewDefaultConfig, Encoding, ErrQueueFull. Use alias from exporterhelper. (#12706)
  • exporterhelper: Deprecate exporterhelper WithRequestQueue in favor of WithQueueBatch (#12679)
  • exporterhelper: Deprecate QueueConfig in favor of QueueBatchConfig. (#12746)

πŸ’‘ Enhancements πŸ’‘

  • extensionauth: Mark module as stable (#11006)
  • processor: Mark module as stable. (#12677)
  • processorhelper: Split processorhelper into a separate module. (#12678)