Comments (5)
You could create a new PrometheusRegistry registry = new PrometheusRegistry()
for each test, and then register your metrics with that registry with .register(registry)
.
Does that work for you?
from client_java.
This does work for me I had to do a small refactor so that our metric class by default uses the default registry but then during tests we optionally pass PrometheusRegistry()
when initializing the metrics class. This works out well now since all of our metrics are centralized through this class but it would get a little messy if any custom metrics are added outside of it.
The above solves my immediate issue although it would be nice if a clear()/reset() function existed on the prometheus registry for just this purpose so we don't have to expose this for testing. If the defaultRegistry in PrometheusRegistry was exposed for users to overwrite that would also work but maybe this causes other issues?
from client_java.
Hi, I also ran into this problem. Our metrics can be enabled or disabled based on a user's request so I need to unregister all registered collectors on such a request. It was possible in simpleclient
using the clear()
method but it is missing in the new 1.x version.
I will provide PR with the clear()
method in a few minutes.
from client_java.
Having a method to clear the registry would be really helpful for tests. Sure we can inject a new PrometheusRegistry
instance but that requires further refactoring to adapt code that used to use simpleclient
.
from client_java.
PrometheusRegistry clear()
/ reset()
methods will cause test issues when using JUnit5 in parallel execution mode.
from client_java.
Related Issues (20)
- Endpoint actuator/prometheus not working on macOS HOT 1
- Publish a BOM again
- Implement latest changes in the Prometheus Protobuf format
- [httpserver exporter] No option to specify a wait time for ongoing requests when closing the server HOT 3
- Explicit Exception for Duplicate Labels during Scrape HOT 1
- Stress test failure in DropwizardExportsTest HOT 2
- Stress test failure in SlidingWindowTest HOT 1
- dropwizard5 MapperConfig doesn't rename the metric? HOT 4
- Failing while building simpleclient_httpserver version parent-0.15.0 using mvn clean install HOT 4
- log4j2 instrumentation support for 1.X?
- Flaky test - SlidingWindowTest
- Filter parameter causes HTTP Status 400 – Bad Request HOT 1
- info required for compatible version with openjdk21 HOT 2
- Counts in ClassicHistogramBuckets cannot be negative. HOT 1
- StatefulMetric clear() invocation causes noLabels increase to stop reporting on collect()
- Integrating Native Histograms with Spring 2.7.x and Prometheus client_java 1.3.1: Challenges in Writing Native Histograms to Response Object
- Inconsistencies between PrometheusNaming.sanitizeMetricName() methods
- UnknownDataPointSnapshot constructor ignores labels
- [FeatureRequest] Restore MetricsFilter in the servlet modules
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from client_java.