Skip to content

[exporter/elasticsearch] Add _metric_names_hash to avoid metric rejections #37511

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Feb 21, 2025

Conversation

felixbarny
Copy link
Contributor

@felixbarny felixbarny commented Jan 27, 2025

If metrics that have the same timestamp and dimensions aren't grouped into the same document, ES will consider them to be a duplicate. This adds a hash of the metric names that will be mapped as a dimension in Elasticsearch. The tradeoff is that if the composition of the metrics grouping changes over time, a new time series will be created. That has an impact on the rate aggregation for counters.

ES mapping changes: elastic/elasticsearch#120952

If metrics that have the same timestamp and dimensions aren't grouped into the same document, ES will consider them to be a duplicate.
This adds a hash of the metric names that will be mapped as a dimension in Elasticsearch.
The tradeoff is that if the composition of the metrics grouping changes over time, a new time series will be created.
That has an impact on the rate aggregation for counters.
Copy link
Contributor

This PR was marked stale due to lack of activity. It will be closed in 14 days.

@github-actions github-actions bot added the Stale label Feb 11, 2025
@felixbarny felixbarny marked this pull request as ready for review February 18, 2025 17:27
@felixbarny felixbarny requested a review from a team as a code owner February 18, 2025 17:27
@felixbarny felixbarny requested a review from dehaansa February 18, 2025 17:27
@felixbarny
Copy link
Contributor Author

Marked this as ready for review as the corresponding ES mapping change has been approved

@github-actions github-actions bot removed the Stale label Feb 19, 2025
@jpkrohling jpkrohling changed the title Add _metric_names_hash to avoid metric rejections [exporter/elasticsearch] Add _metric_names_hash to avoid metric rejections Feb 20, 2025
Copy link
Contributor

@carsonip carsonip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks! one nit on style to be clearer on edge case where there is a validation error

@andrzej-stencel andrzej-stencel merged commit 187259e into open-telemetry:main Feb 21, 2025
162 checks passed
@github-actions github-actions bot added this to the next release milestone Feb 21, 2025
yiquanzhou added a commit to dash0hq/opentelemetry-collector-contrib that referenced this pull request Feb 24, 2025
* main: (55 commits)
  [chore] Update core dependencies (open-telemetry#38124)
  Add kafka topics observer implementation (open-telemetry#38060)
  [exporter/splunk_hec] Mute errors from draining the response body (open-telemetry#38118)
  [chore] [exporter/splunk_hec] Remove dead code (open-telemetry#38113)
  Add support for JUnit test results (open-telemetry#37941)
  [chore] amend changelog for prometheus receiver change (open-telemetry#38109)
  [chore] Fix dead links in issue-triaging.md (open-telemetry#38105)
  [chore] fix deprecation (open-telemetry#38107)
  [exporter/coralogix] Add new batch options to Coralogix exporter (open-telemetry#38082)
  [chore][exporter/datadog] fix integration test (open-telemetry#38091)
  [chore] Update otel to unblock contrib test in core repo (open-telemetry#38100)
  [chore] Bump go-version match to 1.23 (open-telemetry#38099)
  [exporter/elasticsearch] Add _metric_names_hash to avoid metric rejections (open-telemetry#37511)
  elasticsearchexporter: refactor encoding; drop metrics support from raw/none/bodymap mapping modes (open-telemetry#37928)
  [exporter/stefexporter] Fix incorrectly implemented STEF exporter zstd compression option (open-telemetry#38089)
  [exporter/clickhouse] Add client info for identifying exporter in `system.query_log` (open-telemetry#37146)
  [chore] Prepare release 0.120.1 (open-telemetry#38055)
  [extension/httpforwarder] Shutdown should wait server exit (open-telemetry#37735)
  receiver/prometheusremotewrite: Add two fields timestamp and value. (open-telemetry#37895)
  [reciver/sqlqueryreceiver] Add support for SapASE (sybase) (open-telemetry#37773)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants