eolivelli commented on a change in pull request #854: ZOOKEEPER-3143 Pluggable metrics system for ZooKeeper - Data Collection on Server URL: https://github.com/apache/zookeeper/pull/854#discussion_r267903443
########## File path: zookeeper-server/src/test/java/org/apache/zookeeper/server/admin/CommandsTest.java ########## @@ -193,8 +193,15 @@ public void testMonitor() throws IOException, InterruptedException { new Field("global_sessions", Long.class), new Field("local_sessions", Long.class), new Field("connection_drop_probability", Double.class) - )); - for (String metric : ServerMetrics.getAllValues().keySet()) { + )); + Map<String, Object> metrics = new HashMap<>(); + ServerMetrics + .getMetrics() + .getMetricsProvider() + .dump( (metric, value)-> { + metrics.put(metric, value); + }); + for (String metric : metrics.keySet()) { Review comment: @lvfangmin I am not sure it is worth. This code is only for tests. I don't want to force a real 'provider' to implement such API. The dump API does not force the creation of a Map, which will implicitly require cpu cycles and allocations. I thought about adding a 'default' method but I think it could be abused, that is, used in production code (like the monitor command or an http endpoint) and not in tests. I can provide an utility for tests inside the tests package. How does this sounds to you? ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services