/** * Gets a metrics snapshot for this cluster group. * * @return Metrics snapshot. */ private ClusterMetrics metrics() { if (clusterMetricsExpireTime < System.currentTimeMillis()) { synchronized (clusterMetricsMux) { if (clusterMetricsExpireTime < System.currentTimeMillis()) { clusterMetricsSnapshot = cluster.metrics(); clusterMetricsExpireTime = System.currentTimeMillis() + cluster.ignite().configuration().getMetricsUpdateFrequency(); } } } return clusterMetricsSnapshot; }
/** * @param expNodes Expected nodes. * @param expJobs Expected jobs number per node. */ private void checkMetrics0(int expNodes, Map<UUID, Integer> expJobs) { List<Ignite> nodes = Ignition.allGrids(); assertEquals(expNodes, nodes.size()); assertEquals(expNodes, expJobs.size()); int totalJobs = 0; for (Integer c : expJobs.values()) totalJobs += c; for (final Ignite ignite : nodes) { ClusterMetrics m = ignite.cluster().metrics(); assertEquals(expNodes, m.getTotalNodes()); assertEquals(totalJobs, m.getTotalExecutedJobs()); for (Map.Entry<UUID, Integer> e : expJobs.entrySet()) { UUID nodeId = e.getKey(); ClusterGroup g = ignite.cluster().forNodeId(nodeId); ClusterMetrics nodeM = g.metrics(); assertEquals(e.getValue(), (Integer)nodeM.getTotalExecutedJobs()); } } }
/** * @throws Exception In case of error. */ @Test public void testEmptyProjection() throws Exception { try { grid(0).cluster().forPredicate(F.<ClusterNode>alwaysFalse()).metrics(); assert false; } catch (ClusterGroupEmptyException e) { info("Caught expected exception: " + e); } }
/** * @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; }
Collection<UUID> ids = PlatformUtils.readCollection(reader); platformCtx.writeClusterMetrics(writer, prj.forNodeIds(ids).metrics());
/** * Gets a metrics snapshot for this cluster group. * * @return Metrics snapshot. */ private ClusterMetrics metrics() { if (clusterMetricsExpireTime < System.currentTimeMillis()) { synchronized (clusterMetricsMux) { if (clusterMetricsExpireTime < System.currentTimeMillis()) { clusterMetricsSnapshot = cluster.metrics(); clusterMetricsExpireTime = System.currentTimeMillis() + cluster.ignite().configuration().getMetricsUpdateFrequency(); } } } return clusterMetricsSnapshot; }
Collection<UUID> ids = PlatformUtils.readCollection(reader); platformCtx.writeClusterMetrics(writer, prj.forNodeIds(ids).metrics());