/** * @param m Cache query metrics. */ public VisorQueryDetailMetrics(QueryDetailMetrics m) { qryType = m.queryType(); qry = m.query(); cache = m.cache(); execs = m.executions(); completions = m.completions(); failures = m.failures(); minTime = m.minimumTime(); maxTime = m.maximumTime(); avgTime = m.averageTime(); totalTime = m.totalTime(); lastStartTime = m.lastStartTime(); }
/** * Aggregate metrics. * * @param m Other metrics to take into account. * @return Aggregated metrics. */ public GridCacheQueryDetailMetricsAdapter aggregate(QueryDetailMetrics m) { return new GridCacheQueryDetailMetricsAdapter( qryType, qry, m.cache(), execs + m.executions(), completions + m.completions(), failures + m.failures(), minTime < 0 || minTime > m.minimumTime() ? m.minimumTime() : minTime, maxTime < m.maximumTime() ? m.maximumTime() : maxTime, totalTime + m.totalTime(), lastStartTime < m.lastStartTime() ? m.lastStartTime() : lastStartTime, key ); }
/** * Check metrics. * * @param cache Cache to check metrics. * @param sz Expected size of metrics. * @param idx Index of metrics to check. * @param execs Expected number of executions. * @param completions Expected number of completions. * @param failures Expected number of failures. * @param first {@code true} if metrics checked for first query only. */ private void checkMetrics(IgniteCache<Integer, String> cache, int sz, int idx, int execs, int completions, int failures, boolean first) { Collection<? extends QueryDetailMetrics> metrics = cache.queryDetailMetrics(); assertNotNull(metrics); assertEquals(sz, metrics.size()); QueryDetailMetrics m = new ArrayList<>(metrics).get(idx); info("Metrics: " + m); assertEquals("Executions", execs, m.executions()); assertEquals("Completions", completions, m.completions()); assertEquals("Failures", failures, m.failures()); assertTrue(m.averageTime() >= 0); assertTrue(m.maximumTime() >= 0); assertTrue(m.minimumTime() >= 0); if (first) assertTrue("On first execution minTime == maxTime", m.minimumTime() == m.maximumTime()); }
@Override public boolean apply() { Collection<? extends QueryDetailMetrics> metrics = cache.queryDetailMetrics(); switch (cond) { case "size": return metrics.size() == exp; case "completions": int completions = 0; for (QueryDetailMetrics m : metrics) completions += m.completions(); return completions == exp; default: return true; } } }, 5000);
/** * Aggregate metrics. * * @param m Other metrics to take into account. * @return Aggregated metrics. */ public GridCacheQueryDetailMetricsAdapter aggregate(QueryDetailMetrics m) { return new GridCacheQueryDetailMetricsAdapter( qryType, qry, m.cache(), execs + m.executions(), completions + m.completions(), failures + m.failures(), minTime < 0 || minTime > m.minimumTime() ? m.minimumTime() : minTime, maxTime < m.maximumTime() ? m.maximumTime() : maxTime, totalTime + m.totalTime(), lastStartTime < m.lastStartTime() ? m.lastStartTime() : lastStartTime, key ); }
/** * @param m Cache query metrics. */ public VisorQueryDetailMetrics(QueryDetailMetrics m) { qryType = m.queryType(); qry = m.query(); cache = m.cache(); execs = m.executions(); completions = m.completions(); failures = m.failures(); minTime = m.minimumTime(); maxTime = m.maximumTime(); avgTime = m.averageTime(); totalTime = m.totalTime(); lastStartTime = m.lastStartTime(); }