Skip to content

Releases: open-telemetry/opentelemetry-collector

v1.62.0/v0.156.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 07:29
v0.156.0
0a6056f

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

End User Changelog

💡 Enhancements 💡

  • cmd/mdatagen: Add support for defining stability levels for resource attributes (#15312)
  • cmd/mdatagen: Add semantic convention reference to resource attributes (#15313)
  • processor/memory_limiter: Adding health events for the memorylimiter (#14700)
    Publish health event from memorylimiter using componentstatus.ReportStatus

🧰 Bug fixes 🧰

  • cmd/mdatagen: Removes the extra line in the documentation.md between extended description and table (#15458)

  • exporter/otlp_http: Treat errors parsing successful (2xx) HTTP response bodies as permanent errors to prevent retrying already-accepted data. (#15386)
    When a server returns a 2xx status but the response body exceeds the 64kB read limit,
    the body is truncated and proto unmarshaling fails. Previously this was treated as a
    retryable error, causing duplicate data to be exported. Now it is marked as a permanent
    error so the retry logic will not re-send data that was already accepted by the server.

  • pkg/config/configretry: Always validate BackOffConfig fields regardless of the Enabled flag. (#15437)

  • pkg/service: Ensure receivers always start after all other components (#15495)
    There was previously a race condition where multiple receivers using a shared internal implementation,
    such as the OTLP receiver, could start sending telemetry into a pipeline before all its components had fully started.

  • processor/memory_limiter: Fix degenerate collector performance when exporter has problems causing permanent CPU-burning GC loop (#4981)
    Forced GC runs now use exponential backoff when deemed ineffective
    (still above soft limit and less than 5% reclaimed) to avoid preventing
    recovery by overloading CPU with excessive GC runs. The cap on the
    backoff interval is exposed via max_gc_interval_when_soft_limited and
    max_gc_interval_when_hard_limited (both default 30s); set either to
    0 to disable backoff on that path.

  • provider/env: Fix empty env var default resolving to nil instead of empty string (#14587)
    When using ${env:VAR:-} with an unset variable, the empty default now correctly
    resolves to an empty string instead of nil.

API Changelog

🛑 Breaking changes 🛑

  • pkg/pprofile: add bounds checks to FromAttributeIndices (#15517)

💡 Enhancements 💡

  • cmd/mdatagen: Add field_name field to go_struct config in metadata.yaml to allow customizing the Go struct field name for generated config properties. (#15486)
  • cmd/mdatagen: Handle enum validators in generated config structs (#14805)
    Supported validators include enum.
  • cmd/mdatagen: Generate named Go types for primitive exported config schemas. (#15487)
    Primitive exported configs for string, integer, number, and boolean schemas now produce distinct exported types while default values and validation remain on referencing fields.

🧰 Bug fixes 🧰

  • pkg/pprofile: fix wrong error sentinel in SetString (#15511)

v1.61.0/v0.155.0

Choose a tag to compare

@github-actions github-actions released this 23 Jun 16:56
v0.155.0
41da2fb

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

End User Changelog

🛑 Breaking changes 🛑

  • pkg/confighttp: Remove stabilized gate confighttp.framedSnappy (#15420)
  • pkg/configoptional: Remove stabilized gate configoptional.AddEnabledField. (#15421)
  • pkg/confmap: Remove stabilized featuregate confmap.newExpandedValueSanitizer (#15418)
  • pkg/exporterhelper: Remove stable gate exporter.PersistRequestContext. (#15424)
  • pkg/otelcol: Remove stable gate otelcol.printInitialConfig (#15425)
  • pkg/service: Remove stable featuregate telemetry.UseLocalHostAsDefaultMetricsAddress (#15419)
  • pkg/xpdata: Remove stable gate pdata.enableRefCounting. (#15426)
  • processor/memory_limiter: Rename deprecated memory limiter metrics to include the memory_limiter prefix (e.g. otelcol_processor_memory_limiter_*) to clarify they are specific to this processor. (#11203)

🚀 New components 🚀

  • cmd/schemagen: Move the schemagen CLI from opentelemetry-collector-contrib to this repository as cmd/schemagen. (#14543)
    The tool's source is identical to the upstream contrib version
    (github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen) except for the module path and
    the test fixtures' namespace, which now reflect the collector module
    (go.opentelemetry.io/collector/cmd/schemagen). A contrib-only integration test that pointed at three
    contrib components is removed; contrib's existing make generate-schemas + git-diff CI continues to
    exercise the FactoryMaps feature against real-world components.

💡 Enhancements 💡

  • cmd/mdatagen: Add support for versioned metrics (#15309)
    Allows metadata to specify versioned metrics for migrating to new semantic conventions.
    There are two scenarios catered for when the metric name stays the same during migration.
    When a metric name stays the same but its type differs, just the latest metric is
    emitted with the new type.
    When a metric name stays the same but its attributes differ, the latest version
    is emitted with combined attributes during the migration period.

  • cmd/schemagen: Add overlayFile support to deep-merge hand-curated schema fragments into generated schemas. (#14543)
    Components can declare an overlayFile in .schemagen.yaml pointing to a YAML file
    whose keys are recursively merged into the auto-generated schema after generation.
    This allows injecting descriptions, constraints, or additional properties that cannot
    be derived from Go types.
    Originally added to the contrib copy of cmd/schemagen in
    open-telemetry/opentelemetry-collector-contrib#48917 and brought over with the tool
    in this move.

  • cmd/schemagen: Add -p flag to specify a custom Go package pattern for the config struct. (#14543)
    The new -p flag lets callers override the default . package pattern with an arbitrary
    Go package selector (e.g. a sub-package whose Config type schemagen should walk).
    Originally added to the contrib copy of cmd/schemagen in
    open-telemetry/opentelemetry-collector-contrib#48966 and brought over with the tool
    in this move.

🧰 Bug fixes 🧰

  • cmd/mdatagen: Fix an issue when the last feature gate is removed, stale files are left. (#15423)
  • cmd/mdatagen: Fix known acronyms at the end of generated Go identifiers to be all-caps, same as in any other position (#15438)
  • cmd/schemagen: Fix mode detection when using -p to target a package outside the current directory. (#15453)
    A new -m component|package flag is available as a manual override when auto-detection is not possible.

API Changelog

🛑 Breaking changes 🛑

  • cmd/mdatagen: Remove the reaggregation_enabled metadata setting and always generate per-metric reaggregation config. (#15305)
    Legacy metadata files that still contain reaggregation_enabled are accepted, but the value is ignored.

🚩 Deprecations 🚩

  • pkg/service: Deprecate service.Settings.CollectorConf and extensioncapabilities.ConfigWatcher in favor of service.Settings.ConfigSnapshot and extensioncapabilities.ConfigSnapshotWatcher, which provide effective and unexpanded configuration representations. (#15432)

💡 Enhancements 💡

  • pkg/config/configmiddleware: Migrated middleware config to schema based (#15440)
  • pkg/pdata: Add DisallowUnknownFields option to JSONUnmarshaler in plog, ptrace, pmetric, pprofile, and xpdata to error on JSON fields not defined by the OTLP schema. (#15279)
    When DisallowUnknownFields is false (the default), unknown fields are silently ignored, matching the previous behavior.
    Warning: enabling this option breaks forwards compatibility with future evolutions of the OTLP format, as fields added to the format in newer versions will be rejected as unknown.

🧰 Bug fixes 🧰

  • cmd/mdatagen: Fix known acronyms at the end of generated Go identifiers to be all-caps, same as in any other position (#15438)

v1.60.0/v0.154.0

Choose a tag to compare

@github-actions github-actions released this 08 Jun 23:51
v0.154.0
dbed6ad

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

End User Changelog

🛑 Breaking changes 🛑

  • cmd/builder: The --skip-get-modules flag will no longer regenerate your go.mod file. (#15390)
    This is mostly a bug fix, as it led to adverse behaviour that was unintended in the described flow in the README.
    Now when you run --skip-get-modules, your go.mod file will truly be untouched by ocb as the info log claims.

💡 Enhancements 💡

  • pkg/config/configtls: Add include_insecure_cipher_suites to configtls to enable insecure cipher suites. Insecure cipher suites are disabled by default for security. (#13829)
  • pkg/confighttp: Add ExposedHeaders field to CORSConfig to allow setting the Access-Control-Expose-Headers response header. (#15119)

🧰 Bug fixes 🧰

  • cmd/mdatagen: Removes the extra line in the README.md between status and description (#15306)
  • pkg/exporterhelper: Fix nil-pointer panic in sending_queue::batch Unmarshal when sending_queue::sizer is set and sending_queue::batch::enabled is false. (#14687)
    When sending_queue::sizer was set and sending_queue::batch::enabled: false
    cleared the batch Optional to None, the sizer-inheritance branch in
    queuebatch.Config.Unmarshal dereferenced a nil Optional and crashed the
    collector at startup. The branch now also requires Batch.HasValue().

API Changelog

💡 Enhancements 💡

  • cmd/mdatagen: Handle numeric validators in generated config structs (#14806)
    Supported validators include minimum, maximum, exclusiveMinimum and exclusiveMaximum.
  • pkg/config/configtls: Add include_insecure_cipher_suites to configtls to enable insecure cipher suites. Insecure cipher suites are disabled by default for security. (#13829)
  • pkg/confighttp: Add ExposedHeaders field to CORSConfig to allow setting the Access-Control-Expose-Headers response header. (#15119)

v1.59.0/v0.153.0

Choose a tag to compare

@github-actions github-actions released this 25 May 08:09
v0.153.0
452cae1

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

End User Changelog

🛑 Breaking changes 🛑

  • pkg/configoptional: Stabilize feature gate configoptional.AddEnabledField (#15333)
  • pkg/confmap: Stabilize confmap.newExpandedValueSanitizer feature gate (#15339)
  • pkg/exporterhelper: mark exporter.PersistRequestContext as stable (#15330)
  • pkg/otelcol: Stabilize otelcol.printInitialConfig gate (#15340)
  • pkg/pdata: Remove pdata.useCustomProtoEncoding feature gate (#15332)
  • pkg/service: Stabilize telemetry.UseLocalHostAsDefaultMetricsAddress gate (#15342)
  • pkg/xpdata: Stabilize pdata.enableRefCounting feature gate (#15331)

🧰 Bug fixes 🧰

  • pkg/config/configgrpc: Fix memory corruption and fatal error in Snappy (#15237, #15320)

API Changelog

🛑 Breaking changes 🛑

  • cmd/mdatagen: Enable reaggregation config generation by default; set reaggregation_enabled: false to keep generating metric config with only the enabled field. (#14689)

💡 Enhancements 💡

  • cmd/mdatagen: Enforce stricter feature_gates validation in metadata.yaml by default. (#15310)
    Strict validation can be skipped on a per-gate basis by setting
    skip_strict_validation: true on the gate entry.

  • cmd/mdatagen: Support generating config schema and Go config types for package metadata that defines reusable configs under $defs. (#15235)

  • cmd/mdatagen: Generate config documentation table and inject it into README.md between sentinel comments (#14564)
    When a component defines a config: section in its metadata.yaml, mdatagen now
    generates a Markdown configuration table and injects it into README.md between:

    The table lists every YAML-visible property (including fields from embedded structs),
    with type, default value, required status, and description. Nested objects generate
    sub-tables linked from the parent row. Components whose README lacks the sentinel
    markers are unaffected.

  • pkg/configoptional: Add methods allowing scalar unmarshaling (#15175)

  • pkg/scraperhelper: Switch scraperhelper.ControllerConfig to schema-based generated configuration and publish its reusable controller_config schema. (#15258)

  • pkg/xconfmap: Add ScalarMarshaler and ScalarUnmarshaler interfaces to allow custom marshaling and unmarshaling of wrapped scalar values. (#15175)

  • pkg/xextension/storage: Add Walker interface, WalkFunc type, and SkipAll error value to support iterating over storage key/value entries. (#15190, #15191)
    A storage Client may optionally implement the Walker interface to allow
    consumers to range through all stored entries. This enables use cases such
    as storage migrations and TTL-based garbage collection.

v1.58.0/v0.152.1

Choose a tag to compare

@github-actions github-actions released this 19 May 19:53
v0.152.1
1da2f32

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

End User Changelog

💡 Enhancements 💡

  • pkg/exporterhelper: Add otelcol_exporter_in_flight_requests metric to track the number of export requests currently in-flight per exporter. (#15009)
    This UpDownCounter increments in startOp and decrements in endOp, allowing operators to monitor
    concurrent export activity and detect when an exporter is saturating its worker pool.

🧰 Bug fixes 🧰

  • pkg/confighttp: Close the original request body after reading block-format Content-Encoding: snappy requests. (#15262)

  • pkg/confighttp: Recover from panics in decompression libraries, return HTTP 400 instead of 500. (#13228)

  • pkg/confighttp: Enforce max_request_body_size on Content-Encoding: snappy requests before the decoded buffer is allocated. (#15252)

  • pkg/otelcol: Stop emitting verbose gRPC transport messages at WARN during normal client disconnect. (#5169)
    grpc-go gates chatty per-RPC notices (e.g. "HandleStreams failed to read frame:
    connection reset by peer") behind LoggerV2.V(2). zapgrpc.Logger.V conflates
    grpclog verbosity with zap severity, so V(2) returns true whenever WARN is
    enabled and these messages emit at WARN. Wrap the installed grpclog.LoggerV2
    with a corrected V() that compares against a fixed verbosity threshold,
    matching grpclog's intended semantics. See uber-go/zap#1544.

  • pkg/pdata: pcommon.Value.AsString no longer HTML-escapes <, >, and & inside ValueTypeMap and ValueTypeSlice values, matching the behavior already used for ValueTypeStr. (#14662)

  • pkg/service: Fix Prometheus config defaults mismatch when host is explicitly set in telemetry configuration. (#13867)
    When users explicitly configured the telemetry metrics section (e.g. to change the host),
    the Prometheus exporter boolean fields (WithoutScopeInfo, WithoutUnits, WithoutTypeSuffix)
    defaulted to nil/false instead of true, causing metric name format changes compared to the
    implicit default configuration. This fix applies the correct defaults during config unmarshaling.

  • pkg/service: Return noop tracer provider when no trace processors are defined (#15135)

API Changelog

🚩 Deprecations 🚩

  • pkg/xconfmap: Deprecate xconfmap.Validator and confmap.Validate in favor of confmap.Validator and confmap.Validate. (#15142)

💡 Enhancements 💡

  • cmd/mdatagen: Add go_struct.ignore_default flag to suppress default value generation for individual config fields. (#15156)
    Setting go_struct.ignore_default: true on a config field causes mdatagen to omit that field's default
    from the generated createDefaultConfig function, emitting nil for pointer fields
    and configoptional.None for optional fields.

  • pkg/confmap: Add the confmap.Validator interface and confmap.Validate function for configuration validation. (#15142)
    Config structs should generally implement the interface to provide validation
    of their fields. The confmap.Validate function can be used to validate
    config structs in testing, but is only meant to be called at runtime by the
    Collector itself.

🧰 Bug fixes 🧰

  • pkg/pdata: pcommon.Value.AsString no longer HTML-escapes <, >, and & inside ValueTypeMap and ValueTypeSlice values, matching the behavior already used for ValueTypeStr. (#14662)

v1.58.0/v0.152.0

Choose a tag to compare

@github-actions github-actions released this 11 May 11:48
v0.152.0
87cef93

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

End User Changelog

💡 Enhancements 💡

  • pkg/exporterhelper: Add otelcol_exporter_in_flight_requests metric to track the number of export requests currently in-flight per exporter. (#15009)
    This UpDownCounter increments in startOp and decrements in endOp, allowing operators to monitor
    concurrent export activity and detect when an exporter is saturating its worker pool.

🧰 Bug fixes 🧰

  • pkg/confighttp: Close the original request body after reading block-format Content-Encoding: snappy requests. (#15262)

  • pkg/confighttp: Recover from panics in decompression libraries, return HTTP 400 instead of 500. (#13228)

  • pkg/confighttp: Enforce max_request_body_size on Content-Encoding: snappy requests before the decoded buffer is allocated. (#15252)

  • pkg/otelcol: Stop emitting verbose gRPC transport messages at WARN during normal client disconnect. (#5169)
    grpc-go gates chatty per-RPC notices (e.g. "HandleStreams failed to read frame:
    connection reset by peer") behind LoggerV2.V(2). zapgrpc.Logger.V conflates
    grpclog verbosity with zap severity, so V(2) returns true whenever WARN is
    enabled and these messages emit at WARN. Wrap the installed grpclog.LoggerV2
    with a corrected V() that compares against a fixed verbosity threshold,
    matching grpclog's intended semantics. See uber-go/zap#1544.

  • pkg/pdata: pcommon.Value.AsString no longer HTML-escapes <, >, and & inside ValueTypeMap and ValueTypeSlice values, matching the behavior already used for ValueTypeStr. (#14662)

  • pkg/service: Fix Prometheus config defaults mismatch when host is explicitly set in telemetry configuration. (#13867)
    When users explicitly configured the telemetry metrics section (e.g. to change the host),
    the Prometheus exporter boolean fields (WithoutScopeInfo, WithoutUnits, WithoutTypeSuffix)
    defaulted to nil/false instead of true, causing metric name format changes compared to the
    implicit default configuration. This fix applies the correct defaults during config unmarshaling.

  • pkg/service: Return noop tracer provider when no trace processors are defined (#15135)

API Changelog

🚩 Deprecations 🚩

  • pkg/xconfmap: Deprecate xconfmap.Validator and confmap.Validate in favor of confmap.Validator and confmap.Validate. (#15142)

💡 Enhancements 💡

  • cmd/mdatagen: Add go_struct.ignore_default flag to suppress default value generation for individual config fields. (#15156)
    Setting go_struct.ignore_default: true on a config field causes mdatagen to omit that field's default
    from the generated createDefaultConfig function, emitting nil for pointer fields
    and configoptional.None for optional fields.

  • pkg/confmap: Add the confmap.Validator interface and confmap.Validate function for configuration validation. (#15142)
    Config structs should generally implement the interface to provide validation
    of their fields. The confmap.Validate function can be used to validate
    config structs in testing, but is only meant to be called at runtime by the
    Collector itself.

🧰 Bug fixes 🧰

  • pkg/pdata: pcommon.Value.AsString no longer HTML-escapes <, >, and & inside ValueTypeMap and ValueTypeSlice values, matching the behavior already used for ValueTypeStr. (#14662)

v1.57.0/v0.151.0

Choose a tag to compare

@github-actions github-actions released this 28 Apr 18:57
v0.151.0
ec10822

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

End User Changelog

🛑 Breaking changes 🛑

  • cmd/builder: In the generated Collector source, the replace statements in the Go module will now use relative paths by default. (#15097)
    We expect that this will not break existing use-cases where the generated collector is only used in an interim manner for builds. It enables the possibility of tracking the generated Collector code as a longer living artifact, allowing it to be run on any machine (whereas absolute paths will be different depending on the machine the Collector source is generated on.) We have added dist::use_absolute_replace_paths to go back to the absolute path behaviour in the case where there is an unforeseen use-case that requires absolute paths.

  • pkg/confighttp: Stabilize framedSnappy feature gate. (#15096)

💡 Enhancements 💡

  • all: Add declarative schema support for service telemetry resource configuration. (#14411)
    The service::telemetry::resource configuration now accepts the declarative schema with explicit name/value pairs:

    service:
      telemetry:
        resource:
          schema_url: https://opentelemetry.io/schemas/1.38.0
          attributes:
            - name: service.name
              value: my-collector
            - name: host.name
              value: collector-host

    The legacy inline attribute map format is still supported for backward compatibility:

    service:
      telemetry:
        resource:
          service.name: my-collector
          host.name: collector-host

    Note: resource.detectors is accepted for forward compatibility but is not yet applied by the collector.

  • exporter/otlp_grpc: Added the server.address and url.path attributes to metrics generated by the otlp exporter. (#14998)

  • exporter/otlp_http: Added the server.address and url.path attributes to metrics generated by the otlp_http exporter. (#14998)

  • pkg/config/configgrpc: Add UserAgent field to ClientConfig to allow overriding the default gRPC user-agent string. (#14686)
    The otlp gRPC exporter was unconditionally setting the User-Agent via
    grpc.WithUserAgent() at dial time, which takes precedence over per-call
    metadata, causing any user-configured User-Agent to be silently discarded.
    A dedicated UserAgent field has been added to ClientConfig which, when
    set, is used in the dial option directly instead of the default BuildInfo-derived string.

  • pkg/config/configgrpc: Accept gRPC resolver scheme URIs in client endpoint (e.g. passthrough:///host:port) to allow control over name resolution (#14990)
    After the migration to grpc.NewClient, some gRPC client components such as the OTLP
    exporter experienced connection issues in dual-stack DNS environments. This can now be
    fixed by using the passthrough:/// gRPC resolver scheme in the endpoint field.

  • pkg/config/confignet: Add support for Windows Named Pipe (npipe) transport (#15085)

  • pkg/service: Emit a warning when using the old v0.2.0 declarative config format (#15088)

🧰 Bug fixes 🧰

  • pkg/otelcol: Print components exactly once in the otelcol components command (#14682)
    This resolves an issue where aliased components were skipped.

  • pkg/otelcol: Synchronize Collector Run and Shutdown lifecycles so that Shutdown blocks until Run completes all cleanup. (#4947)
    Shutdown now blocks until Run finishes cleanup, matching http.Server semantics.
    If Shutdown is called before Run, the next Run call returns nil after cleaning up
    the config provider.

  • pkg/pdata: Use spec-compliant string representation for NaN, Infinity, and -Infinity in Value.AsString(). (#14487)

  • pkg/pprofile: Fix data corruption of resource and scope attributes after marshal-unmarshal-merge round-trip. (#15084)

  • pkg/service: Non-string resource attributes in telemetry configuration now return an error instead of panicking (#15171)

  • pkg/xscraperhelper: fix the merge of profiles in the profiling scraper helpers (#14790)

  • receiver/otlp: Fix profiles receiver reporting its samples as spans (#15089)

API Changelog

🛑 Breaking changes 🛑

  • receiver/otlp: Config.Protocols is now a named field instead of an anonymous embedded field. (#15178)
    Access to cfg.GRPC and cfg.HTTP must be updated to cfg.Protocols.GRPC and cfg.Protocols.HTTP.

🚩 Deprecations 🚩

  • cmd/mdatagen: The DefaultMetricsBuilderConfig function is deprecated. Use NewDefaultMetricsBuilderConfig instead. (#15165)
    The generated DefaultMetricsBuilderConfig function has been renamed to NewDefaultMetricsBuilderConfig
    to follow Go naming conventions. The old function is kept as a deprecated wrapper and will be removed
    in a future release.

💡 Enhancements 💡

  • cmd/mdatagen: Handle default values for configuration fields in generated code in mdatagen. (#14560)

  • cmd/mdatagen: Add opt-in override_value support for resource_attributes config via override_value_enabled flag (#15109)
    Components can opt in by setting override_value_enabled: true in their metadata.yaml.
    When enabled, per-attribute config types are generated with typed override_value fields
    that let users override resource attribute values in the collector configuration.
    Components without the flag continue to use the shared ResourceAttributeConfig type.

  • cmd/mdatagen: Extend mdatagen config code generation to correctly handle default values for allOf embedded references (#14560)

  • cmd/mdatagen: Handle string validators in generated config structs (#14807)
    Supported validators include minLength, maxLength and pattern.

  • pkg/config/configgrpc: Add a DefaultBalancerName constant for the name of the default load balancer (#15139)
    This replaces the BalancerName function.

  • pkg/config/configgrpc: Accept gRPC resolver scheme URIs in client endpoint (e.g. passthrough:///host:port) to allow control over name resolution (#14990)
    After the migration to grpc.NewClient, some gRPC client components such as the OTLP
    exporter experienced connection issues in dual-stack DNS environments. This can now be
    fixed by using the passthrough:/// gRPC resolver scheme in the endpoint field.

  • pkg/exporterhelper: Added the WithAttrs option to allow custom attributes on exporter metrics (#14998)

🧰 Bug fixes 🧰

  • cmd/mdatagen: Fix a bug in mdatagen where the allOf field was not being properly handled, resulting in incorrect generation of data models. (#15153)

  • pkg/otelcol: Synchronize Collector Run and Shutdown lifecycles so that Shutdown blocks until Run completes all cleanup. (#4947)
    Shutdown now blocks until Run finishes cleanup, matching http.Server semantics.
    If Shutdown is called before Run, the next Run call returns nil after cleaning up
    the config provider.

  • pkg/pdata: Use pool-aware constructors in gRPC service handlers so top-level request structs participate in the sync.Pool lifecycle. (#14763)
    The gRPC service handlers for all signal types allocated the top-level
    ExportXxxServiceRequest with bare new(), bypassing the sync.Pool when
    pdata.useProtoPooling is enabled. This caused objects returned to the pool
    via Delete to never be retrieved. The handlers now use the pool-aware
    New*() constructors.

v1.56.0/v0.150.0

Choose a tag to compare

@github-actions github-actions released this 13 Apr 11:06
v0.150.0
255690f

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

End User Changelog

💡 Enhancements 💡

🧰 Bug fixes 🧰

  • exporter/debug: Guard from out of bounds profiles dictionary indices (#14803)

  • pdata/pprofile: create a copy when the input is marked as read-only (#15080)

  • pkg/otelcol: Fix missing default values in unredacted print-config command by introducing confmap.WithUnredacted MarshalOption. (#14750)
    Resolves an issue where the unredacted mode output omitted all default-valued options. By introducing a new MarshalOption to disable redaction directly at the confmap encoding level, the unredacted mode now preserves all component defaults natively without requiring post-processing.

  • pkg/service: Headers on the internal telemetry OTLP exporter are now redacted when the configuration is marshaled (#14756)

API Changelog

💡 Enhancements 💡

  • cmd/mdatagen: Add custom validation support for Go config structs (#14563)

v1.55.0/v0.149.0

Choose a tag to compare

@github-actions github-actions released this 31 Mar 13:43
v0.149.0
01b07fc

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

End User Changelog

🛑 Breaking changes 🛑

  • pkg/service: Remove service_name, service_instance_id, and service_version as constant labels on every internal metric datapoint. These attributes are already present in target_info and were being duplicated on each series for OpenCensus backwards compatibility. (#14811)
    Previously, the collector stamped every internal metric series (e.g. otelcol_process_runtime_heap_alloc_bytes)
    with service_name, service_instance_id, and service_version labels to match the old OpenCensus behavior.
    These attributes are now only present in the target_info metric, which is the correct Prometheus/OTel convention.
    Users who filter or group by these labels on individual metrics will need to update their queries to use
    target_info joins instead.

💡 Enhancements 💡

  • all: Move aix/ppc64 to tier 3 support (#13380)

  • all: Upgrade the profiles stability status to alpha (#14817)
    The following components have their profiles status upgraded from development to alpha:

    • pdata/pprofile
    • connector/forward
    • exporter/debug
    • receiver/nop
    • exporter/nop
    • exporter/otlp_grpc
    • exporter/otlp_http
  • cmd/mdatagen: Add semconv reference for attributes (#13297)

🧰 Bug fixes 🧰

  • cmd/mdatagen: Fix entity code generation so extra_attributes are emitted as resource attributes instead of entity descriptive attributes. (#14778)

API Changelog

💡 Enhancements 💡

  • cmd/mdatagen: Added ability to generate required fields validation to config go structs generated by mdatagen (#14563)

🧰 Bug fixes 🧰

  • cmd/mdatagen: Fix RootPackage to use go module root instead of git repo root (#14801)
    Fixes issue with running mdatagen when the git repository root is different from the go module root.

v1.54.0/v0.148.0

Choose a tag to compare

@github-actions github-actions released this 17 Mar 13:42
v0.148.0
ffebda4

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

End User Changelog

❗ Known Issues ❗

  • service: The collector's internal Prometheus metrics endpoint (:8888) now emits OTel service labels with underscore
    names (service_name, service_instance_id, service_version) instead of dot-notation names (service.name,
    service.instance.id, service.version). Users scraping this endpoint with the Prometheus receiver will see these renamed
    labels in resource and datapoint attributes. As a workaround, add the following metric_relabel_configs to your scrape
    config in prometheus receiver:
    metric_relabel_configs:
      - source_labels: [service_name]
        target_label: service.name
      - source_labels: [service_instance_id]
        target_label: service.instance.id
      - source_labels: [service_version]
        target_label: service.version
      - regex: service_name|service_instance_id|service_version
        action: labeldrop
    See #14814 for details and updates.

🛑 Breaking changes 🛑

  • all: Change metric units to be singular to match OTel specification, e.g. {requests} -> {request} (#14753)

💡 Enhancements 💡

  • cmd/mdatagen: Add deprecated_type field to allow specifying an alias for component types. (#14718)
  • cmd/mdatagen: Generate entity-scoped MetricsBuilder API that enforces entity-metric associations at compile time (#14659)
  • cmd/mdatagen: Skip generating reaggregation config options for metrics that have no aggregatable attributes. (#14689)
  • pkg/service: The internal status reporter no longer drops repeated Ok and RecoverableError statuses (#14282)
    Status events can now carry metadata and there's value in allowing them to be emitted despite the status value itself
    not changing.

🧰 Bug fixes 🧰

  • cmd/builder: Add .exe to output binary names when building for Windows targets. (#12591)

  • exporter/debug: Add printing of metric metadata in detailed verbosity. (#14667)

  • exporter/otlp_grpc: Prevent nil pointer panic when push methods are called before the OTLP exporter initializes its gRPC clients. (#14663)
    When the sending queue and retry are disabled, calling ConsumeTraces,
    ConsumeMetrics, ConsumeLogs, or ConsumeProfiles before the OTLP exporter
    initializes its gRPC clients could cause a nil pointer dereference panic.
    The push methods now return an error instead of panicking.

  • exporter/otlp_http: Show the actual destination URL in error messages when request URL is modified by middleware. (#14673)
    Unwraps the *url.Error returned by http.Client.Do() to prevent misleading error logs when a middleware extension dynamically updates the endpoint.

  • pdata/pprofile: Switch the dictionary of dictionary tables entries only once when merging profiles (#14709)
    For dictionary table data, we used to switch their dictionaries when doing
    the switch for the data that uses them.
    However, when an entry is associated with multiple other data (several
    samples can use the same stack), we would have been switching the
    dictionaries of the entry multiple times.

    We now switch dictionaries for dictionary table data only once, before
    switching the resource profiles.

API Changelog

🛑 Breaking changes 🛑

  • cmd/mdatagen: Generate a per-metric config type <MetricName>Config for each metric when reaggregation_enabled: true (#14689)
    Metrics with aggregatable attributes get AggregationStrategy and EnabledAttributes []<MetricName>AttributeKey
    fields; others get Enabled only. Typed attribute key constants (e.g. DefaultMetricAttributeKeyStringAttr)
    replace []string, eliminating runtime attribute slice allocations. Validation errors now list valid attributes
    and strategies by name. Components using reaggregation_enabled: true will need to update references to MetricConfig.

  • pdata/pprofile: Update protoID for message Sample fields (#14652)

💡 Enhancements 💡

  • cmd/mdatagen: Extend mdatagen tool to generate go config structs for OpenTelemetry collector components. (#14561)
    The component config go code is generated from config section of the metadata.yaml file.

  • cmd/mdatagen: Extend mdatagen tool to generate config JSON schema for OpenTelemetry components. (#14543)
    The component config JSON schema is generated from config section of the metadata.yaml file.

  • cmd/mdatagen: Schema generation for mdatagen-controlled config parts (#14562)
    The schema is generated in separate yaml file and used to create full component schema.

  • pdata/pprofile: Implement reference based attributes in Profiles (#14546)

  • pkg/pdata: Upgrade the OTLP protobuf definitions to version 1.10.0 (#14766)

  • pkg/service: The internal status reporter no longer drops repeated Ok and RecoverableError statuses (#14282)
    Status events can now carry metadata and there's value in allowing them to be emitted despite the status value itself
    not changing.

  • pkg/xexporterhelper: Add logic to cleanup partitions from memory which are not being used for specific time period. (#14526)

  • pkg/xpdata: Add NewEntity constructor, Entity.CopyToResource, and EntityAttributeMap.All to pdata/xpdata/entity (#14659)

🧰 Bug fixes 🧰

  • cmd/mdatagen: Preserve custom extensions (e.g., x-customType, x-pointer) during schema reference resolution. (#14713, #14565)
    Fixes an issue where custom properties defined locally on a node were
    overwritten and lost when resolving a $ref to an external/internal schema.

  • pkg/xexporterhelper: Fix race when partition is being removed from LRU and new items are being added at the same time. (#14526)