Hmm, upon closer inspection, calling `MetricRegistry.remove()` to remove them all doesn't help. There are places in the code that seems to assume metrics is to happen regardless of configuration. One such example is the HttpConnectorFactory calling metrics.timer(httpConnections()), creating a com.codahale.metrics.Timer, which uses a Histogram to provide metrics for requests. I've found no clean-cut way to avoid this. So I guess metrics is just par for the course in DW. It is indeed a major "sales feature" in many cases, and my desire to minmize memory usage here may be unusual. But in this particular case, being able to "turn off" all metrics when not desired would be useful.
-JM On Monday, December 7, 2020 at 2:33:11 PM UTC+1 Jean Michel wrote: > Thank you. I went with route 1. Seems to work fine. > > -JM > > On Monday, December 7, 2020 at 10:06:35 AM UTC+1 Peter Stackle wrote: > >> There isn't an easy, out-of-the-box way to disable all metrics that I'm >> aware of. >> >> I can see two options: >> 1) In the `Application.run(T, Environment)` method, you can access the >> `MetricRegistry` from the `Environment` parameter and could call >> `MetricRegistry.remove()` or `.removeMatching()` in order to remove the >> metrics you don't want. >> 2) You could set a custom `MetricRegistry` implementation on the >> Bootstrap object during initialization (Application.initialize(Bootstrap)) >> that would override the `MetricRegistry.register` method (or any other >> methods) with a no-op implementation. >> >> On Wednesday, December 2, 2020 at 2:09:10 AM UTC-8 [email protected] >> wrote: >> >>> I understand metrics is an important and significant feature of >>> dropwizard. However, for a memory constrained application, I would like to >>> be able to disable metrics entirely. I haven't found a way to do so. For >>> example Bootstrap registerMetrics() adds a number of default metrics, and >>> then starts the JmxReporter for those ones. There seem to be other metrics >>> registered in various places as well, which may also contribute here. >>> >>> Here are some examples (from an analyze using MAT) of what I would like >>> to reduce or get rid of entirely in this case: >>> >>> Class Name | Objects | Shallow >>> Heap >>> >>> ----------------------------------------------------------------------------- >>> java.util.concurrent.ConcurrentSkipListMap$Node | +2 487 | +59 >>> 688 >>> com.codahale.metrics.WeightedSnapshot$WeightedSample| +2 487 | +59 >>> 688 >>> java.lang.Double | +2 487 | +39 >>> 792 >>> java.util.concurrent.ConcurrentSkipListMap$Index | +1 261 | +30 >>> 264 >>> >>> ----------------------------------------------------------------------------- >>> >>> >>> So is there a kosher way I can use to disable ALL metrics? >>> >>> -JM >>> >> -- You received this message because you are subscribed to the Google Groups "dropwizard-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/dropwizard-user/e68e43e8-5ac3-4167-bacb-1e62040754a6n%40googlegroups.com.
