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

Reply via email to