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

OpenTelemetry does not support resetting in-memory Metric to clean the memory usage #4752

Open
valiparsa opened this issue Dec 12, 2023 · 3 comments
Labels
blocked:specification Waiting on clarification of the OpenTelemetry specification before progress can be made enhancement New feature or request

Comments

@valiparsa
Copy link

Problem Statement

We are using Kyverno as a Policy engine in the Kubernetes environment in our product. We often see an increase in the memory consumption of the Kyverno pod due to collected in-memory metrics which have high cardinality due to many labels.

Up-to and including release-1.7 of Kyverno it was using the Prometheus library directly to expose Metrics. Prometheus client library supports reseting metric vectors which were used by Kyverno to periodically (configurable period) reset its internal metrics registry to clean its memory usage and footprint associated with metrics.

As of release-1.8 Kyverno started to support OpenTelemetry. After this transition this feature of reseting internal metrics to clean its memory usage is lost as OpenTelemetry does not allow reseting metrics, which is supported by the underlying Prometheus library.

Proposed Solution

OpenTelemetry should support reseting the in-memory metric vectors allowing to clean its memory usage. As this is supported by Prometheus to reset the Metric vectors and OpenTelemetry is using Prometheus client library hence, it would be very beneficial for us to consume this feature again in the Kyverno project.

Alternatives

No alternative solution

Prior Art

A clear and concise list of any similar and existing solutions from other projects that provide context to possible solutions.

Additional Context

As mentioned the underlying Prometheus library supports reseting in-memory Metric vectors to clean the memory usage.

@valiparsa valiparsa added the enhancement New feature or request label Dec 12, 2023
@pellared
Copy link
Member

This feature has to be first specified in OpenTelemetry Specification. I suggest creating an issue in https://github.com/open-telemetry/opentelemetry-specification first.

@pellared pellared added the blocked:specification Waiting on clarification of the OpenTelemetry specification before progress can be made label Dec 12, 2023
@valiparsa
Copy link
Author

@pellared thanks for your input. I created a new issue in the opentelemetry-specification repository now.

@pellared
Copy link
Member

pellared commented Dec 14, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked:specification Waiting on clarification of the OpenTelemetry specification before progress can be made enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants