buf.putInt(metrics.getMaximumActiveJobs()); buf.putInt(metrics.getCurrentActiveJobs()); buf.putFloat(metrics.getAverageActiveJobs()); buf.putInt(metrics.getMaximumWaitingJobs()); buf.putInt(metrics.getCurrentWaitingJobs()); buf.putFloat(metrics.getAverageWaitingJobs()); buf.putInt(metrics.getMaximumRejectedJobs()); buf.putInt(metrics.getCurrentRejectedJobs()); buf.putFloat(metrics.getAverageRejectedJobs()); buf.putInt(metrics.getMaximumCancelledJobs()); buf.putInt(metrics.getCurrentCancelledJobs()); buf.putFloat(metrics.getAverageCancelledJobs()); buf.putInt(metrics.getTotalRejectedJobs()); buf.putInt(metrics.getTotalCancelledJobs()); buf.putInt(metrics.getTotalExecutedJobs()); buf.putLong(metrics.getMaximumJobWaitTime()); buf.putLong(metrics.getCurrentJobWaitTime()); buf.putDouble(metrics.getAverageJobWaitTime()); buf.putLong(metrics.getMaximumJobExecuteTime()); buf.putLong(metrics.getCurrentJobExecuteTime()); buf.putDouble(metrics.getAverageJobExecuteTime()); buf.putInt(metrics.getTotalExecutedTasks()); buf.putLong(metrics.getCurrentIdleTime()); buf.putLong(metrics.getTotalIdleTime()); buf.putInt(metrics.getTotalCpus()); buf.putDouble(metrics.getCurrentCpuLoad()); buf.putDouble(metrics.getAverageCpuLoad()); buf.putDouble(metrics.getCurrentGcCpuLoad()); buf.putLong(metrics.getHeapMemoryInitialized());
/** {@inheritDoc} */ @Override public double getLoad(ClusterNode node, int jobsSentSinceLastUpdate) { ClusterMetrics metrics = node.metrics(); if (useAvg) { double load = metrics.getAverageActiveJobs() + metrics.getAverageWaitingJobs(); if (load > 0) return load; } double load = metrics.getCurrentActiveJobs() + metrics.getCurrentWaitingJobs(); return load < 0 ? 0 : load; }
/** {@inheritDoc} */ @Override public double getLoad(ClusterNode node, int jobsSentSinceLastUpdate) { ClusterMetrics metrics = node.metrics(); double k = 1.0d; if (useProcs) { int procs = metrics.getTotalCpus(); if (procs > 1) k = procs * procCoefficient; } double load = (useAvg ? metrics.getAverageCpuLoad() : metrics.getCurrentCpuLoad()) / k; return load < 0 ? 0 : load; }
/** {@inheritDoc} */ @Override public double getLoad(ClusterNode node, int jobsSentSinceLastUpdate) { ClusterMetrics metrics = node.metrics(); if (useAvg) { double load = metrics.getAverageJobExecuteTime() + metrics.getAverageJobWaitTime(); // If load is greater than 0, then we can use average times. // Otherwise, we will proceed to using current times. if (load > 0) return load; } double load = metrics.getCurrentJobExecuteTime() + metrics.getCurrentJobWaitTime(); return load < 0 ? 0 : load; }
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());
assert metrics.getAverageActiveJobs() == 0; assert metrics.getAverageCancelledJobs() == 0; assert metrics.getAverageJobExecuteTime() == 0; assert metrics.getAverageJobWaitTime() == 0; assert metrics.getAverageRejectedJobs() == 0; assert metrics.getAverageWaitingJobs() == 0; assert metrics.getCurrentActiveJobs() == 0; assert metrics.getCurrentCancelledJobs() == 0; assert metrics.getCurrentJobExecuteTime() == 0; assert metrics.getCurrentJobWaitTime() == 0; assert metrics.getCurrentWaitingJobs() == 0; assert metrics.getMaximumActiveJobs() == 0; assert metrics.getMaximumCancelledJobs() == 0; assert metrics.getMaximumJobExecuteTime() == 0; assert metrics.getMaximumJobWaitTime() == 0; assert metrics.getMaximumRejectedJobs() == 0; assert metrics.getMaximumWaitingJobs() == 0; assert metrics.getTotalCancelledJobs() == 0; assert metrics.getTotalExecutedJobs() == 0; assert metrics.getTotalRejectedJobs() == 0; assert metrics.getTotalExecutedTasks() == 0; assert metrics.getTotalJobsExecutionTime() == 0; assertTrue("MaximumJobExecuteTime=" + metrics.getMaximumJobExecuteTime() + " is less than AverageJobExecuteTime=" + metrics.getAverageJobExecuteTime(), metrics.getMaximumJobExecuteTime() >= metrics.getAverageJobExecuteTime());
/** * @param m Metrics. */ @SuppressWarnings({"FloatingPointEquality"}) private void checkMetrics(ClusterMetrics m) { assert m.getTotalNodes() == NODES_CNT; assert m.getMaximumActiveJobs() >= 0; assert m.getAverageActiveJobs() >= 0; assert m.getMaximumCancelledJobs() == 0; assert m.getAverageCancelledJobs() == 0; assert m.getMaximumRejectedJobs() == 0; assert m.getAverageRejectedJobs() == 0; assert m.getMaximumWaitingJobs() == 0; assert m.getAverageWaitingJobs() == 0; assert m.getMaximumJobExecuteTime() >= 0; assert m.getAverageJobExecuteTime() >= 0; assert m.getAverageJobExecuteTime() <= m.getMaximumJobExecuteTime(); assert m.getMaximumJobWaitTime() >= 0; assert m.getAverageJobWaitTime() >= 0; assert m.getAverageJobWaitTime() <= m.getMaximumJobWaitTime(); assert m.getMaximumThreadCount() > 0; assert m.getIdleTimePercentage() >= 0; assert m.getIdleTimePercentage() <= 100; assert m.getAverageCpuLoad() >= 0 || m.getAverageCpuLoad() == -1.0; assert m.getTotalCpus() > 0; }
double cpuLoadPct = m.getCurrentCpuLoad() * 100; double avgCpuLoadPct = m.getAverageCpuLoad() * 100; double gcPct = m.getCurrentGcCpuLoad() * 100; long heapUsed = m.getHeapMemoryUsed(); long heapMax = m.getHeapMemoryMaximum(); long heapCommInMBytes = m.getHeapMemoryCommitted() / MByte; nodes = metrics.getTotalNodes(); cpus = metrics.getTotalCpus(); dataRegionsInfo + pdsInfo + " ^-- Outbound messages queue [size=" + m.getOutboundMessagesQueueSize() + "]" + NL + " ^-- " + createExecutorDescription("Public thread pool", execSvc) + NL + " ^-- " + createExecutorDescription("System thread pool", sysExecSvc);
/** * @throws Exception If failed. */ @Test public void testClusterNodeMetrics() throws Exception { final Ignite ignite0 = grid(); final Ignite ignite1 = startGrid(1); GridTestUtils.waitForCondition(new GridAbsPredicate() { @Override public boolean apply() { return ignite0.cluster().nodes().size() == 2 && ignite1.cluster().nodes().size() == 2; } }, 3000L); ClusterMetrics metrics0 = ignite0.cluster().localNode().metrics(); ClusterMetrics nodesMetrics = ignite0.cluster().forNode(ignite0.cluster().localNode(), ignite1.cluster().localNode()).metrics(); assertEquals(metrics0.getTotalCpus(), nodesMetrics.getTotalCpus()); assertEquals(1, metrics0.getTotalNodes()); assertEquals(2, nodesMetrics.getTotalNodes()); assert metrics0.getHeapMemoryUsed() > 0; assert metrics0.getHeapMemoryTotal() > 0; }
/** {@inheritDoc} */ @Override public long getHeapMemoryTotal() { return metrics().getHeapMemoryTotal(); }
/** {@inheritDoc} */ @Override public int getCurrentCancelledJobs() { return node.metrics().getCurrentCancelledJobs(); }
/** {@inheritDoc} */ @Override public double getAverageJobExecuteTime() { return metrics().getAverageJobExecuteTime(); }
/** {@inheritDoc} */ @Override public int getCurrentActiveJobs() { return node.metrics().getCurrentActiveJobs(); }
/** {@inheritDoc} */ @Override public float getAverageRejectedJobs() { return node.metrics().getAverageRejectedJobs(); }
/** {@inheritDoc} */ @Override public double getAverageCpuLoad() { return metrics().getAverageCpuLoad() * 100; }
/** {@inheritDoc} */ @Override public double getAverageJobWaitTime() { return node.metrics().getAverageJobWaitTime(); }
/** {@inheritDoc} */ @Override public float getAverageActiveJobs() { return metrics().getAverageActiveJobs(); }
/** {@inheritDoc} */ @Override public float getAverageWaitingJobs() { return node.metrics().getAverageWaitingJobs(); }
/** {@inheritDoc} */ @Override public float getAverageCancelledJobs() { return node.metrics().getAverageCancelledJobs(); }
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());