Skip to content
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

Periodic reset of spanmetricsprocessor metric maps #2179

Closed
albertteoh opened this issue Jan 22, 2021 · 2 comments
Closed

Periodic reset of spanmetricsprocessor metric maps #2179

albertteoh opened this issue Jan 22, 2021 · 2 comments
Labels
processor/spanmetrics Span Metrics processor Stale

Comments

@albertteoh
Copy link
Contributor

Is your feature request related to a problem? Please describe.
The maps storing the metrics data in the spanmetricsprocessor will grow indefinitely, hence leading to growing memory usage, and felt more with high cardinality dimensions in metrics. It's worth noting though, that with low-cardinality dimensions, this growth should follow a logarithmic pattern.

See: #2012 (comment)

Describe the solution you'd like
Would like to understand what is the idiomatic way of solving this problem of preventing ever-growing metric dimension sets and continuing disjoint time series data.

Describe alternatives you've considered
A periodic reset of these maps was tested but led to metric values jumping around and metrics themselves appearing and disappearing in Prometheus.

An alternative approach to resetting all keys in the map is to adopt take an LRU cache approach and setting a limit on the number of keys and evict the oldest keys. However, this still doesn't solve the problem of joining the timeseries if these evicted keys are populated with data points again; though the benefit of this approach is to only expire keys where necessary.

dyladan referenced this issue in dynatrace-oss-contrib/opentelemetry-collector-contrib Jan 29, 2021
…uncs (#2179)

This is part of a longer effort to move all the obsreport package to use structs for every component type,
that allow configuring the level at the component level (every component instance will have it's own
obsreport struct instance).

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
@alolita alolita added the processor/spanmetrics Span Metrics processor label Sep 30, 2021
@github-actions
Copy link
Contributor

github-actions bot commented Nov 7, 2022

This issue has been inactive for 60 days. It will be closed in 60 days if there is no activity. To ping code owners by adding a component label, see Adding Labels via Comments, or if you are unsure of which component this issue relates to, please ping @open-telemetry/collector-contrib-triagers. If this issue is still relevant, please ping the code owners or leave a comment explaining why it is still relevant. Otherwise, please close it.

Pinging code owners:

See Adding Labels via Comments if you do not have permissions to add labels yourself.

@github-actions github-actions bot added the Stale label Nov 7, 2022
@albertteoh
Copy link
Contributor Author

This was done in #6503.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
processor/spanmetrics Span Metrics processor Stale
Projects
None yet
Development

No branches or pull requests

2 participants