Skip to content

v0.130.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 14 Jul 16:06
· 1 commit to main since this release
v0.130.0
77be382

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 🛑

  • kubeletstats: Move receiver.kubeletstats.enableCPUUsageMetrics feature gate to stable (#39650)

  • geoipprocessor: Use semantic convention Geo attributes (#34745)
    Replace geo.continent_code, geo.country_iso_code, geo.region_iso_code
    with semantic conventions geo.continent.code, geo.country.iso_code, geo.region.iso_code
    attributes.

  • kafka: The default client ID for Kafka components now honours configuration, and defaults to "otel-collector". (#41090)
    The client ID configuration was ineffective, and (when using the Sarama implementation)
    always defaulted to "sarama". We now honour the configuration, and the default has changed,
    hence this is a breaking change for anyone relying on the client ID being "sarama".

  • servicegraphconnector: Remove deprecated field database_name_attribute and update the documentation. (#41094)

  • cmd/opampsupervisor: Remote configuration by default now merges on top of user-provided config files. (#39963)
    Previous, by default, user-provided config files were merged on top of all
    other configuration. This is not the case anymore.

    The new default order configuration merging is as follows (from lowest to highest precedence):

    • $OWN_TELEMETRY_CONFIG
    • <USER_PROVIDED_CONFIG_FILES>
    • $OPAMP_EXTENSION_CONFIG
    • $REMOTE_CONFIG

🚩 Deprecations 🚩

  • splunkhecexporter: Deprecate 'batcher' config, use 'sending_queue::batch' instead (#41224)
  • spanmetricsconnector: Mark dimensions_cache_size as deprecated following the upstream guidelines (#41101)

🚀 New components 🚀

  • tinybird: Implement logs propagation for Tinybird exporter (#40475)

💡 Enhancements 💡

  • elasticsearchexporter: Add telemetry for bulk indexers used to index documents to Elasticsearch. (#38610)

  • coralogixprocessor: Add transactions feature (#40863)
    The transactions feature enables tracking of distributed transactions across microservices in a distributed system.
    It provides end-to-end visibility into request flows by correlating spans across different services, allowing
    developers to understand the complete journey of a request through their microservices architecture. This
    feature is particularly useful for identifying performance bottlenecks, debugging issues, and monitoring
    the health of distributed applications.

    More information:
    https://coralogix.com/docs/user-guides/apm/features/transactions

  • coralogixprocessor: Promote traces to alpha stability. (#41061)

  • awslogsencodingextension: Bump the stability to Alpha, and include it in otelcontribcol. (#38627)

  • cgroupruntimeextension: Promote to alpha stability (#41128)

  • awslogsencodingextension: Add support for AWS CloudTrail logs. (#40246)
    The AWS Logs Encoding Extension now supports unmarshaling AWS CloudTrail logs into OpenTelemetry logs format.
    The implementation follows OpenTelemetry semantic conventions for attributes like rpc.method, rpc.system,
    rpc.service, cloud.provider, cloud.region, and cloud.account.id.

    CloudTrail logs can be used to monitor API activity across your AWS infrastructure, and this integration
    enables ingestion of these logs into your OpenTelemetry pipeline for unified observability.

  • elasticsearchexporter: Support profiles variable sampling frequency. (#40115)

  • elasticsearchexporter: Duplicate profiling events with count values larger than 1 (#40946)
    Having all events with count=1 enables random sampling on the read path.

  • elasticsearchexporter: Store Sample level service.name with each profiling event. (#40967)

  • elasticsearchexporter: Increase metric grouping hash and _metric_names_hash from 32 bit to 64 bit to reduce collisions and chance of consequent data loss. (#41208)

  • faroreceiver: Ensure that the level is added to all the faro logs. (#40701)

  • tinybirdexporter: Add traces implementation (#40475)

  • jsonlogencodingextension: Add array_mode configuration option and add support to process arbitrary JSON inputs (#40877, #40545)
    array_mode is default set to true to preserve backward compatibility. When set to true, extension accepts single or concatenated Json (ex:- NDJSON)

  • filelogreceiver: Add option include_file_record_offset to insert offset as attribute in log records as log.file.record.offset (#39684)

  • githubreceiver: Added the ability to convert custom repository properties to span attributes (#40878)

  • elasticsearchexporter: Improve error messages for invalid datapoints by including metric names in error output (#39063)
    Previously, error messages for invalid number data points and histogram data points were generic.
    Now they include the specific metric name to help with debugging and troubleshooting.

  • loadbalancingexporter: Use a linear probe to decrease variance caused by hash collisions, which was causing a non-uniform distribution of loadbalancing. (#41200)

  • metricstarttimeprocessor: Add the start_time_metric, which sets the start time based on another metric in the batch of metrics. (#38383)

  • mysqlreceiver: Collect 'fsync' log operations. (#41175)

  • mysqlreceiver: Add mysql.max_used_connections metric (#40626)
    mysql.max_used_connections contains the maximum number of used sessions since the instance start.

  • sqlserverreceiver: Adding 'sqlserver.cpu.count' metric (#41032)

  • postgresqlreceiver: Only scrape the query samples that are newer than last scraped (#40622)

  • pkg/ottl: Add new Keys converter to extract all keys from a given map. (#39256)

  • pkg/ottl: Added a new ParseInt OTTL Function. (#40758)

  • receiver/postgresql: Move receiver.postgresql.connectionPool feature gate to alpha (#30831)
    This change updates the receiver to use the connection pooling for performance benefits.

  • transformprocessor: Add profiles support to transformprocessor. (#39009)

  • prometheusremotewriteexporter: Adds WAL bytes read/write metrics to the Prometheus Remote Write Exporter. The new metrics are:

  • otelcol_exporter_prometheusremotewrite_wal_bytes_written: The total number of bytes written to the WAL.

  • otelcol_exporter_prometheusremotewrite_wal_bytes_read: The total number of bytes reads from the WAL.
    (#39556)

  • cmd/opampsupervisor: Allow the Supervisor send a SIGHUP signal to the agent to reload its configuration. (#40410)
    This behavior is disabled by default. To enable it, set the agent::enable_hup_reload flag to true in the supervisor configuration.

  • cmd/opampsupervisor: Add support for total control of configuration merging through special configuration files (#39963)
    The special configuration files can be used through the agent::config_files option to control the order
    in which configuration is merged. This allows greater customization of this feature, so that it can adapt
    many use cases without requiring code changes.

    Configuration is merged from the top of the list to the bottom, in order. This means that the first configuration
    files will get overwritten by the later ones.

    Here's a list of the available special configuration options and what they represent:

    • "$OWN_TELEMETRY_CONFIG": configuration to set up the agent's own telemetry (resource, identifying and non-identifying attributes, etc.).
    • "$OPAMP_EXTENSION_CONFIG": configuration for the agent's OpAMP extension to connect to the Supervisor.
    • "$REMOTE_CONFIG": remote configuration received by the Supervisor.

    Here's an example that could be used to configure the Agent:

    agent:
      config_files:
      - base_config.yaml
      - $OWN_TELEMETRY_CONFIG
      - $OPAMP_EXTENSION_CONFIG
      - $REMOTE_CONFIG
      - compliance_config.yaml
    

    If one or more of the special files are not specified, they are automatically
    added at predetermined positions in the list. The order is as follows:

    • $OWN_TELEMETRY_CONFIG
    • <USER_PROVIDED_CONFIG_FILES>
    • $OPAMP_EXTENSION_CONFIG
    • $REMOTE_CONFIG
  • syslogexporter: Add support for Unix sockets (#40740)
    The network configuration now accepts "unix" as a valid option in addition to "tcp" and "udp". When network is set to "unix", the endpoint must be a valid Unix socket file path, and port is ignored.

🧰 Bug fixes 🧰

  • kafkareceiver (franz-go client): Fix race on lost partition (#41239)
    When using the franz-go client, fixes an edge case where a consumer could
    lose a partition while it is consuming messages. This leads to unexpected
    behavior due to the race and likely cause the consumer to malfunction.

  • clickhouseexporter: Fix log Body only recording String data (#41141)

  • dorisexporter: fix ddl for doris 3.0.6 and 2.1.10 (#40578, #40827)

    1. Use size_based compaction policy for the trace graph table instead of time_series. | 2. Use "inverted_index_storage_format"="V2". | 3. Use zstd as the default compression algorithm for all tables.
  • prometheusremotewritereceiver: Drop summary and classic histogram series as we will not handle them. (#40975)

  • elasticsearchexporter: Fetch HostID, ContainerID, K8SPodName and K8sNamespaceName from Resource instead of from Sample. (#40967)

  • elasticsearchexporter: Fix how profiles locations are interpreted and stored. (#40959)

  • elasticsearchexporter: Fix storing of sample attributes. (#40961)

  • elasticsearchexporter: Store process.executable.name as part of profiling events. (#40961)

  • elasticsearchexporter: Fix regression retry::max_retries not applying correctly for HTTP request levels retries (#39670)
    The regression affected versions from v0.120.0 and might cause data loss due to prematurely stopping HTTP request level retries, e.g. when ES is unavailable, as it was cap to a maximum of 2 retries.

  • elasticsearchexporter: Fix incorrect retry backoff duration calculation (#41187)
    Fixes a bug where backoff function is stateful and shared between bulk indexers, resulting in data race and incorrect retry backoff duration calculation.

  • receivercreator: Fix incorrect traces consumer filtering in filterConsumerSignals function (#41033)
    The bug caused traces consumers to be incorrectly filtered when metrics were disabled.

  • receiver/lokireceiver: fix parsing of Content-Type header (#41192)
    When sending logs in json format a valid header like Content-Type: application/json; charset=utf-8
    was rejected because the value was not equal to application/json.
    This changes the parsing of Content-Type header to accept optional parameters.

  • pkg/ottl: Fix OTTL functions by using setters. (#39100)

  • cmd/opampsupervisor: Supervisor without remote config capabilities now correctly ignores remote config messages. (#41166)

  • awsxrayexporter: Fix incorrect http url generation in trace segment when url.path is present (#40809)

  • awscloudwatchreceiver: Fixes issue with autodiscovered groups that were deleted preventing logs during that poll (#38940)

  • receiver/prometheusreceiver: Fixes masking of authentication credentials in Prometheus receiver, when reloading the Prometheus config. (#40520, #40916)

  • kafkaexporter, kafkatopicsobserver, kafkametricsreceiver, kafkareceiver: Fix aws_msk configuration in the doc (#41118)

  • exporter/datadogexporter: Ignore APM-related metrics for the running metric for metrics (#41228)
    Runtime metrics and APM stats metrics are considered to be part of the APM product and as such they will not generate a metrics running metric.

  • filelogreceiver: Fix remove, copy, and move operator configuration validation. (#40728)
    Previously, the receiver would allow configurations that were guaranteed to cause a Collector panic. The Collector will now fail to start with friendly error messages.

  • pkg/ottl: Fix an issue where the attribute values were amended in the profiles dictionary. (#40738)

  • pkg/ottl: Fixes the OTTL nanoseconds formatter to correctly handle 9 digits of nanoseconds, ensuring accurate time formatting and parsing. (#41144)
    Places that import "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/timeutils" are likely affected by this change. For example, FormatTimeand Time OTTL functions are affected. See here for a full list of affected functionalities.

  • receiver/prometheusremotewrite: Handle metrics with unspecified types without panicking. (#41005)

  • sqlserverreceiver: Fix incorrect configuration used in query sample collection. It was intended to retrieve the maximum number of rows per query from config.MaxRowsPerQuery, but it was mistakenly using config.TopQueryCount instead.
    (#40943)

  • datadogexporter: Added ability for Datadog metrics serializer exporter to set proxy variables (#41041)

API Changelog

🛑 Breaking changes 🛑

  • splunkhecexporter: Update 'batcher' config to use internal deprecated struct instead of the one removed from the core. (#41224)
  • elasticsearchexporter: Update 'batcher' config to use internal struct instead of the one removed from the core. (#41225)
  • sumologicprocessor: Types that do not contribute to intended API surface will be unexported (#40660)
    #40641

💡 Enhancements 💡

  • pkg/ottl: Add a GetOr function to ottl.Optional to return a default value when the optional is empty. (#40243)
  • metricstarttimeprocessor: Add the start_time_metric, which sets the start time based on another metric in the batch of metrics. (#38383)

We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @krzko, @Abuelodelanada, @aclaygray, @eskirk, @Kavindu-Dodan, @rseltmann, @tombrk, @tim-liakh-datadog, @bogdan-st, @erikburt, @jaysonsantos, @moseoh, @jsvd ! 🎉