Github user zd-project commented on a diff in the pull request: https://github.com/apache/storm/pull/2764#discussion_r208749692 --- Diff: storm-server/src/main/java/org/apache/storm/daemon/nimbus/Nimbus.java --- @@ -2807,16 +2897,15 @@ public void launchServer() throws Exception { } }); - StormMetricsRegistry.registerGauge("nimbus:num-supervisors", () -> state.supervisors(null).size()); - StormMetricsRegistry.registerGauge("nimbus:fragmented-memory", this::fragmentedMemory); - StormMetricsRegistry.registerGauge("nimbus:fragmented-cpu", this::fragmentedCpu); - StormMetricsRegistry.registerGauge("nimbus:available-memory", () -> nodeIdToResources.get().values() + //Be cautious using method reference instead of lambda. subexpression preceding :: will be evaluated only upon evaluation + // Num supervisor, and fragmented resources have been included in cluster summary + StormMetricsRegistry.registerGauge("nimbus:total-available-memory (nonegative)", () -> nodeIdToResources.get().values() .parallelStream() - .mapToDouble(SupervisorResources::getAvailableMem) + .mapToDouble(supervisorResources -> Math.max(supervisorResources.getAvailableMem(), 0)) .sum()); - StormMetricsRegistry.registerGauge("nimbus:available-cpu", () -> nodeIdToResources.get().values() + StormMetricsRegistry.registerGauge("nimbus:available-cpu (nonnegative)", () -> nodeIdToResources.get().values() --- End diff -- See Jira [STORM-3151](https://issues.apache.org/jira/browse/STORM-3151?filter=-2)
---