Github user revans2 commented on a diff in the pull request:

    https://github.com/apache/storm/pull/2840#discussion_r218485913
  
    --- Diff: 
storm-server/src/main/java/org/apache/storm/daemon/nimbus/Nimbus.java ---
    @@ -4767,4 +4797,205 @@ public IScheduler getForcedScheduler() {
     
         }
     
    +    private static class ClusterSummaryMetrics implements MetricSet {
    +        private static final String SUMMARY = "summary";
    +        private final Map<String, com.codahale.metrics.Metric> metrics = 
new HashMap<>();
    +        
    +        public com.codahale.metrics.Metric put(String key, 
com.codahale.metrics.Metric value) {
    +            return metrics.put(MetricRegistry.name(SUMMARY, key), value);
    +        }
    +
    +        @Override
    +        public Map<String, com.codahale.metrics.Metric> getMetrics() {
    +            return metrics;
    +        }
    +    }
    +    
    +    private class ClusterSummaryMetricSet implements Runnable {
    +        private static final int CACHING_WINDOW = 5;
    +        
    +        private final ClusterSummaryMetrics clusterSummaryMetrics = new 
ClusterSummaryMetrics();
    +        
    +        private final Function<String, Histogram> registerHistogram = 
(name) -> {
    +            //This histogram reflects the data distribution across only 
one ClusterSummary, i.e.,
    +            // data distribution across all entities of a type (e.g., data 
from all nimbus/topologies) at one moment.
    +            // Hence we use half of the CACHING_WINDOW time to ensure it 
retains only data from the most recent update
    +            final Histogram histogram = new Histogram(new 
SlidingTimeWindowReservoir(CACHING_WINDOW / 2, TimeUnit.SECONDS));
    +            clusterSummaryMetrics.put(name, histogram);
    +            return histogram;
    +        };
    +        private volatile boolean active = false;
    +
    +        //NImbus metrics distribution
    +        private final Histogram nimbusUptime = 
registerHistogram.apply("nimbuses:uptime-secs");
    +
    +        //Supervisor metrics distribution
    +        private final Histogram supervisorsUptime = 
registerHistogram.apply("supervisors:uptime-secs");
    +        private final Histogram supervisorsNumWorkers = 
registerHistogram.apply("supervisors:num-workers");
    +        private final Histogram supervisorsNumUsedWorkers = 
registerHistogram.apply("supervisors:num-used-workers");
    +        private final Histogram supervisorsUsedMem = 
registerHistogram.apply("supervisors:used-mem");
    +        private final Histogram supervisorsUsedCpu = 
registerHistogram.apply("supervisors:used-cpu");
    +        private final Histogram supervisorsFragmentedMem = 
registerHistogram.apply("supervisors:fragmented-mem");
    +        private final Histogram supervisorsFragmentedCpu = 
registerHistogram.apply("supervisors:fragmented-cpu");
    +
    +        //Topology metrics distribution
    +        private final Histogram topologiesNumTasks = 
registerHistogram.apply("topologies:num-tasks");
    +        private final Histogram topologiesNumExecutors = 
registerHistogram.apply("topologies:num-executors");
    +        private final Histogram topologiesNumWorker = 
registerHistogram.apply("topologies:num-workers");
    +        private final Histogram topologiesUptime = 
registerHistogram.apply("topologies:uptime-secs");
    +        private final Histogram topologiesReplicationCount = 
registerHistogram.apply("topologies:replication-count");
    +        private final Histogram topologiesRequestedMemOnHeap = 
registerHistogram.apply("topologies:requested-mem-on-heap");
    +        private final Histogram topologiesRequestedMemOffHeap = 
registerHistogram.apply("topologies:requested-mem-off-heap");
    +        private final Histogram topologiesRequestedCpu = 
registerHistogram.apply("topologies:requested-cpu");
    +        private final Histogram topologiesAssignedMemOnHeap = 
registerHistogram.apply("topologies:assigned-mem-on-heap");
    +        private final Histogram topologiesAssignedMemOffHeap = 
registerHistogram.apply("topologies:assigned-mem-off-heap");
    +        private final Histogram topologiesAssignedCpu = 
registerHistogram.apply("topologies:assigned-cpu");
    --- End diff --
    
    I am sorry, but I am really having a hard time of seeing a histogram of 
these being valuable, but perhaps I am wrong.  I would much rather see 
dimensions/tags being used, but since those are not available yet, I am okay 
with this.


---

Reply via email to