Skip to content

Releases: open-telemetry/opentelemetry-collector-contrib

v0.120.0

18 Feb 03:41
v0.120.0
994853d
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

End user changelog

🛑 Breaking changes 🛑

  • all: Added support for go1.24, bumped minimum version to 1.23 (#37875)
  • elasticsearchexporter: Use go-elasticsearch/v8, require minimum version of ES 7.17.x or 8.x (#32454)
  • elasticsearchexporter: Remove dedot config. ECS mode now always dedots, no others dedot at all. (#33772)
  • activedirectorydsreceiver: Fixed typo in the attribute distingushed_names, renaming it to distinguished_names. (#37606)
  • githubreceiver: The required_header configuration option for the trace receiver has been changed to required_headers. (#37578)
  • receiver/hostmetrics: Remove receiver.hostmetrics.normalizeProcessCPUUtilization feature gate (#34763)
  • tailsamplingprocessor: Fix the decision timer metric to capture longer latencies beyond 50ms. (#37722)
    This changes the unit of the decision timer metric from microseconds to milliseconds.
  • routingconnector: Remove match_once configuration parameter. (#36824)

🚩 Deprecations 🚩

  • opencensusexporter: Deprecate the OpenCensus exporter (#36791)
    Migrate to use the OTLP exporter moving forward.
  • opencensusreceiver: Deprecate the OpenCensus receiver (#36791)
    Migrate to use the OTLP receiver moving forward.

🚀 New components 🚀

  • bmchelixexporter: Mark the BMC Helix exporter as Alpha. (#36773)
  • bmchelixexporter: metrics implementation (#36773)
  • kafkatopicsobserver: Adding new kafka topics observer extension (#37665)
  • googlecloudlogentryencodingextension: Introduce the scaffolding of a new component, googlecloudlogentryencodingextension (#37531)

💡 Enhancements 💡

  • elasticsearchexporter: Syncs support for compression level on elasticsearch exporter with confighttp. The default compression level is 1 if not set. (#37260)

  • processor/transformprocessor: Add support for global conditions and error mode overrides. (#29017)
    Global conditions are now available for context-inferred structured configurations, allowing the use of fully
    qualified paths. Additionally, a new configuration key called error_mode has been added to the context statements group.
    This key determines how the processor reacts to errors that occur while processing that specific group of statements.
    When provided, it overrides the top-level error mode, offering more granular control over error handling.

  • pkg/stanza: Allow users to configure initial buffer size (#37786)

  • vcenterreceiver: Adds three more vCenter virtual machine performance metrics (#37488)

  • k8sclusterreceiver: Adds new descriptive attributes/metadata to the k8s.namespace and the container entity emitted from k8sclusterreceiver. (#37580)

    • Adds the following attributes to k8s.namespace entity:
      • k8s.namespace.phase: The phase of a namespace indicates where the namespace is in its lifecycle. E.g. 'active', 'terminating'
      • k8s.namespace.creation_timestamp: The time when the namespace object was created.
    • Adds the following attributes to container entity:
      • container.creation_timestamp: The time when the container was started. Only available if container is either in 'running' or 'terminated' state.
  • splunkenterprisereceiver: Added a new splunk.health metric. (#36695)

  • pkg/ottl: Introduce ToLowerCase converter function (#32942)

  • pkg/ottl: Introduce ToSnakeCase converter function (#32942)

  • pkg/ottl: Introduce ToUpperCase converter function (#32942)

  • datadogreceiver: Implement support for span links (#37449)

  • resourcedetectionprocessor: add the Dynatrace detector to the resource detection processor (#37577)

  • elasticsearchexporter: Add profiles support to elasticsearch exporter (#37567)

  • googlecloudmonitoringreceiver: support use monitoring filters to filter metrics (#36898)

  • awsfirehosereceiver: Refactor unmarshallers to implement pdata unmarshaler interfaces (#37361)

  • githubreceiver: add support for GitHub Actions workflow run events using deterministic Trace and Root Span IDs. (#37578)

  • pkg/translator/jaeger/internal/jaeger: Remove jaeger model/converter/thrift/jaeger dependency (#37820)

  • pkg/translator/zipkin/internal/zipkin: Remove jaeger model/converter/thrift/zipkin dependency (#37795)

  • extension/oauth2clientauth: Add expiry_buffer config to oauth2client extension, allowing token refresh before expiration with a default buffer of 5 minutes. (#35148)

    • Prevents authentication failures by refreshing the token early.
    • The default expiry buffer is set to 5 minutes, and users can adjust it as needed.
  • datadogexporter: Add a gauge metric datadog.otel.gateway which is 1 if the collector is used as a gateway or 0 otherwise. (#37499)

  • pkg/ottl: Introduce ToCamelCase converter function (#32942)

  • googlecloudpubsubreceiver: Turn noisy warn log about Pub/Sub servers into debug, and turn the reset count into a metric (#37571)
    The receiver uses the Google Cloud Pub/Sub StreamingPull API and keeps a open connection. The Pub/Sub servers
    recurrently close the connection after a time period to avoid a long-running sticky connection. Before the
    receiver logged warn log lines everytime this happened. These log lines are moved to debug so that fleets with
    lots of collectors with the receiver don't span logs at warn level. To keep track of the resets, whenever a
    connection reset happens a otelcol_receiver_googlecloudpubsub_stream_restarts metric is increased by one.

  • processor/redaction: Introduce 'allowed_values' parameter for allowed values of attributes (#35840)

  • exporter/logzioexporter: Remove dependency on Jaeger pkg/cache (#37833)

  • routingconnector: Avoid unnecessary copy of the data in routing connector (#37946)

  • awscontainerinsightreceiver: Add support for HOST_PROC environment variable in AWS Container Insight Receiver. (#35862)

  • syslogreceiver: Support setting on_error config for syslog receiver. (#36906)

  • processor/tailsampling: Adds support for optionally recording the policy (and any composite policy) associated with an inclusive tail processor sampling decision.
    This functionality is disabled by default, you can enable it by passing the following feature flag to the collector: +processor.tailsamplingprocessor.recordpolicy
    (#35180)

  • tailsamplingprocessor: makes the numeric_attribute more flexible and allows to set only min_value or max_value, without the need to set both (#37328)
    This is useful to have simple configurations like these:

    {
      type: numeric_attribute,
      numeric_attribute: {
        key: http.status_code,
        min_value: 400
      }
    }
    
  • testbed: Include the specified resource limits for CPU and memory in the benchmark results (#36720)

  • stefexporter: Add basic STEF exporter implementation (#37759)

  • receiver/zipkinreceiver: Remove zipkinreceiver dependency on Jaeger (#37795)

🧰 Bug fixes 🧰

  • azureeventhubreceiver: Fix bug where persisted offset would be ignored after restart (#37157)
  • bearertokenauthextension: Load token lazily for gRPC AUTH to fix token refresh issue (#36749)
  • opampsupervisor: The OnConnectionClose was not correctly connected for the supervisor. (#37761)
  • elasticsearchexporter: Fix data loss caused by incorrect metric grouping in ECS and OTel mode (#37898)
    Fix data loss when the same metric exists across different resources or scopes. Data points / metrics were incorrectly grouped together, leading to data loss with warning logs e.g. "metric with name '***' has already been serialized".
  • k8sattributes: Fix bug where Filters.Labels failed with when the exists or not-exists operations were used. (#37913)
  • prometheusreceiver: Start time metric adjuster now handles reset points correctly (#37717)
  • prometheusremotewriteexproter: Resolves a deadlock in the WAL by temporarily releasing a lock while waiting for new writes to the WAL.
    (#19363, #24399, #15277)
  • awscontainerinsightreceiver: Fix race condition in shutdown of AWS Container Insight receiver (#37695)

API changelog

🛑 Breaking changes 🛑

  • s3provider: Delete deprecated New factory function. Use NewFactory instead. (#37921)
  • secretsmanagerprovider: Delete deprecated New function, use NewFactory instead (#37923)
  • pkg/stanza: Remove deprecated flush.WithPeriod. (#37784)
  • pkg/stanza: Remove deprecated func BuildWithSplitFunc from stanza/fileconsumer (#37723)

🚩 Deprecations 🚩

  • pkg/stanza: Deprecate all functions in stanza/decode (#37734)

💡 Enhancements 💡

  • pkg/translator/prometheusremotewrite: add support for metric type sum in FromMetricsV2 (#33661)
    The public function is partially implemented and not ready for use
  • pkg/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 package github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog/hostmetadata which exposes GetSourceProvider from github.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)

v0.119.0

04 Feb 06:07
v0.119.0
70d8986
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

Unmaintained Components

These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.

  • exporter/kineticaexporter/
  • exporter/opensearchexporter/
  • extension/observer/ecstaskobserver/
  • receiver/awscloudwatchmetricsreceiver/
  • receiver/rabbitmqreceiver/

End user changelog

🛑 Breaking changes 🛑

  • receiver/cloudfoundry: Promote cloudfoundry.resourceAttributes.allow feature gate to beta (#34824)
    The cloudfoundry.resourceAttributes.allow feature gate is now enabled by default.

  • datadogexporter: Remove stable feature gate exporter.datadog.hostname.preview (#37561)

  • exporter/prometheusremotewrite: Change exporter.prometheusremotewriteexporter.deprecateCreatedMetric feature gate from Beta to Stable version. (#35003)
    The export_created_metric configuration parameter is now permanently deprecated.

  • elasticsearchexporter: Consistently store the structured body of logs and events in body.structured in otel mode (#37387)

  • solacereceiver: Update validation step to allow only one auth method. (#36386)

🚩 Deprecations 🚩

  • signalfxreceiver: access_token_passthrough is deprecated (#37575)
    • "access_token_passthrough is deprecated."
    • "Please enable include_metadata in the receiver and add the following config to the batch processor:"
    batch:
      metadata_keys: [X-Sf-Token]

🚀 New components 🚀

  • envoyalsreceiver: Add a new receiver for the Envoy ALS (Access Log Service). (#36464)
  • metricstarttimeprocessor: Add the initial skeleton for the metricsstarttimeprocessor (#37186)
    The component is still in development and is not ready for use.
  • exporter/sematext: Add a new component for exporting metrics and logs to Sematext (#36465)

💡 Enhancements 💡

  • awss3exporter: Add support for S3 Storgeclass (#35173)

  • processor/transformprocessor: Add support for flat configuration style. (#29017)
    The flat configuration style allows users to configure statements by providing a list of statements instead of a
    structured configuration map. The statement's context is expressed by adding the context's name prefix to path names,
    which are used to infer and to select the appropriate context for the statement.

  • httpcheckreceiver: Added support for specifying multiple endpoints in the httpcheckreceiver using the endpoints field. Users can now monitor multiple URLs with a single configuration block, improving flexibility and reducing redundancy. (#37121)

  • signaltometricsconnector: Move signal to metrics connector to alpha stability (#35930)

  • exporter/clickhouse: Adding missing examples of DDL created by the clickhouse exporter (#35903)

  • opampsupervisor: add support for headers configuration for reporting own telemetry (#37353)

  • opampsupervisor: report own metrics via OTLP instead of prometheus receiver (#37346)

  • resourcedetectionprocessor: Expose additional configuration parameters for the AWS metadata client used by the EC2 detector (#35936)
    In some cases, you might need to change the behavior of the AWS metadata client from the standard retryer

    By default, the client retries 3 times with a max backoff delay of 20s.

    We offer a limited set of options to override those defaults specifically, such that you can set the client to retry 10 times, for up to 5 minutes, for example:

    processors:
      resourcedetection/ec2:
        detectors: ["ec2"]
        ec2:
          max_attempts: 10
          max_backoff: 5m
  • cumulativetodeltaprocessor: Add metric type filter for cumulativetodelta processor (#33673)

  • datadogconnector: Support obfuscating sql queries in APM stats (#37457)
    Ensure that feature flags "enable_receive_resource_spans_v2" and "enable_operation_and_resource_name_logic_v2"
    are also enabled on both Datadog Exporter and Datadog Connector so that span attributes are properly
    mapped to span type and span resource in Datadog APM; otherwise spans and apm stats may not be
    obfuscated and attributes on stats payloads may not match traces.
    See https://docs.datadoghq.com/opentelemetry/schema_semantics/semantic_mapping/?tab=datadogexporter#mapping-opentelemetry-database-system-type-to-datadog-span-type

    NOTE: Long/complex SQL queries may cause a performance impact on APM Stats calculation in Datadog Connector.
    Consider implementing sampling in your pipeline prior to sending traces to Datadog Connector if you experience this.

  • resourcedetectionprocessor: Add fail_on_missing_metadata option on EC2 detector (#35936)
    If the EC2 metadata endpoint is unavailable, the EC2 detector by default ignores the error.
    By setting fail_on_missing_metadata to true on the detector, the user will now trigger an error explicitly,
    which will stop the collector from starting.

  • elasticsearchexporter: Group data points into a single document even if they are from different but equal resources (#37509)
    This may prevent document rejections in case the same batch contains different resources or scopes that have the same set of attributes

  • elasticsearchexporter: Add config logs_dynamic_id to dynamically set the document ID of log records using log record attribute elasticsearch.document_id (#36882)

  • elasticsearchexporter: Declare MutatesData: false (#37234)
    When multiple exporters are used, the collector doesn't need to clone the incoming data anymore

  • resourcedetectionprocessor: The gcp resource detector will now detect resource attributes identifying a GCE instance's managed instance group. (#36142)

  • jaegerreceiver: Log the endpoints of different servers started by jaegerreceiver (#36961)
    This change logs the endpoints of different servers started by jaegerreceiver. It simplifies debugging by ensuring log messages match configuration settings.

  • githubgen: Switch over all usages of githubgen to the new tool location, since the old tool was deprecated (#37412, #37294)

  • hostmetrics/process: Added support for tracking process.uptime (#36667)

  • netflowreceiver: Adds the implementation of the netflow receiver (#32732)
    The receiver now supports receiving NetFlow v5, NetFow v9, IPFIX, and sFlow v5 logs.

  • googlecloudpubsubreceiver: Added support for encoding extensions. (#37109)

  • processor/transformprocessor: Replace parser collection implementations with ottl.ParserCollection and add initial support for expressing statement's context via path names. (#29017)

  • prometheusreceiver: Add receiver.prometheusreceiver.UseCollectorStartTimeFallback featuregate for the start time metric adjuster to use the collector start time as an approximation of process start time as a fallback. (#36364)

  • tailsamplingprocessor: Reworked the consume traces, sampling decision, and policy loading paths to improve performance and readability (#37560)

🧰 Bug fixes 🧰

  • deltatocumulativeprocessor: In order to cap number of histogram buckets take the min of desired scale across negative and positive buckets instead of the max (#37416)

  • filelogreceiver: Fix issue where flushed tokens could be truncated. (#35042)

  • connector/routing: Fix config validation with context other than resource (#37410)

  • k8sattributesprocessor: Wait for the other informers to complete their initial sync before starting the pod informers (#37056)

  • metricsgenerationprocessor: Generated metric name may not match metric being scaled (#37474)

  • otlpjsonfilereceiver: Include file attributes and append it to the log record (#36641)

  • routingconnector: The connector splits the original payload so that it may be emitted in parts to each route. (#37390)

  • pkg/stanza: Fix default source identifier in recombine operator (#37210)
    Its defualt value is now aligned with the semantic conventions: attributes["log.file.path"]

  • tailsamplingprocessor: Fixed sampling decision metrics otelcol_processor_tail_sampling_sampling_trace_dropped_too_early and otelcol_processor_tail_sampling_sampling_policy_evaluation_error_total, these were sometimes overcounted. (#37212)
    As a result of this change non-zero values of otelcol_processor_tail_sampling_sampling_trace_dropped_too_early
    and otelcol_processor_tail_sampling_sampling_policy_evaluation_error_total metrics will be lower.
    Before this fix, errors got counted several times depending on the amount of traces being processed
    that tick and where in the batch the error happened.
    Zero values are unaffected.

  • signalfxexporter: Warn on dropping metric data points when they have more than allowed dimension count (#37484)
    The SignalFx exporter drops metric data points if they have more than 36 dimensions.
    Currently, the exporter logs at debug level when this occurs.
    With this change, the exporter will log at the warning level.

API changelog

🚀 New components 🚀

  • metricstarttimeprocessor: Add the initial skeleton for the metricsstarttimeprocessor (#37186)
    The component is still in development and is not ready for use.

v0.118.0

21 Jan 20:30
v0.118.0
e0351bf
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

End user changelog

🐛 Known bugs 🐛

  • connector/routing: Invalid configuration when using context other than resource #37410

🛑 Breaking changes 🛑

  • elasticsearchexporter: Remove Index config, which was deprecated and replace with LogsIndex since v0.60.0 (#37094)

  • elasticsearchexporter: Remove dedup config setting that was deprecated in v0.104.0 (#33773)

  • pkg/stanza: Move filelog.container.removeOriginalTimeField feature gate to stable (#33389)

  • pkg/ottl: Support dynamic indexing of maps and slices. (#36644)

  • prometheusremotewriteexporter: Only append label values if they are different for colliding OTel attributes (#35896)
    This change ensures that, when translating colliding attributes from OTel attributes to Prometheus label, the label values are only appended if their values are different.
    This is a breaking change as it changes the value of label outputted.

  • routingconnector: Disconnect match_once parameter from functionality. (#29882)
    The parameter will be ignored, except to trigger a warning log about its upcoming removal in v0.120.0.

🚩 Deprecations 🚩

  • awscloudwatchmetricsreceiver: move the component to unmaintained status (#36599)
  • githubgen: Deprecate githubgen in this repository (#37294)
    githubgen has moved to opentelemetry-go-build-tools. Please change your scripts to use this new location.

🚀 New components 🚀

  • intervalprocessor: Interval Processor is now Alpha stability and is added to the contrib and k8s distributions (#36514)
  • exporter/bmchelix: Add a new component for exporting metrics to BMC Helix (#36773)
  • gitlabreceiver: Adds webhook skeleton to GitLab receiver to receive events from GitLab for tracing. (#35207)
    This PR adds a skeleton for the GitLab receiver to receive events from GitLab for tracing via a webhook. The trace portion of this receiver will run and respond to GET requests for the health check only.
  • extension/skywalkingencodingextension: Support skywalking_encoding extension for skywalking traces. (#28693)

💡 Enhancements 💡

  • mysqlreceiver: Add delete_multi, update_multi metrics to mysql.commands for mysqlreceiver (#37301)
  • datadogexporter: Add a feature gate datadog.EnableReceiveResourceSpansV2. Enabling this gate uses a refactored implementation of OTLP->Datadog Span translation in datadogexporter and datadogconnector which improves performance by 10%, and deprecates the following functionality: - No longer checks for resource-related values (container, env, hostname) in span attributes. This previous behavior did not follow the OTel spec. (#37171)
  • pkg/ottl: Add the Nanosecond converter to return the nanosecond component from the specified time.Time (#37042)
  • pkg/ottl: Add the Second converter to return the second component from the specified time.Time (#37042)
  • vcenterreceiver: Adds vCenter memory capacity for hosts and memory granted metric for VMs. (#37257)
  • awss3exporter: Implement sending queue for S3 exporter (#37274, #36264)
  • huaweicloudces: Move huaweicloudces receiver to alpha (#34953)
  • cgroupruntimeextension: Implement ECS metadata retrieval for cgroupruntime extension. (#36814)
  • deltatocumulativeprocessor: cap the number of exponential histogram buckets to 160 (#33277)
  • resourcedetectionprocessor: This enhancement detects AWS EKS cloud account ID (#37179)
  • elasticsearchexporter: Handle EventName for log records in OTel mode (#37011)
  • elasticsearchexporter: More efficient JSON encoding for OTel mode (#37032)
    Increases throughput for metrics by 2x and for logs and traces by 3x
  • elasticsearchexporter: Mark OTel mapping mode as stable (#37240)
    OTel mapping mode should no longer be considered unstable as there is no planned breaking change.
  • googlecloudmonitoringreceiver: set the minimum collection interval as 60s (#36898)
  • datadogexporter: Add a feature gate datadog.EnableOperationAndResourceNameV2. Enabling this gate modifies the logic for computing operation and resource names from OTLP spans to produce shorter, more readable names and improve alignment with OpenTelemetry specifications. (#36419)
  • dorisexporter: send json lines to doris rather than json array (#36896)
  • k8sattributesprocessor: For pods with only one container, the container.id and k8s.container.name are not longer required in the resource attributes to add the container attributes (#34189)
  • logdedupprocessor: Add 'include_fields' option to deduplicate log records via body or attribute fields. (#36965)
  • pkg/ottl: Enhanced error messages for invalid cache access and introduced options to configure their values within the OTTL contexts. (#29017)
  • pkg/ottl: Add the FormatTime function to convert time.Time values to human-readable strings (#36870)
  • prometheusremotewriteexporter: Re allows the configuration of multiple workers (#36134)
  • receiver/prometheusremotewrite: Check if Scope is already present comparing with the received labels (#36927)
  • extension/jaegerremotesampling: remove dependency on jaeger internal code (#36976)
  • telemetrygen: Remove go-grpc-middleware dependency (#37103)
  • resourcedetectionprocessor: Introduce kubeadm detector to retrieve local cluster name. (#35116)
  • signalfxexporter: Prioritize retrieving token from context when accesstokenpassthrough is enabled (#37102)
  • signaltometricsconnector: Add core logic for the signal to metrics connector to make it functional. (#35930)
  • signaltometrics: Adds resource attributes based on telemetry settings to the connector to ensure single writer (#35930)
  • tailsamplingprocessor: Added debug logging to the sampling decision caches. (#37038)
  • tailsamplingprocessor: Improved not sampled decision cache usage and deleting traces from the internal map when they are in a decision cache. (#37189)

🧰 Bug fixes 🧰

  • googlecloudpubsubreceiver: Fix a goroutine leak during shutdown. (#30438)
    A goroutine leak was found in the googlecloudpubsubreceiver.
    The goroutine leak was caused by the receiver not closing the underlying created gRPC client when using an insecure custom endpoint.

  • signalfxexporter: Honor access_token_passthrough config option for sending events (#37102)

  • clickhouseexporter: Fix Nil Pointer Exception on Metrics/Traces export without service.name Resource Attribute (#37030)

  • k8sattributesprocessor: Ensure the pods gathered by the processor contain the information about their related replica sets and deployments after the initial sync (#37056)

  • logdedupprocessor: Fix config validation not working when creating a processor. (#37278)

  • pkg/ottl: Fix bug with replace_all_matches and replace_all_patterns that caused non-string values to be changed to empty string when matching against empty string. (#37071)

  • tailsamplingprocessor: Fixed sampling policy evaluation debug logging batch metrics (e.g. sampled). (#37040)

  • tailsamplingprocessor: Late span age histogram should include sampled traces. (#37180)

API changelog

🛑 Breaking changes 🛑

  • routingconnector: Change match_once parameter from bool to *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.

💡 Enhancements 💡

  • 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.

v0.117.0

08 Jan 02:56
2aa1d00
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

Unmaintained Components

These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.

  • exporter/kineticaexporter/
  • exporter/opensearchexporter/
  • extension/observer/ecstaskobserver/
  • receiver/jmxreceiver/

End User Changelog

🛑 Breaking changes 🛑

  • cloudfoundryreceiver: Introduce a feature gate enable copying envelope tags to the metrics as resource attributes instead of datapoint attributes. (#34824)

  • pkg/ottl: removed the ability to reference entire parent objects. (#36872)
    Statements like set(cache["resource"], resource) in non-resource contexts will no longer work.

  • routingconnector: Change default value of match_once parameter to true. (#29882)
    This field was deprecated in v0.116.0 and will be removed in v0.120.0.

🚩 Deprecations 🚩

  • sapmexporter: Deprecate SAPM exporter (#36028)
    The SAPM exporter is being marked as deprecated. Please use the otlphttp exporter with the configuration shown
    below. Also update your pipeline configuration for Traces accordingly.
      exporters:
          otlphttp:
              traces_endpoint: "${SPLUNK_INGEST_URL}/v2/trace/otlp"
              headers:
                  "X-SF-Token": "${SPLUNK_ACCESS_TOKEN}"

🚀 New components 🚀

  • libhoneyreceiver: Mark the libhoney receiver exporter as Alpha. (#36693)

💡 Enhancements 💡

  • k8sclusterreceiver: Add additional attributes to node and pod entities (#35879)
    Adds the following attributes to node and pod metadata/entities:

    • k8s.pod.phase: The phase of a Pod indicates where the Pod is in its lifecycle. E.g. 'Pending', 'Running'
    • k8s.pod.status_reason: A brief message indicating details about why the pod is in this state. E.g. 'Evicted'
    • k8s.node.condition_*: The condition of a node. e.g. k8s.node.condition_ready. The value can be true, false, unknown.
  • awsxrayexporter: merge in latest semantic conventions for awsxrayexporter. (#36894)

  • receivercreator: Add support for starting logs' collection based on provided k8s annotations' hints (#34427)

  • opensearchexporter: Add Sending Queue to enable persistent queue in case of upstream failure (#33919)

  • libhoneyreceiver: Implement log signal for libhoney receiver (#36693)

  • ottl: Add a new ottl trim function that trims leading and trailing characters from a string (default- whitespace). (#34100)

  • exporter/prometheusremotewrite: In preparation to re-introducing multiple workers, we're removing a data-race when batching timeseries. (#36601)

  • redisstorageextension: Move redis storage extension to alpha (#36778)

  • logzioexporter: Remove jaeger dbmodel dependency. (#36972)

  • sigv4authextension: Add support for endpoint based names for logs and traces (#36828)

  • awsemfexporter: Split EMF log to multiple log splits when buckets larger than 100. (#36771)

  • sqlqueryreceiver: Add instrumentation scope to SQL query receiver metrics and logs (#31028)

  • statsdreceiver: Add UDS support to statsdreceiver (#21385)

  • tailsamplingprocessor: Support hot sampling policy loading (#37014)

  • cmd/telemetrygen: Introduce support for generating histograms in telemetrygen (#36322)

  • libhoneyreceiver: Implement trace signal for libhoney receiver (#36693)

🧰 Bug fixes 🧰

  • receiver/azureeventhub: Ensure that observed timestamp is set when unmarshaling logs. (#36861)

  • internal/docker: Fix image matching regular expression to properly match SHA256 strings. (#36239)
    This affects the docker_observer extension.

  • opampsupervisor: Report an 'Applied' remote config status when an empty config is received. (#36682)

  • k8sobjectsreceiver: ensure the k8s.namespace.name attribute is set for objects retrieved using the watch mode (#36352)

  • mongodbatlasreceiver: Update the mongoDB Atlas receiver to use the Default HTTP Transport that supports default proxy configuration (#36412)

  • mysqlreceiver: Avoid recording a value for the MysqlBufferPoolPages metric when out-of-bounds. (#35495)
    When using compressed tables, Innodb_buffer_pool_pages_misc may report an out-of-bounds value.
    See https://bugs.mysql.com/bug.php?id=59550 for context.

  • pkg/ottl: fix handling of nested maps within slices in the flatten function (#36162)

  • mysqlreceiver: Divide large values directly in SQL queries to avoid int overflows (#35495)

API Changelog

💡 Enhancements 💡

  • pkg/ottl: Change OTTL contexts to properly handle ottl.Path with context (#29017)
    The OTTL contexts have a new option EnablePathContextNames to enable support for expressing a statement's context via path names in the statement

v0.116.0

17 Dec 14:49
v0.116.0
2839359
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

Unmaintained Components

These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.

  • exporter/kineticaexporter/
  • exporter/opensearchexporter/
  • extension/observer/ecstaskobserver/
  • receiver/jmxreceiver/

End User Changelog

🛑 Breaking changes 🛑

  • jsonlogencodingextension: Change how logs are marshaled. Instead of marshaling just the first log, marshal all logs into a JSON array. (#34064)

  • githubreceiver: Update metric names to match VCS Metric Semantic Conventions and scraper key name. (#36714)

    • Change the github scraper key to scraper
    • Add vcs.repository.url.full attribute
    • Change attribute repository.name to vcs.repository.name
    • Change attribute ref.name to vcs.ref.head.name
    • Change attribute ref.type to vcs.ref.head.type
    • Change attribute change.state to vcs.change.state
    • Add attribute vcs.revision_delta.direction with ahead and behind values
    • Change metric vcs.repository.ref.revisions_ahead to vcs.ref.revisions_delta with vcs.revision_delta.direction=ahead
    • Change metric vcs.repository.ref.revisions_behind to vcs.ref.revisions_delta with vcs.revision_delta.direction=behind
    • Change metric vcs.repository.ref.count to vcs.ref.count
    • Change metric vcs.repository.ref.time to vcs.ref.time
    • Add attribute vcs.line_change.type with added and removed values
    • Change metric vcs.repository.ref.lines_added to vcs.ref.lines_delta with vcs.line_change.type=added
    • Change metric vcs.repository.ref.lines_removed to vcs.ref.lines_delta with vcs.line_change.type=removed
    • Change metric vcs.repository.contributor.count to vcs.contributor.count
    • Change metric vcs.repository.change.time_open to vcs.change.duration with vcs.change.state=open
    • Change metric vcs.repository.change.time_to_approval to vcs.change.time_to_approval
    • Change metric vcs.repository.change.time_to_merge to vcs.change.time_to_merge
    • Change metric vcs.repository.change.count to vcs.change.count
  • processor/tailsampling: Reverts #33671, allowing for composite policies to specify inverted clauses in conjunction with other policies. This is a change bringing the previous state into place, breaking users who rely on what was introduced as part of #33671. (#34085)

🚩 Deprecations 🚩

  • connector/routing: Deprecate match_once parameter. (#29882)

  • routingprocessor: Deprecated in favor of the routing connector. (#36616)

  • splunkhecexporter: Add otel_attrs_to_hec_metadata/* config fields to replace hec_metadata_to_otel_attrs/* fields. (#35092)
    otel_attrs_to_hec_metadata/* config fields will replace the hec_metadata_to_otel_attrs/* fields in a later release.

  • kineticaexporter: The kineticaexporter is now Unmaintained as it has no active code owners from the vendor (#36808)

🚀 New components 🚀

  • dorisexporter: Mark the Doris exporter as Alpha. (#33479)
  • libhoneyreceiver: Introduce the scaffolding of a new component, libhoneyreceiver (#36693)

💡 Enhancements 💡

  • purefareceiver: Implements support for scraping Pure Storage FlashArray with Purity version 6.6.11+ (#36251)

  • azureeventhubreceiver: support providing one or more time formats for timestamp parsing (#36650)

  • googlecloudmonitoringreceiver: Add metric-specific labels to googlecloudmonitoringreceiver component (#35711)

  • awss3receiver: Add support RFC3339 format for starttime and endtime (#36787)

  • awsxrayexporter: Generate url section in xray segment when net.peer.name is available (#35375)

  • clickhouseexporter: Exporter now sorts attribute maps' keys during INSERT, yielding better compression and predictable aggregates (#33634)

  • datadogconnector: Flip configs traces::compute_stats_by_span_kind, traces::peer_tags_aggregation and traces::peer_service_aggregation to true by default (#35969)
    This enables Datadog APM stats on peer tags by default and is a backwards-compatible change. Read more on https://docs.datadoghq.com/tracing/guide/inferred-service-opt-in/.

  • datadogexporter: Flip configs traces::compute_stats_by_span_kind, traces::peer_tags_aggregation and traces::peer_service_aggregation to true by default (#35969)
    This enables Datadog APM stats on peer tags by default and is a backwards-compatible change. Read more on https://docs.datadoghq.com/tracing/guide/inferred-service-opt-in/.

  • elasticsearchexporter: Map *.geo.location.{lat,lon} as geo_point field in OTel mode (#36565)
    In OTel mapping mode, merge *.geo.location.{lat,lon} to *.geo.location such that they are stored as geo_point in Elasticsearch.

  • fileexporter: Add support for profiles signal. (#35978)

  • pkg/ottl: GetXML Converter now supports selecting text, CDATA, and attribute (value) content. (#36821)

  • githubreceiver: Adds webhook skeleton to GitHub receiver to receive events from GitHub for tracing. (#27460)
    This PR adds a skeleton for the GitHub receiver to receive events from GitHub
    for tracing via a webhook. The trace portion of this receiver will run and
    respond to GET requests for the health check only.

  • kafkaexporter, kafkareceiver: Add a new mechanism "AWS_MSK_IAM_OAUTHBEARER" for kafka exporter and kafka receiver. This mechanism use the AWS MSK IAM SASL Signer for Go https://github.com/aws/aws-msk-iam-sasl-signer-go. (#19747)

  • loadbalancingexporter: Adds a an optional configuration to the k8s resolver which returns hostnames instead of IPs for headless services pointing at statefulsets (#18412)

  • mongodbatlasreceiver: Adds additional metrics to the MongoDB Atlas receiver (#36525)
    Adds a number of new default disabled metrics to the MongoDB Atlas receiver. These metrics are:

    • mongodbatlas.disk.partition.queue.depth
    • mongodbatlas.disk.partition.throughput
    • mongodbatlas.process.cache.ratio
  • s3exporter: Upgrading to adopt aws sdk v2 (#36699)

  • opampextension: Use status subscription for fine granular component health reporting (#35856)

  • pkg/pdatatest: Add support for Profiles signal comparison. (#36232)

  • receiver/prometheusremotewrite: Parse labels from Prometheus Remote Write requests into Resource and Metric Attributes. (#35656)
    Warning - The HTTP Server still doesn't pass metrics to the next consumer. The component is unusable for now.

  • signaltometrics: Add config validation and custom OTTL functions (#35930)
    Adds config validation for the signal to metrics connector. Also introduces AdjustedCount OTTL function.

  • testbed: Add batcher performance tests (#36206)

  • tesbed: add options for retry/storage for filelog sender (#36781)

🧰 Bug fixes 🧰

  • azuremonitorexporter: fix bug to remove default config of endpoint which causes failing to parse endpoint correctly. (#36704)

  • receiver/prometheusreceiver: Metric adjuster no longer assumes that all metrics from a scrape come from the same resource (#36477)

  • connector/datadog, exporter/datadog, pkg/datadog: throw error if datadog API key contains invalid characters (#36509)

  • parseutils: Handle escaped quotes when parsing pairs using SplitString. (#36176)

  • exporter/prometheusremotewrite: Fix exemplar handling when the exemplar is an integer value. (#36657)
    Send metrics with exemplars as integer values now are correctly handled.

  • googlecloudmonitoringreceiver: Fix "no validation found" error if workload is running on Google Cloud Platform (#36607)

  • k8sattributesprocessor: Override extracted k8s attributes if original value has been empty (#36373)

  • k8sattributesreceiver: Log any errors encountered during kube client initialisation (#35879)
    This addresses an issue where the collector, due to an error encountered during the kubernetes client initialisation,
    was reporting an 'unavailable' status via the health check extension without any further information to be found in the logs.

  • opampextension: Fix blocking agent shutdown due to unclosed channel (#36764)

  • opampsupervisor: avoid nil pointer access when reporting the last received remote config (#36850)

  • postgresqlreceiver: Update the postgresqlreceiver to handle new table schema for the bgwriter metrics in pg17+ (#36784)

  • jaegerreceiver: Remove ineffectual warning from jaegerreceiver (#35894)

  • datadogexporter: read response body on pushSketches to allow connection re-use (#36779)

  • sumologicextension: Skip likely zombie processes on Windows. (#36481)

API Changelog

🚩 Deprecations 🚩

  • routingprocessor: Deprecated in favor of the routing connector. (#36616)

💡 Enhancements 💡

  • pkg/ottl: Add the ottl.ParserCollection utility to help handling parsers for multiple OTTL contexts (#29017)
    The ottl.ParserCollection groups 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.

v0.115.0

04 Dec 13:18
a490083
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

Unmaintained Components

These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.

  • exporter/opensearchexporter/
  • extension/observer/ecstaskobserver/
  • receiver/jmxreceiver/

End User Changelog

🛑 Breaking changes 🛑

  • awsfirehosereceiver: Follow receiver contract based on type of error (#5909)

  • elasticsearchexporter: Respect flush::bytes in sync bulk indexer, flush::bytes measures uncompressed size, change default batcher::max_size_items to 0 (#36163)
    Limit the bulk request size to roughly flush::bytes for sync bulk indexer. Sync bulk indexer is used when batcher::enabled is either true or false. In order words, sync bulk indexer is not used when batcher config is undefined. Change flush::bytes to always measure in uncompressed bytes. Change default batcher::max_size_items to 0 as bulk request size limit is now more effectively enforced by flush::bytes.

  • k8sattributesprocessor: Move k8sattr.fieldExtractConfigRegex.disallow feature gate to Beta. (#25128)
    Disable the k8sattr.fieldExtractConfigRegex.disallow feature gate to get the old behavior.

  • internal: Remove stable gate component.UseLocalHostAsDefaultHost (#36589)

  • cmd/opampsupervisor: Update default logger output paths to stderr (#36072)
    The default output paths for the opamp supervisor logger have been updated to stderr from [stdout, stderr].

  • opampsupervisor: Enable strict unmarshalling of the OpAMP Supervisor config file. An error will now be returned if an invalid config key is set. (#35838)

🚩 Deprecations 🚩

  • postgresqlreceiver: Minimal supported PostgreSQL version updated from 9.6 to 13.0 (#30923)
    Aligning on the supported versions as can be seen in the PostgreSQL releases section
  • exporter/prometheusremotewrite: Change exporter.prometheusremotewriteexporter.deprecateCreatedMetric feature gate from Alpha to Beta version. (#35003)
    The export_created_metric configuration parameter is now ignored by default.

🚀 New components 🚀

  • signaltometricsconnector: New component for generating metrics from raw signals using user defined OTTL expressions. (#35930)
  • extension/cgroupruntime: Initial implementation for cgroupruntime extension. (#30289)
  • huaweicloudcesreceiver: Introduce new receiver fetching data from huawei Cloud Eye Service. (#34953)
  • netflowreceiver: Introduce the netflow receiver (#32732)

💡 Enhancements 💡

  • datadogexporter: Add a configurable reporter_period parameter to the Datadog exporter’s host metadata configuration to allow users to specify the frequency at which host metadata is sent to Datadog. (#36450)

  • awsemfexporter: Add support for 1 second metric resolution in CloudWatch Embedded Metrics Format based on metric attributes (#29506)

  • awsemfexporter: Improvement unit conversion during EMF log translation (#35937)

  • sumologicexporter: adding new products for auto discovery (#35622)

  • postgresqlreceiver: Added new postgresql metrics to acheive parity with Telegraf (#36528)

  • loadbalancingexporter: Adding sending_queue, retry_on_failure and timeout settings to loadbalancing exporter configuration (#35378, #16826)
    When switching to top-level sending_queue configuration - users should carefully review queue size
    In some rare cases setting top-level queue size to n*queueSize might be not enough to prevent data loss

  • pkg/stanza: Introduce active file grouping mechanism. (#23787)

  • receivercreator: Add support for starting receivers/scrapers based on provided annotations' hints for metrics' collection (#34427)

  • tailsamplingprocessor: Adds decision cache for non-sampled trace IDs (#31583)

  • cmd/opampsupervisor: Support environment variable expansion in the OpAMP supervisor config. (#36269)

  • pkg/ottl: Move debug log to Statement.Execute so that components using it instead of StatementSequence also get debug logs. (#36456)

  • routingconnector: Add abiilty to route by 'datapoint' context (#36523)

  • signalfxreceiver: Follow receiver contract based on type of error (#5909)
    Use 503 error code for retryable and 400 error code for not-retryable errors instead of responding with a 500 unconditionally.

🧰 Bug fixes 🧰

  • cmd/opampsupervisor: Do not log err if the last received doesn't exist (#36013)

  • receiver/azureeventhub: When using a storage extension, the component will call Close on the client during component shutdown. This fixes a bug that resulted in a file potentially remaining locked after component shutdown. (#36238)

  • azuremonitorexporter: Fixes an issue where the Azure Monitor exporter was not sending data to App Insights due to the Telemetry Channel not being flushed. (#35037)

  • exporter/pulsarexporter: Change configuration option map_connections_per_broker, rename to max_connections_per_broker. (#36579)

  • failoverconnector: Resolves a bug that prevents proper recovery when disabling max retries (#36587)

  • googlecloudpubsubexporter: Fix a goroutine leak during shutdown. (#30438)
    A goroutine leak was found in the googlecloudpubsubexporter.
    The goroutine leak was caused by the exporter not closing the underlying created gRPC client when using an insecure custom endpoint.

  • processor/k8sattribute: fixes parsing of k8s image names to support images with tags and digests. (#36131)

  • clickhouseexporter: Fix incorrect Resource Attribute service.name translation to ClickHouse ServiceName field for Logs Records (#36349)

  • awsfirehosereceiver: fix timestamp when ingesting logs from CloudWatch through firehose (#36122)

  • pkg/ottl: Allow indexing []int64, []float64, []bool, and []byte slices (#29441)
    It should now be possible to index all slice types

  • opencensusreceiver: Do not report error message when OpenCensus receiver is shutdown cleanly. (#36622)

  • loadbalancingexporter: The k8sresolver in loadbalancingexporter was triggering exporter churn in the way the change event was handled. (#35658)

  • vcenterreceiver: The existing code did not honor TLS settings beyond 'insecure'. All TLS client config should now be honored. (#36482)

API Changelog

🛑 Breaking changes 🛑

  • pkg/datadog: Refactor the API that provides metrics translator (#36474)
    This is API change only and does not affect end users

v0.114.0

18 Nov 23:58
v0.114.0
5ce01a3
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

Unmaintained Components

These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.

  • exporter/opensearchexporter/
  • extension/observer/ecstaskobserver/
  • receiver/jmxreceiver/

End User Changelog

v0.114.0

🛑 Breaking changes 🛑

  • datadogexporter: Stop prefixing http_server_duration, http_server_request_size and http_server_response_size with otelcol (#36265)
    These metrics can be from SDKs rather than collector. Stop prefixing them to be consistent with https://opentelemetry.io/docs/collector/internal-telemetry/#lists-of-internal-metrics
  • otelarrowreceiver: New admission control metrics are consistent across Arrow and OTLP data paths. (#36334)
    otelcol_otelarrow_admission_in_flight_bytes new, replaces otelcol_otel_arrow_receiver_in_flight_bytes
    otelcol_otelarrow_admission_waiting_bytes: new, describes waiting requests
    otelcol_otel_arrow_receiver_in_flight_items: removed
    otelcol_otel_arrow_receiver_in_flight_requests: removed

🚩 Deprecations 🚩

  • exporter/prometheusremotewrite: Deprecate configuration option export_created metric (#35003)
    Disable the exporter.prometheusremotewriteexporter.deprecateCreatedMetric feature gate to temporarily re-enable the created metric.

💡 Enhancements 💡

  • datadogreceiver: Add json handling for the api/v2/series endpoint in the datadogreceiver (#36079)
  • googlemanagedprometheus: Add CumulativeNormalization config option to allow users to configure to specify whether to report normalized or un-normalized points. Defaults to normalized. (#36357)
  • elasticsearchexporter: Translate k8s.*.name resource attributes in ECS mode (#36233)
    Translate k8s.job.name, k8s.cronjob.name, k8s.statefulset.name, k8s.replicaset.name, k8s.daemonset.name, k8s.container.name to kubernetes.*.name. Translate k8s.cluster.name to orchestrator.cluster.name.
  • encodingextension: Add support for profiles signal to encodingextension (#36008)
  • k8sattributesprocessor: Add support for profiles signal (#35983)
  • cmd/githubgen: Adds a flag to skip checking GitHub organization membership for CODEOWNERS (#36263)
  • container: Set non root group permissions for container image (#35179)
  • k8sclusterreceiver: Add support for limiting observed resources to a specific namespace. (#9401)
    This change allows to make use of this receiver with Roles/RoleBindings, as opposed to giving the collector cluster-wide read access.
  • opampextension: Add content type to opamp extension when reporting EffectiveConfig (#36327)
    Add EffectiveConfig.ConfigMap.ConfigMap[*].ContentType as "text/yaml" to the opamp extension when reporting EffectiveConfig.
  • otelarrowreceiver: Admission control improvements (LIFO); admission.waiter_limit is deprecated, replaced with admission.waiting_limit_mib. (#36074)
  • otelarrowreceiver: Add a new LIFO-based bounded queue. (#36074)
  • connector/otlpjson: Throw error on invalid otlp payload. (#35738, #35739)
  • prometheusremotewriteexporter: reduce allocation when serializing protobuf (#35185)
  • resourcedetectionprocessor: Introduce support for Profiles signal type. (#35980)
  • routingconnector: Add ability to route by metric context (#36236)
  • routingconnector: Add ability to route by span context (#36276)
  • processor/spanprocessor: Add a new configuration option to keep the original span name when extracting attributes from the span name. (#36120)
  • splunkenterprisereceiver: Add new metrics for Splunk Enterprise dispatch artifacts caches (#36181)

🧰 Bug fixes 🧰

  • pkg/stanza: Ensure that time parsing happens before entry is sent to downstream operators (#36213)
  • prometheusexporter: Fixes a race condition between the exporter start and shutdown functions. (#36139)
  • processor/k8sattributes: Block when starting until the metadata have been synced, to fix that some data couldn't be associated with metadata when the agent was just started. (#32556)
  • exporter/loadbalancing: Shutdown exporters during collector shutdown. This fixes a memory leak. (#36024)
  • pkg/ottl: Respect the depth option when flattening slices using flatten (#36161)
    The depth option is also now required to be at least 1.
  • prometheusexporter: reject metrics whose types have changed, use pre-existing descriptions when help strings change (#28617)
  • pkg/stanza: Synchronous handling of entries passed from the log emitter to the receiver adapter (#35453)
  • prometheusreceiver: Fix prometheus receiver to support static scrape config with Target Allocator (#36062)

API Changelog

v0.114.0

🛑 Breaking changes 🛑

  • pkg/stanza: Changed signature of emit.Callback function in pkg/stanza/fileconsumer/emit package by introducing emit.Token struct that encapsulates the token's body and attributes. (#36260)

💡 Enhancements 💡

  • pkg/datadog: Expose an API TranslatorFromConfig that creates a new metrics translator (#36300)
    This is only code refactor and has no user-facing impact

v0.113.0

06 Nov 21:13
v0.113.0
1af2707
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

End User Changelog

v0.113.0

🛑 Breaking changes 🛑

  • sapmreceiver: Remove the deprecated access_token_passthrough from SAPM receiver. (#35972)
    Please use include_metadata instead with the following config option applied to the batch processor:
    batch:
    metadata_keys: [X-Sf-Token]

  • pkg/ottl: Promote processor.transform.ConvertBetweenSumAndGaugeMetricContext feature gate to Stable (#36216)
    This gate can no longer be disabled. The convert_sum_to_gauge and convert_gauge_to_sum may now only be used with the metric context.

🚩 Deprecations 🚩

  • opensearchexporter: The OpenSearch exporter is now marked as unmaintained and will be removed in 6 months. (#35781)
    Any codeowners can reinstate the component by submitting a PR to revert the change or commenting on #35781.

🚀 New components 🚀

  • dorisexporter: metrics implementation (#33479)
  • extensions/observer/cfgardenobserver: Implemented the observer, the second PR in the 3 PR process for new components (#33618)

💡 Enhancements 💡

  • splunkenterprisereceiver: Add telemetry around the Splunk Enterprise kv-store. (#35445)

  • journaldreceiver: adds ability to parse journald's MESSAGE field as a string if desired (#36005)

  • journaldreceiver: allows querying a journald namespace (#36031)

  • hostmetricsreceiver: Add the system.uptime metric in the hostmetrics receiver (#31627)
    This metric is provided by the new system scraper.

  • azuredataexplorerexporter: Add new configuration option use_default_auth to enable default authentication for Azure Data Explorer. This option allows users to leverage workload identity for authentication. (#33667)

  • awss3receiver: Mark the AWS S3 receiver as Alpha. (#30750)

  • opampsupervisor: Makes the Supervisor's OpAmp server port configurable with 'agent::opamp_server_port'. (#36001)

  • datadogreceiver: Follow receiver contract based on type of error (#5909)

  • hostmetrics: Adjust scraper creation to make it so the scraper name is reported with hostmetrics scraper errors. (#35814)

  • pkg/translator/prometheusremotewrite: FromMetricsV2 now transforms attributes into labels. (#33661)

  • ntpreceiver: Move NTP receiver to alpha (#36152)

  • opampsupervisor: Supervisor waits for configurable healthchecks to report remote config status. (#21079)

  • otelarrowreceiver: Enable unlimited admission control when request_limit_mib is set to 0. (#36074)

  • pkg/ottl: Add SliceToMap function (#35256)

  • 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.

  • receiver/prometheusremotewrite: Implement Content-Type negotiation for Prometheus Remote Write requests (#35565)
    Warning - The HTTP Server still doesn't do anything. It's just a placeholder for now.

  • otlpjsonfilereceiver: Add support for profiles signal (#35977)

  • journaldreceiver: Restart journalctl if it exits unexpectedly (#35635)

  • routingconnector: Add ability to route by request metadata. (#19738)

  • exporter/signalfx: Enabling retrying for dimension properties update without tags in case of 400 response error. (#36044)
    Property and tag updates are done using the same API call. After this change, the exporter will retry once to sync
    properties in case of 400 response error.

  • signalfxexporter: Add more default metrics related to Kubernetes cronjobs, jobs, statefulset, and hpa (#36026)

  • simpleprometheusreceiver: Support to set job_name in config (#31502)

  • solacereceiver: Add support to the Solace Receiver to convert the new Move to Dead Message Queue and new Delete spans generated by Solace Event Broker to OTLP. (#36071)

  • connector/routing: Add ability to route log records individually using OTTL log record context. (#19738)

  • splunkenterprisereceiver: Add new metrics for Splunk Enterprise dispatch artifacts (#35950)

🧰 Bug fixes 🧰

  • awsfirehosereceiver: make otlp_v1 a valid record type (#35750, #36125)

  • datadogreceiver: Return a json reponse instead of "OK" when a trace is received with a newer protocol version. (#35705)

  • datadogreceiver: Changes response message for /api/v1/check_run 202 response to be JSON and on par with Datadog API spec (#36027)

  • receiver/windowseventlog: Fix panic when rendering long event messages. (#36179)

  • hostmetricsreceiver: Do not set the default value of HOST_PROC_MOUNTINFO to respect root_path (#35990)

  • prometheusexporter: Fixes an issue where the prometheus exporter would not shut down the server when the collector was stopped. (#35464)

  • k8sobserver: Enable observation of ingress objects if the ObserveIngresses config option is set to true (#35324)

  • pkg/stanza: Fixed bug causing Operators with DropOnErrorQuiet to send log entries to the next operator. (#35010)
    This issue was introduced by a bug fix meant to ensure Silent Operators are not logging errors (#35010). With this fix,
    this side effect bug has been resolved.

  • otelarrowreceiver: Simplify receiver admission control logic (#36074)

  • otelarrowreceiver: Avoid breaking telemetry when admission control fails in OTLP handlers. (#36074)

  • dbstorage: Add postgresql support (#35692)

  • splunkhecreceiver: Avoid a memory leak by changing how we record obsreports for logs and metrics. (#35294)

  • receiver/filelog: fix record counting with header (#35869)

  • connector/routing: Fix detection of duplicate conditions in routing table. (#35962)

  • solacereceiver: The Solace receiver may unexpectedly terminate on reporting traces when used with a memory limiter processor and under high load (#35958)

  • pkg/stanza/operator: Retain Operator should propagate the severity field (#35832)
    The retain operator should propagate the severity field like it does with timestamps.

  • pkg/stanza: Handle error of callback function of ParserOperator.ProcessWithCallback (#35769)
    ProcessWithCallback of ParserOperator first calls the ParseWith method
    which properly handles errors with HandleEntryError.
    Then the callback function is called and its returned error should also
    be handled by the HandleEntryError ensuring a consistent experience.

  • webhookeventreceiver: Pass the consumer error to EndLogsOp (#35844)

API Changelog

v0.113.0

🛑 Breaking changes 🛑

  • testbed: scenarios.createConfigYaml() and utils.CreateConfigYaml() functions now take processor configs as a struct slice argument instead of map[string]string. (#33003)
    • This is to preserve processor order. ProcessorNameAndConfigBody is the newly created struct.

💡 Enhancements 💡

  • 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.

v0.112.0

23 Oct 13:07
7090083
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

End User Changelog

🛑 Breaking changes 🛑

  • elasticsearchexporter: Enable gzip compression by default (#35865)
    To disable compression, set config compression to none.
  • elasticsearchexporter: Set body.* for log body in OTel mode (#35771)
    Log record body in OTel mapping mode will be stored in body.text, body.structured, body.flattened based on body value type and presence of event.name attribute
  • processor/metricsgeneration: Remove "experimental_" prefix from metrics generator processor name. (#35426)

🚩 Deprecations 🚩

  • sapmreceiver: Deprecate SAPM receiver (#32125)
  • elasticsearchexporter: Deprecate retry::max_requests in favor of retry::max_retries (#32344)
    retry::max_retries will be exactly retry::max_requests - 1

🚀 New components 🚀

  • confmap/aesprovider: Initial aes encryption provider. Allows configurations to decrypt secrets using AES encryption. (#35550)
  • systemdreceiver: Introduce the scaffolding of a new component, systemdreceiver (#33532)
  • ntpreceiver: Introduce new receiver reporting the offset between the local machine and a NTP server. (#34375)
  • tlscheckreceiver: Add TLS Check Receiver component to monitor x.509 certificate expiry (#35423)

💡 Enhancements 💡

  • awsfirehosereceiver: Add support for CloudWatch logs (#35077)

  • awsfirehosereceiver: added OTLP v1 support to Firehose receiver (#34982)

  • awss3receiver: Add support for monitoring the progress of ingesting data from an S3 bucket via OpAMP custom messages. (#30750)

  • azureeventshubreceiver: Updates the Azure Event Hub receiver to use the new Resource Logs translator. (#35357)

  • cloudflarereceiver: Respond 503 on non-permanent and 400 on permanent errors (#35642)

  • elasticsearchexporter: Add hint in error logs for TSDB version_conflict_engine_exception error (#35546)

  • pkg/ottl: Add ConvertAttributesToElementsXML Converter (#35328)

  • logdedupprocessor: Add a condition field to the Log DeDuplication Processor. (#35440)

  • opampextension: Support using auth extensions for authenticating with opamp servers (#35507)

  • azureblobreceiver: adds support for using azidentity default auth, enabling the use of Azure Managed Identities, e.g. Workload Identities on AKS (#35636)
    This change allows to use authentication type "default", which makes the receiver use azidentity default Credentials,
    which automatically picks up, identities assigned to e.g. a container or a VirtualMachine

  • elasticsearchexporter: Introduce an experimental bodymap mapping mode for logs (#35444)

  • googlecloudexporter: Google Cloud exporter is marked as mutating. (#35366)

  • googlemanagedprometheusexporter: GMP exporter is marked as mutating. (#35366)

  • k8sobserver: Emit endpoint per Pod's container (#35491)

  • mongodbreceiver: Add support for MongoDB direct connection (#35427)

  • exporter/clickhouse: Add the ability to override default table names for all metric types. (#34225)
    'metrics_table_name' of the clickhouse exporter config is deprecated and newly introduced parameter 'metrics_tables' should be used instead.

  • metricsgenerationprocessor: Introduce functionality to only do metric calculations on data points whose attributes match (#35425)
    This functionality can be enabled by the metricsgeneration.MatchAttributes feature gate, which is disabled by default.

  • chronyreceiver: Move chronyreceiver to beta (#35913)

  • opampextension: Implement ReportsHealth capability in OpAMP extension (#35433)

  • opampextension: Report OS description semantic convention (os.description) as a part of non-identifying agent description. (#35555)

  • otelarrowexporter: Adjust defaults from https://opentelemetry.io/blog/2024/otel-arrow-production/ experiments. (#35477)

  • pkg/ottl: Parsing invalid statements and conditions now prints all errors instead of just the first one found. (#35728)

  • pkg/ottl: Add ParseSimplifiedXML Converter (#35421)

  • receiver/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.

  • rabbitmqexporter: Allow to configure the name of the AMQP connection in the rabbitmqexporter (#34681)

  • routingconnector: Allow routing based on OTTL Conditions (#35731)
    Each route must contain either a statement or a condition.

  • sapmreceiver: Respond 503 on non-permanent and 400 on permanent errors (#35300)

  • opampsupervisor: Allow collector logs to passthrough to supervisor output to facilitate running in a containerized environment. (#35473)

  • hostmetricsreceiver: Use HOST_PROC_MOUNTINFO as part of configuration instead of environment variable (#35504)

  • pkg/ottl: Add ConvertTextToElements Converter (#35364)

🧰 Bug fixes 🧰

  • metricstransform: The previously removed functionality of aggregating against an empty label set is restored. (#34430)

  • datadogreceiver: Use Check name from Service Check structure as metric name rather than hardcoded string service_check (#35718)

  • azuredataexplorerexporter: Fix compression type for Azure Data Explorer exporter by adding the compression type in ingestion properties. (#35353)

  • telemetrygen: ensure validate is called (#35745)

  • deltatocumulative: fix meter panic on startup (#35685)
    properly constructs the TelemetryBuilder, so it does not panic on startup, rendering the entire component unusable

  • elasticsearchexporter: Log and drop invalid metrics instead of returning error to avoid upstream retries (#35740)

  • elasticsearchexporter: Preserve attribute names and metric names on prefix conflict in OTel mapping mode (#35651)
    e.g. if there are attributes "a" and "a.b", they should be sent to Elasticsearch as is, instead of "a.value" and "a.b", in OTel mapping mode

  • elasticsearchexporter: Make OTel mapping mode send to data streams only (#35839)
    This prevents auto creating regular indices in OTel mapping mode due to a race condition in Elasticsearch where otel-data index templates are not ready.

  • elasticsearchexporter: Sanitize datastream routing fields (#34285)
    Sanitize the dataset and namespace fields according to https://www.elastic.co/guide/en/ecs/current/ecs-data_stream.html.

  • oidcauthextension: Fix a goroutine leak during shutdown. (#30438)
    A goroutine leak was found in oidcauthextension. The goroutine leak was caused by the oidcauthextension not closing the idle connections in the client and transport.

  • filelogreceiver: Supports add_metadata_from_filepath for Windows filepaths (#35558)

  • filelogreceiver: Suppress errors on EBADF when unlocking files. (#35706)
    This error is harmless and happens regularly when delete_after_read is set. This is because we acquire the lock right at the start of the ReadToEnd function and then defer the unlock, but that function also performs the delete. So, by the time it returns and the defer runs the file descriptor is no longer valid.

  • kafkareceiver: Fixes issue causing kafkareceiver to block during Shutdown(). (#30789)

  • hostmetrics receiver: Fix duplicate filesystem metrics (#34635, #34512)
    The hostmetrics exposes duplicate metrics of identical mounts exposed in namespaces. The duplication causes errors in exporters that are sensitive to duplicate metrics. We can safely drop the duplicates as the metrics should be exactly the same.

  • pkg/translator/prometheusremotewrite: Fix metric comparison func in prom translation layer (#35741)

  • pkg/ottl: Allow indexing string slice type (#29441)

  • mysqlreceiver: Add replica metric support for versions of MySQL earlier than 8.0.22. (#35217)

  • stanza/input/windows: Close remote session while resubscribing (#35577)

  • telemetrygen: Enable the --otlp-insecure-skip-verify flag (#35735)

  • receiver/windowseventlog: Errors returned when passing data downstream will now be propagated correctly. (#35461)

  • datadogreceiver: Changes response message for /api/v1/series and /api/v2/series 202 response to be JSON and on par with Datadog API spec (#35743)

API Changelog

🛑 Breaking changes 🛑

  • pkg/translator/jaeger: Remove error from method signature as it always returns nil (#35560)

🚀 New components 🚀

  • pkg/status: Refactors the extension/healthcheckv2extension/internal/status into pkg/status (#34692)

💡 Enhancements 💡

  • pkg/translator/prometheusremotewrite: add FromMetricsV2 (#33661)
    The public function is partially implemented and not ready for use
  • receiver/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.

v0.111.0

04 Oct 12:42
47cd38d
Compare
Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

🆕 The binary release adds a new OTLP-only distro. Feel free to leave us feedback on this new distro on the opentelemetry-collector-releases issue tracker.

⚠️ The core release removes the logging exporter. See open-telemetry/opentelemetry-collector#11337 for instructions on how to migrate to the debug exporter.

End User Changelog

🛑 Breaking changes 🛑

  • instanaexporter: Remove deprecated instanaexporter (#35367)
    Use the otlp exporter instead as explained in IBM's documentation.
  • elasticsearchexporter: Drop cumulative temporality histogram and exponential histogram (#35442)
    Cumulative temporality histogram and exponential histogram are not supported by Elasticsearch. Use cumulativetodeltaprocessor to convert cumulative temporality to delta temporality.
  • elasticsearchexporter: Implement receiver-based routing under *_dynamic_index config (#34246)
  • config: Move component.UseLocalHostAsDefaultHost feature gate to stable. (#35569)
  • metricsgenerationprocessor: Generate metrics even when the second metric's value is 0 (#35533)
  • signalfxexporter: Do not exclude the metric container.memory.working_set (#35475)
  • sqlqueryreceiver: Fail if value for log column in result set is missing, collect errors (#35068)
  • windowseventlogreceiver: The 'raw' flag no longer suppresses rendering info. (#34720)
    Previously, this flag controlled two behaviors simultaneously:
    1. Whether or not the body of the log record was an XML string or structured object.
    2. Whether or not rendering info was resolved.
      A separate 'suppress_rendering_info' option now controls rendering info resolution.
      This is considered a breaking change because users setting only the 'raw' flag without also setting the
      new 'suppress_rendering_info' flag may see a performance decrease along with more detailed events.

🚩 Deprecations 🚩

  • sapmreceiver: access_token_passthrough is deprecated (#35330)
    • "access_token_passthrough is deprecated."
    • "Please enable include_metadata in the receiver and add the following config to the batch processor:"
    batch:
      metadata_keys: [X-Sf-Token]

🚀 New components 🚀

  • receiver/prometheusremotewrite: Add a new receiver for Prometheus Remote Write.
    (#33782)

💡 Enhancements 💡

  • sumconnector: adds connector and summing logic along with tests (#32669)

  • receivercreator: Validate endpoint's configuration before starting receivers (#33145)

  • otelarrowreceiver: Add admission control in the otelarrow receiver's standard otlp data path.
    Also moves admission control config options to a separate block.
    arrow.admission_limit_mib -> admission.request_limit_mib
    arrow.waiter_limit -> admission.waiter_limit
    (#35021)

  • clickhouseexporter: Upgrading stability for traces to beta (#35186)
    The trace exporter has proven to be stable for production deployments.
    Trace configuration is unlikely to receive any significant changes.

  • clickhouseexporter: Updated the default trace table (#34245)
    Reduced data types, improved partitioning and time range queries

  • opampsupervisor: Add configurable logging for the supervisor. (#35466)

  • datadogreceiver: Move receiver's metrics stability to alpha. (#18278)

  • datadogreceiver: Add container id from v0.5 request header (#35345)

  • elasticsearchexporter: Implement elasticsearch.mapping.hints attribute handling for data points in OTel mapping mode (#35479)
    elasticsearch.mapping.hints takes a slice of strings. _doc_count enables emitting _doc_count for the document. aggregate_metric_double causes histogram or exponential histogram to be emitted as aggregate_metric_double.

  • elasticsearchexporter: Revert TSDB array dimension workaround for metrics OTel mode (#35291)
    Remove the workaround to stringify array dimensions as the limitation has been lifted in Elasticsearch v8.16.0.

  • receiver/statsd: Add support for aggregating on Host/IP.
    (#23809)

  • opampsupervisor: Skip executing the collector if no config is provided (#33680)

  • googlecloudmonitoringreceiver: Move receiver's stability to alpha. (#33762)

  • hostmetricsreceiver: Add ability to mute all errors (mainly due to access rights) coming from process scraper of the hostmetricsreceiver (#20435)

  • kubeletstats: Introduce feature gate for deprecation of container.cpu.utilization, k8s.pod.cpu.utilization and k8s.node.cpu.utilization metrics (#35139)

  • opampsupervisor: Make supervisor runnable as a Windows Service. (#34774)

  • opampsupervisor: Add config option for setting the timeout for the initial bootstrap information retrieval from the agent (#34996)

  • pkg/ottl: Add InsertXML Converter (#35436)

  • pkg/ottl: Add GetXML Converter (#35462)

  • pkg/ottl: Add ToKeyValueString Converter (#35334)

  • pkg/ottl: Add RemoveXML Converter (#35301)

  • geoipprocessor: No longer return an error when geo metadata is not found by a provider. (#35047)

  • sqlserverreceiver: Add computer name resource attribute to relevant metrics (#35040)

  • windowseventlogreceiver: Add 'suppress_rendering_info' option. (#34720)
    When this flag is enabled, the receiver will not attempt to resolve rendering info. This can improve performance
    but comes at a cost of losing some details in the event log.

  • windowseventlogreceiver: Move artificial "remote_server" field to 'attributes["server.address"]'. (#34720)

🧰 Bug fixes 🧰

  • webhookeventreceiver: Fixed a bug where request bodies containing newline characters caused the results to split into multiple log entries (#35028)
  • opampsupervisor: Only use TLS config when connecting to OpAMP server if using wss or https protocols. (#35283)
  • metricsgenerationprocessor: Allow metric calculations to be done on sum metrics (#35428)
  • sqlqueryreceiver: Fix reprocessing of logs when tracking_column type is timestamp (#35194)
  • windowseventlogreceiver: While collecting from a remote windows host, the stanza operator will no longer log "subscription handle is already open" constantly during successful collection. (#35520)
  • windowseventlogreceiver: If collecting from a remote host, the receiver will stop collecting if the host restarts. This change resubscribes when the host restarts. (#35175)

API Changelog

💡 Enhancements 💡

  • opampsupervisor: Pass config structure instead of file path when using NewSupervisor function (#34379)