in modules/core/src/main/java/org/apache/ignite/internal/ClusterMetricsSnapshot.java [275:439]
public ClusterMetricsSnapshot(ClusterGroup p) {
assert p != null;
Collection<ClusterNode> nodes = p.nodes();
int size = nodes.size();
curJobWaitTime = Long.MAX_VALUE;
lastUpdateTime = 0;
maxActiveJobs = 0;
curActiveJobs = 0;
avgActiveJobs = 0;
maxWaitingJobs = 0;
curWaitingJobs = 0;
avgWaitingJobs = 0;
maxRejectedJobs = 0;
curRejectedJobs = 0;
avgRejectedJobs = 0;
maxCancelledJobs = 0;
curCancelledJobs = 0;
avgCancelledJobs = 0;
totalRejectedJobs = 0;
totalCancelledJobs = 0;
totalExecutedJobs = 0;
totalJobsExecTime = 0;
maxJobWaitTime = 0;
avgJobWaitTime = 0;
maxJobExecTime = 0;
curJobExecTime = 0;
avgJobExecTime = 0;
totalExecTasks = 0;
totalIdleTime = 0;
curIdleTime = 0;
availProcs = 0;
load = 0;
avgLoad = 0;
gcLoad = 0;
heapInit = 0;
heapUsed = 0;
heapCommitted = 0;
heapMax = 0;
nonHeapInit = 0;
nonHeapUsed = 0;
nonHeapCommitted = 0;
nonHeapMax = 0;
nonHeapTotal = 0;
upTime = 0;
startTime = 0;
nodeStartTime = 0;
threadCnt = 0;
peakThreadCnt = 0;
startedThreadCnt = 0;
daemonThreadCnt = 0;
lastDataVer = 0;
sentMsgsCnt = 0;
sentBytesCnt = 0;
rcvdMsgsCnt = 0;
rcvdBytesCnt = 0;
outMesQueueSize = 0;
heapTotal = 0;
totalNodes = nodes.size();
currentPmeDuration = 0;
for (ClusterNode node : nodes) {
ClusterMetrics m = node.metrics();
lastUpdateTime = max(lastUpdateTime, node.metrics().getLastUpdateTime());
curActiveJobs += m.getCurrentActiveJobs();
maxActiveJobs = max(maxActiveJobs, m.getCurrentActiveJobs());
avgActiveJobs += m.getCurrentActiveJobs();
totalExecutedJobs += m.getTotalExecutedJobs();
totalJobsExecTime += m.getTotalJobsExecutionTime();
totalExecTasks += m.getTotalExecutedTasks();
totalCancelledJobs += m.getTotalCancelledJobs();
curCancelledJobs += m.getCurrentCancelledJobs();
maxCancelledJobs = max(maxCancelledJobs, m.getCurrentCancelledJobs());
avgCancelledJobs += m.getCurrentCancelledJobs();
totalRejectedJobs += m.getTotalRejectedJobs();
curRejectedJobs += m.getCurrentRejectedJobs();
maxRejectedJobs = max(maxRejectedJobs, m.getCurrentRejectedJobs());
avgRejectedJobs += m.getCurrentRejectedJobs();
curWaitingJobs += m.getCurrentWaitingJobs();
maxWaitingJobs = max(maxWaitingJobs, m.getCurrentWaitingJobs());
avgWaitingJobs += m.getCurrentWaitingJobs();
maxJobExecTime = max(maxJobExecTime, m.getMaximumJobExecuteTime());
avgJobExecTime += m.getAverageJobExecuteTime();
curJobExecTime += m.getCurrentJobExecuteTime();
curJobWaitTime = min(curJobWaitTime, m.getCurrentJobWaitTime());
maxJobWaitTime = max(maxJobWaitTime, m.getCurrentJobWaitTime());
avgJobWaitTime += m.getAverageJobWaitTime();
daemonThreadCnt += m.getCurrentDaemonThreadCount();
peakThreadCnt = max(peakThreadCnt, m.getCurrentThreadCount());
threadCnt += m.getCurrentThreadCount();
startedThreadCnt += m.getTotalStartedThreadCount();
curIdleTime += m.getCurrentIdleTime();
totalIdleTime += m.getTotalIdleTime();
heapCommitted += m.getHeapMemoryCommitted();
heapUsed += m.getHeapMemoryUsed();
heapMax = max(heapMax, m.getHeapMemoryMaximum());
heapTotal += m.getHeapMemoryTotal();
heapInit += m.getHeapMemoryInitialized();
nonHeapCommitted += m.getNonHeapMemoryCommitted();
nonHeapUsed += m.getNonHeapMemoryUsed();
nonHeapMax = max(nonHeapMax, m.getNonHeapMemoryMaximum());
nonHeapTotal += m.getNonHeapMemoryTotal();
nonHeapInit += m.getNonHeapMemoryInitialized();
upTime = max(upTime, m.getUpTime());
lastDataVer = max(lastDataVer, m.getLastDataVersion());
sentMsgsCnt += m.getSentMessagesCount();
sentBytesCnt += m.getSentBytesCount();
rcvdMsgsCnt += m.getReceivedMessagesCount();
rcvdBytesCnt += m.getReceivedBytesCount();
outMesQueueSize += m.getOutboundMessagesQueueSize();
avgLoad += m.getCurrentCpuLoad();
currentPmeDuration = max(currentPmeDuration, m.getCurrentPmeDuration());
}
curJobExecTime /= size;
avgActiveJobs /= size;
avgCancelledJobs /= size;
avgRejectedJobs /= size;
avgWaitingJobs /= size;
avgJobExecTime /= size;
avgJobWaitTime /= size;
avgLoad /= size;
if (!F.isEmpty(nodes)) {
ClusterMetrics oldestNodeMetrics = oldest(nodes).metrics();
nodeStartTime = oldestNodeMetrics.getNodeStartTime();
startTime = oldestNodeMetrics.getStartTime();
}
Map<String, Collection<ClusterNode>> neighborhood = U.neighborhood(nodes);
gcLoad = gcCpus(neighborhood);
load = cpus(neighborhood);
availProcs = cpuCnt(neighborhood);
}