github open-telemetry/opentelemetry-collector v0.165.0
v1.71.0/v0.165.0

latest releases: receiver/v1.71.0, processor/v1.71.0, pipeline/v1.71.0...
40 minutes ago

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

End User Changelog

🛑 Breaking changes 🛑

  • pkg/confighttp: Remove deprecated fields IdleConnTimeout, MaxIdleConns, MaxIdleConnsPerHost, DisableKeepAlives. (#15973)

🚀 New components 🚀

  • pkg/xreceiverhelper: Add xreceiverhelper with an ObsReport that reports profile sample metrics per sample type. (#16251)
    ObsReport.EndProfilesOpBySampleType records the
    otelcol_receiver_{accepted,refused,failed}_profile_samples metrics with an additional
    sample_type attribute, formatted as "type:unit", as a single payload can hold multiple profiles
    with different sample types. Use ProfileSampleCountsByType to compute the sample counts before
    the profiles are passed to the next consumer, as the data may be mutated downstream.
    The OTLP receiver now uses EndProfilesOpBySampleType.

💡 Enhancements 💡

  • pkg/configmiddleware: allow to override the dialer used by confighttp.ToClient and configgrpc.ToClient (#16019)
  • pkg/featuregate: Allow underscores in feature gate IDs. (#16243)
  • pkg/pdata: Improve performance of pcommon.Map Get, Range, and All functions. (#16282, #16321)
  • pkg/pdata: Reduce number of allocations when updating an oneof primitive (#16226)
  • pkg/service: Service now supports configuring additional resource detectors for internal telemetry as per the update to otelconf v0.26.0. (#15869)
  • pkg/service: Warn at startup when a pipeline combines the batch processor with exporterhelper batching. (#15965)
    Detection does not cross connectors or inspect exporter wrappers that hide exporterhelper's batching capability.
  • pkg/xprocessorhelper: Instrument xprocessorhelper.NewProfiles with otelcol_processor_incoming_items, otelcol_processor_outgoing_items, and otelcol_processor_internal_duration, consistent with the other signal constructors. (#15523)
  • processor/memory_limiter: Add garbage_collector config section to allow disabling forced garbage collection via enabled field. (#15081)
  • processor/queue_batch: Promote the queue_batch processor to beta for traces, metrics, and logs, and to alpha for profiles. (#12022)
  • processor/queue_batch: Report queue and batch metrics as processor metrics (#14038)

🧰 Bug fixes 🧰

  • cmd/mdatagen: Fix panic in Attribute.TestValue() and Attribute.TestValueTwo() when handling single-element or empty enum attributes. (#15644)

  • cmd/mdatagen: Fix generated metrics tests failing when a metric migration's through_gates feature gates are promoted past alpha. (#16249)
    The generated tests now explicitly set the migration feature gates for each test case and restore
    their previous state on cleanup, instead of assuming the gates are disabled by default.
    When a gate's stage forbids the state a case needs, such as disabling a stable gate, the metrics-builder
    test skips only its gate-dependent count and warning assertions, and the per-combination versioned-metric
    sub-tests for that combination are skipped.

  • cmd/mdatagen: Generate README configuration docs for exported_configs definitions. (#16164)
    Object definitions and scalar type aliases under exported_configs are now rendered in the README after the config: table.
    Packages that only declare exported_configs can now get generated docs once their README contains the config markers.
    Components that only declare exported_configs no longer get an empty configuration table.

  • cmd/schemagen: Handle file-not-found errors when loading schemas (#15925)

  • pkg/configgrpc: Bound the zstd decoder window by the configured maximum receive message size instead of the library default. (#16280)
    A zstd frame declares its window in the header and the decoder allocated it
    before producing any output, so a small crafted message could drive a large
    allocation regardless of max_recv_msg_size_mib. The decoder is also
    returned to its pool as soon as gRPC is done with a message.

  • pkg/confighttp: Bound the zstd decoder window by max_request_body_size instead of the library default. (#16280)
    A zstd frame declares its window in the header and the decoder allocated it
    before producing any output, so a small crafted body could drive a large
    allocation regardless of the configured request body size.

  • pkg/confighttp: Accept Content-Encoding: identity as equivalent to no encoding. (#15122)

  • pkg/exporterhelper: Fix a Cannot unref freed data panic when a persistent sending queue forwards requests into another pipeline (#15256)

  • pkg/exporterhelper: With wait_for_result, canceling a request that the sending queue already accepted no longer returns early (#16255)
    Previously a canceled context made it return context.Canceled while the request was still
    delivered, so callers could report a failure for data that had been sent. Canceling still takes
    effect while nothing has been done with the request.

  • pkg/pdata: Add recursion depth limit (100) to proto unmarshalling of AnyValue, ArrayValue, KeyValueList, and KeyValue to prevent stack overflow from maliciously crafted deeply nested payloads. (#15301)

  • pkg/service: Skip graph nodes that have not been built during shutdown to prevent a panic when a partial receiver reload fails to build a receiver. (#16261)

API Changelog

🚩 Deprecations 🚩

  • pkg/componentstatus: Deprecate componentstatus.Watcher in favour of extensioncapabilities.ComponentStatusWatcher (#16304)

🚀 New components 🚀

  • pkg/xreceiverhelper: Add xreceiverhelper with an ObsReport that reports profile sample metrics per sample type. (#16251)
    ObsReport.EndProfilesOpBySampleType records the
    otelcol_receiver_{accepted,refused,failed}_profile_samples metrics with an additional
    sample_type attribute, formatted as "type:unit", as a single payload can hold multiple profiles
    with different sample types. Use ProfileSampleCountsByType to compute the sample counts before
    the profiles are passed to the next consumer, as the data may be mutated downstream.
    The OTLP receiver now uses EndProfilesOpBySampleType.

💡 Enhancements 💡

  • pkg/confighttp: Mark confighttp as stable (#9380)
  • receiver/otlp: Migrate the OTLP receiver configuration to metadata.yaml and generate its config schema from the metadata. (#16212)

Don't miss a new opentelemetry-collector release

NewReleases is sending notifications on new releases.