#IGNITE-236 WIP
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/cc4cdfbe Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/cc4cdfbe Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/cc4cdfbe Branch: refs/heads/sprint-1 Commit: cc4cdfbec7ce4a34074ae0d8530735c2d36e8f9a Parents: e6beac4 Author: nikolay_tikhonov <ntikho...@gridgain.com> Authored: Fri Feb 13 13:23:46 2015 +0300 Committer: nikolay_tikhonov <ntikho...@gridgain.com> Committed: Fri Feb 13 13:23:46 2015 +0300 ---------------------------------------------------------------------- .../ignite/internal/ClusterMetricsSnapshot.java | 18 ++++++++++++++++-- .../internal/ClusterNodeMetricsSelfTest.java | 3 +-- 2 files changed, 17 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cc4cdfbe/modules/core/src/main/java/org/apache/ignite/internal/ClusterMetricsSnapshot.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/ClusterMetricsSnapshot.java b/modules/core/src/main/java/org/apache/ignite/internal/ClusterMetricsSnapshot.java index 7129453..1007b7f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/ClusterMetricsSnapshot.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/ClusterMetricsSnapshot.java @@ -375,7 +375,6 @@ public class ClusterMetricsSnapshot implements ClusterMetrics { outMesQueueSize += m.getOutboundMessagesQueueSize(); avgLoad += m.getCurrentCpuLoad(); - availProcs += m.getTotalCpus(); } curJobExecTime /= size; @@ -399,6 +398,7 @@ public class ClusterMetricsSnapshot implements ClusterMetrics { gcLoad = gcCpus(neighborhood); load = cpus(neighborhood); + availProcs = cpuCnt(neighborhood); } /** {@inheritDoc} */ @@ -1108,7 +1108,7 @@ public class ClusterMetricsSnapshot implements ClusterMetrics { this.outMesQueueSize = outMesQueueSize; } - private static int cpus(Map<String, Collection<ClusterNode>> neighborhood) { + private static int cpuCnt(Map<String, Collection<ClusterNode>> neighborhood) { int cpus = 0; for (Collection<ClusterNode> nodes : neighborhood.values()) { @@ -1122,6 +1122,20 @@ public class ClusterMetricsSnapshot implements ClusterMetrics { return cpus; } + private static int cpus(Map<String, Collection<ClusterNode>> neighborhood) { + int cpus = 0; + + for (Collection<ClusterNode> nodes : neighborhood.values()) { + ClusterNode first = F.first(nodes); + + // Projection can be empty if all nodes in it failed. + if (first != null) + cpus += first.metrics().getCurrentCpuLoad(); + } + + return cpus; + } + private static int gcCpus(Map<String, Collection<ClusterNode>> neighborhood) { int cpus = 0; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cc4cdfbe/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java index 31543e6..87bb788 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/ClusterNodeMetricsSelfTest.java @@ -235,12 +235,11 @@ public class ClusterNodeMetricsSelfTest extends GridCommonAbstractTest { Ignite ignite1 = startGrid(1); ClusterMetrics metrics0 = ignite0.cluster().localNode().metrics(); - ClusterMetrics metrics1 = ignite1.cluster().localNode().metrics(); ClusterMetrics nodesMetrics = ignite0.cluster().forNode(ignite0.cluster().localNode(), ignite1.cluster().localNode()).metrics(); - assertEquals(metrics0.getTotalCpus() + metrics1.getTotalCpus(), nodesMetrics.getTotalCpus()); + assertEquals(metrics0.getTotalCpus(), nodesMetrics.getTotalCpus()); } /**