Skip to content

v1.66.0/v0.160.0

Latest

Choose a tag to compare

@dmitryax dmitryax released this 02 Sep 14:38
· 3 commits to main since this release
v0.160.0
cd3455c

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

End User Changelog

🚩 Deprecations 🚩

  • pkg/confighttp: Deprecate flat keepalive fields in client and server config in favor of the new keepalive section. (#14020)
    The following client configuration fields are deprecated in favor of the keepalive section:
    • idle_conn_timeout -> keepalive::idle_conn_timeout
    • max_idle_conns -> keepalive::max_idle_conns
    • max_idle_conns_per_host -> keepalive::max_idle_conns_per_host
    • disable_keep_alives: true -> keepalive::enabled: false
      The following server configuration fields are deprecated in favor of the keepalive section:
    • idle_timeout -> keepalive::idle_timeout
    • keep_alives_enabled: false -> keepalive::enabled: false
      Deprecated fields set in the configuration keep working exactly as before and produce a
      deprecation warning when the client or server is created. Setting deprecated fields together
      with the new keepalive section is an error.
      Code migrating off the deprecated fields can use the new NewDefaultKeepaliveClientConfig
      and NewDefaultKeepaliveServerConfig functions to build a keepalive section with the
      default values.

💡 Enhancements 💡

  • all: Bump go version in all go.mod to 1.26.0, drop support on 1.25.0 (#15799)

  • all: Declare windows/amd64 tier 1 and windows/arm64 tier 2 support (#15786)

  • pkg/confmap: Remove dead isStringyStructure helper (unused since (#12793)
    This is an internal, unexported code path with no user-facing behavior change.

  • pkg/exporterhelper: Cache the request size per sizer type so byte-sized batching no longer recomputes the serialized proto size of the whole accumulated batch on every consumed request. (#12636)
    With sizer: bytes, the batcher's MinSize check called BytesSize(), which
    ignored the cached size and re-walked the entire batch's protobuf on every
    consumed request, making accumulation O(n^2) in the number of merged requests.
    The size is now cached separately for the bytes and items dimensions and
    maintained incrementally during merge/split, so the check is O(1). A single
    untyped cache could not be reused safely because the batcher and the queue may
    ask for different sizer types on the same request.

  • processor/memory_limiter: Only report memory limiter component health status when the health state changes. (#15751)

🧰 Bug fixes 🧰

  • cmd/mdatagen: Allow underscores in feature gate IDs for compatibility with component names with underscores (#15592)

  • pkg/pprofile: add bounds checks to FromLocationIndices and switchDictionary (#15697)
    FromLocationIndices now returns an error instead of panicking on an out-of-range or
    negative location index, mirroring FromAttributeIndices.
    The index checks used when merging profiles now also reject negative indices. These
    were previously reachable with a negative index decoded from an OTLP payload, which
    panicked the collector via Profiles.MergeTo.

  • pkg/service: Route OpenTelemetry SDK-internal errors (e.g. failed metric/log/trace exports) through the collector's configured logger instead of the OTel SDK's default global error handler, which always printed to stderr via log.Print regardless of the configured log encoding. (#12378)

API Changelog

🛑 Breaking changes 🛑

  • pkg/service: telemetry.Factory.CreateResource and telemetry.CreateResourceFunc now return (pcommon.Resource, string, error) instead of (pcommon.Resource, error) to expose the resource's schema URL. (#15129)
    The telemetry.Factory interface is experimental and cannot be implemented
    externally (it has an unexported method). Callers using
    telemetry.WithCreateResource must update the function signature to return
    a third string value for the schema URL.

🚩 Deprecations 🚩

  • pkg/confighttp: Deprecate flat keepalive fields in client and server config in favor of the new keepalive section. (#14020)
    The following client configuration fields are deprecated in favor of the keepalive section:
    • idle_conn_timeout -> keepalive::idle_conn_timeout
    • max_idle_conns -> keepalive::max_idle_conns
    • max_idle_conns_per_host -> keepalive::max_idle_conns_per_host
    • disable_keep_alives: true -> keepalive::enabled: false
      The following server configuration fields are deprecated in favor of the keepalive section:
    • idle_timeout -> keepalive::idle_timeout
    • keep_alives_enabled: false -> keepalive::enabled: false
      Deprecated fields set in the configuration keep working exactly as before and produce a
      deprecation warning when the client or server is created. Setting deprecated fields together
      with the new keepalive section is an error.
      Code migrating off the deprecated fields can use the new NewDefaultKeepaliveClientConfig
      and NewDefaultKeepaliveServerConfig functions to build a keepalive section with the
      default values.

💡 Enhancements 💡

  • pkg/component: Add ResourceSchemaURL field to component.TelemetrySettings to expose the collector resource's schema URL to components. (#15129)
  • pkg/exporterhelper: Migrate TimeoutConfig to schema-based configuration generated by mdatagen. (#15505)

🧰 Bug fixes 🧰

  • pkg/pprofile: add bounds checks to FromLocationIndices and switchDictionary (#15697)
    FromLocationIndices now returns an error instead of panicking on an out-of-range or
    negative location index, mirroring FromAttributeIndices.
    The index checks used when merging profiles now also reject negative indices. These
    were previously reachable with a negative index decoded from an OTLP payload, which
    panicked the collector via Profiles.MergeTo.