public MetricsIntervalResultDto(MetricIntervalValue metric) { this.timestamp = metric.getTimestamp(); this.name = metric.getName(); this.reporter = metric.getReporter(); this.value = metric.getValue(); }
@Test public void testMeterQueryDefaultIntervalWhereReporter() { //given metric data //when query metric interval data with reporter in where clause List<MetricIntervalValue> metrics = managementService.createMetricsQuery().reporter(REPORTER_ID).interval(); //then result contains only metrics from given reporter, since it is the default it contains all assertEquals(3 * metricsCount, metrics.size()); long lastTimestamp = metrics.get(0).getTimestamp().getTime(); String reporter = metrics.get(0).getReporter(); metrics.remove(0); for (MetricIntervalValue metric : metrics) { assertEquals(reporter, metric.getReporter()); long nextTimestamp = metric.getTimestamp().getTime(); if (lastTimestamp != nextTimestamp) { assertEquals(lastTimestamp, nextTimestamp + DEFAULT_INTERVAL_MILLIS); lastTimestamp = nextTimestamp; } } }
@Test public void testMeterQueryDefaultIntervalWhereName() { //given metric data //when query metric interval data with name in where clause List<MetricIntervalValue> metrics = managementService.createMetricsQuery().name(ACTIVTY_INSTANCE_START).interval(); //then result contains only metrics with given name assertEquals(3, metrics.size()); long lastTimestamp = metrics.get(0).getTimestamp().getTime(); String name = metrics.get(0).getName(); metrics.remove(0); for (MetricIntervalValue metric : metrics) { assertEquals(name, metric.getName()); long nextTimestamp = metric.getTimestamp().getTime(); if (lastTimestamp != nextTimestamp) { assertEquals(lastTimestamp, nextTimestamp + DEFAULT_INTERVAL_MILLIS); lastTimestamp = nextTimestamp; } } }
@Test public void testMeterQueryDefaultInterval() { //given metric data //when query metric interval data with default values List<MetricIntervalValue> metrics = managementService.createMetricsQuery().interval(); //then default interval is 900 s (15 minutes) long lastTimestamp = metrics.get(0).getTimestamp().getTime(); metrics.remove(0); for (MetricIntervalValue metric : metrics) { long nextTimestamp = metric.getTimestamp().getTime(); if (lastTimestamp != nextTimestamp) { assertEquals(lastTimestamp, nextTimestamp + DEFAULT_INTERVAL_MILLIS); lastTimestamp = nextTimestamp; } } }
@Test public void testIntervallQueryWithGeneratedDataAfterSomeTimeForSpecificMetric() { //given metric data and result of interval query List<MetricIntervalValue> metrics = managementService.createMetricsQuery() .name(ACTIVTY_INSTANCE_START) .startDate(new Date(0)) .endDate(new Date(DEFAULT_INTERVAL_MILLIS * 200)).interval(); //when time is running and metrics is reported Date lastInterval = metrics.get(0).getTimestamp(); long nextTime = lastInterval.getTime() + DEFAULT_INTERVAL_MILLIS; ClockUtil.setCurrentTime(new Date(nextTime)); reportMetrics(); //then query returns more results List<MetricIntervalValue> newMetrics = managementService.createMetricsQuery() .name(ACTIVTY_INSTANCE_START) .startDate(new Date(0)) .endDate(new Date(DEFAULT_INTERVAL_MILLIS * 200)).interval(); assertNotEquals(metrics.size(), newMetrics.size()); assertEquals(newMetrics.get(0).getTimestamp().getTime(), metrics.get(0).getTimestamp().getTime() + DEFAULT_INTERVAL_MILLIS); assertEquals(metrics.get(0).getValue(), newMetrics.get(1).getValue()); //clean up clearMetrics(); }
@Test public void testMeterQueryNotLoggedInterval() { //given metric data List<MetricIntervalValue> metrics = managementService.createMetricsQuery().name(ACTIVTY_INSTANCE_START).limit(1).interval(); long value = metrics.get(0).getValue(); //when start process and metrics are not logged processEngineConfiguration.getMetricsRegistry().markOccurrence(ACTIVTY_INSTANCE_START, 3); //then metrics values are either way aggregated to the last interval //on query with name metrics = managementService.createMetricsQuery().name(ACTIVTY_INSTANCE_START).limit(1).interval(); long newValue = metrics.get(0).getValue(); Assert.assertTrue(value + 3 == newValue); //on query without name also metrics = managementService.createMetricsQuery().interval(); for (MetricIntervalValue intervalValue : metrics) { if (intervalValue.getName().equalsIgnoreCase(ACTIVTY_INSTANCE_START)) { newValue = intervalValue.getValue(); Assert.assertTrue(value + 3 == newValue); break; } } //clean up clearLocalMetrics(); }
@Test public void testMeterQueryCustomIntervalCalculatedValue() { //given metric data created for 15 min intervals //when query metric interval data with custom interval, start and end date in where clause DateTime endDate = firstInterval.plusMinutes(DEFAULT_INTERVAL); DateTime startDate = firstInterval; MetricsQuery metricQuery = managementService.createMetricsQuery() .startDate(startDate.toDate()) .endDate(endDate.toDate()) .name(ACTIVTY_INSTANCE_START); List<MetricIntervalValue> metrics = metricQuery.interval(300); long sum = metricQuery.sum(); //then result contains 3 entries assertEquals(3, metrics.size()); long summedValue = 0; summedValue += metrics.get(0).getValue(); summedValue += metrics.get(1).getValue(); summedValue += metrics.get(2).getValue(); //summed value should be equal to the summed query value assertEquals(sum, summedValue); }
@Test public void testMetricQueryAggregatedByReporterSingleReporter() { // given metric data and result of interval query List<MetricIntervalValue> metrics = managementService.createMetricsQuery().interval(); // assume assertTrue(metrics.size() > 0); // when List<MetricIntervalValue> aggregatedMetrics = managementService.createMetricsQuery().aggregateByReporter().interval(); // then assertEquals(metrics.size(), aggregatedMetrics.size()); for (MetricIntervalValue metricIntervalValue : aggregatedMetrics) { assertNull(metricIntervalValue.getReporter()); } }
@Test public void testMeterQueryCustomInterval() { //given metric data //when query metric interval data with custom time interval List<MetricIntervalValue> metrics = managementService.createMetricsQuery().interval(300); //then custom interval is 300 s (5 minutes) int interval = 5 * 60 * 1000; long lastTimestamp = metrics.get(0).getTimestamp().getTime(); metrics.remove(0); for (MetricIntervalValue metric : metrics) { long nextTimestamp = metric.getTimestamp().getTime(); if (lastTimestamp != nextTimestamp) { assertEquals(lastTimestamp, nextTimestamp + interval); lastTimestamp = nextTimestamp; } } }
@Test public void testMeterQueryCustomIntervalWhereReporter() { //given metric data and custom interval int interval = 5 * 60; //when query metric interval data with custom interval and reporter in where clause List<MetricIntervalValue> metrics = managementService.createMetricsQuery().reporter(REPORTER_ID).interval(interval); //then result contains only metrics from given reporter, since it is the default it contains all assertEquals(9 * metricsCount, metrics.size()); interval = interval * 1000; long lastTimestamp = metrics.get(0).getTimestamp().getTime(); String reporter = metrics.get(0).getReporter(); metrics.remove(0); for (MetricIntervalValue metric : metrics) { assertEquals(reporter, metric.getReporter()); long nextTimestamp = metric.getTimestamp().getTime(); if (lastTimestamp != nextTimestamp) { assertEquals(lastTimestamp, nextTimestamp + interval); lastTimestamp = nextTimestamp; } } }
@Test public void testMeterQueryCustomIntervalWhereName() { //given metric data and custom interval int interval = 5 * 60; //when query metric interval data with custom interval and name in where clause List<MetricIntervalValue> metrics = managementService.createMetricsQuery().name(ACTIVTY_INSTANCE_START).interval(interval); //then result contains only metrics with given name assertEquals(9, metrics.size()); interval = interval * 1000; long lastTimestamp = metrics.get(0).getTimestamp().getTime(); String name = metrics.get(0).getName(); metrics.remove(0); for (MetricIntervalValue metric : metrics) { assertEquals(name, metric.getName()); long nextTimestamp = metric.getTimestamp().getTime(); if (lastTimestamp != nextTimestamp) { assertEquals(lastTimestamp, nextTimestamp + interval); lastTimestamp = nextTimestamp; } } }
@Test public void testIntervallQueryWithGeneratedDataAfterSomeTimeForSpecificMetric() { //given metric data and result of interval query List<MetricIntervalValue> metrics = managementService.createMetricsQuery() .name(ACTIVTY_INSTANCE_START) .startDate(new Date(0)) .endDate(new Date(DEFAULT_INTERVAL_MILLIS * 200)).interval(); //when time is running and metrics is reported Date lastInterval = metrics.get(0).getTimestamp(); long nextTime = lastInterval.getTime() + DEFAULT_INTERVAL_MILLIS; ClockUtil.setCurrentTime(new Date(nextTime)); reportMetrics(); //then query returns more results List<MetricIntervalValue> newMetrics = managementService.createMetricsQuery() .name(ACTIVTY_INSTANCE_START) .startDate(new Date(0)) .endDate(new Date(DEFAULT_INTERVAL_MILLIS * 200)).interval(); assertNotEquals(metrics.size(), newMetrics.size()); assertEquals(newMetrics.get(0).getTimestamp().getTime(), metrics.get(0).getTimestamp().getTime() + DEFAULT_INTERVAL_MILLIS); assertEquals(metrics.get(0).getValue(), newMetrics.get(1).getValue()); //clean up clearMetrics(); } }
@Test public void testMeterQueryNotLoggedInterval() { //given metric data List<MetricIntervalValue> metrics = managementService.createMetricsQuery().name(ACTIVTY_INSTANCE_START).limit(1).interval(); long value = metrics.get(0).getValue(); //when start process and metrics are not logged processEngineConfiguration.getMetricsRegistry().markOccurrence(ACTIVTY_INSTANCE_START, 3); //then metrics values are either way aggregated to the last interval //on query with name metrics = managementService.createMetricsQuery().name(ACTIVTY_INSTANCE_START).limit(1).interval(); long newValue = metrics.get(0).getValue(); Assert.assertTrue(value + 3 == newValue); //on query without name also metrics = managementService.createMetricsQuery().interval(); for (MetricIntervalValue intervalValue : metrics) { if (intervalValue.getName().equalsIgnoreCase(ACTIVTY_INSTANCE_START)) { newValue = intervalValue.getValue(); Assert.assertTrue(value + 3 == newValue); break; } } //clean up clearLocalMetrics(); }
@Test public void testMeterQueryDefaultIntervalCalculatedValue() { //given metric data created for 15 min intervals //when query metric interval data with custom interval, start and end date in where clause DateTime endDate = firstInterval.plusMinutes(DEFAULT_INTERVAL); DateTime startDate = firstInterval; MetricsQuery metricQuery = managementService.createMetricsQuery() .startDate(startDate.toDate()) .endDate(endDate.toDate()) .name(ACTIVTY_INSTANCE_START); List<MetricIntervalValue> metrics = metricQuery.interval(); long sum = metricQuery.sum(); //then result contains 1 entries //sum should be equal to the sum which is calculated by the metric query assertEquals(1, metrics.size()); assertEquals(sum, metrics.get(0).getValue()); }
@Test public void testMetricQueryAggregatedByReporterThreeReporters() { // given metric data for default reported // generate data for reporter1 processEngineConfiguration.getDbMetricsReporter().setReporterId("reporter1"); generateMeterData(3, DEFAULT_INTERVAL_MILLIS); // generate data for reporter2 processEngineConfiguration.getDbMetricsReporter().setReporterId("reporter2"); generateMeterData(3, DEFAULT_INTERVAL_MILLIS); List<MetricIntervalValue> metrics = managementService.createMetricsQuery().interval(); // when List<MetricIntervalValue> aggregatedMetrics = managementService.createMetricsQuery().aggregateByReporter().interval(); // then // multiply by 3 because there are three reporters: 'REPORTER_ID' (check the #initMetrics()), reporter1 and reporter2 assertEquals(metrics.size(), aggregatedMetrics.size() * 3); for (MetricIntervalValue metricIntervalValue : aggregatedMetrics) { assertNull(metricIntervalValue.getReporter()); } }
public MetricsIntervalResultDto(MetricIntervalValue metric) { this.timestamp = metric.getTimestamp(); this.name = metric.getName(); this.reporter = metric.getReporter(); this.value = metric.getValue(); }
@Test public void testIntervallQueryWithGeneratedDataAfterSomeTime() { //given metric data and result of interval query List<MetricIntervalValue> metrics = managementService.createMetricsQuery().interval(); //when time is running and metrics is reported Date lastInterval = metrics.get(0).getTimestamp(); long nextTime = lastInterval.getTime() + DEFAULT_INTERVAL_MILLIS; ClockUtil.setCurrentTime(new Date(nextTime)); reportMetrics(); //then query returns more results List<MetricIntervalValue> newMetrics = managementService.createMetricsQuery().interval(); assertNotEquals(metrics.size(), newMetrics.size()); assertEquals(metrics.size() + metricsCount, newMetrics.size()); assertEquals(newMetrics.get(0).getTimestamp().getTime(), metrics.get(0).getTimestamp().getTime() + DEFAULT_INTERVAL_MILLIS); }
@Test public void testMeterQueryDefaultIntervalWhereReporter() { //given metric data //when query metric interval data with reporter in where clause List<MetricIntervalValue> metrics = managementService.createMetricsQuery().reporter(REPORTER_ID).interval(); //then result contains only metrics from given reporter, since it is the default it contains all assertEquals(3 * metricsCount, metrics.size()); long lastTimestamp = metrics.get(0).getTimestamp().getTime(); String reporter = metrics.get(0).getReporter(); metrics.remove(0); for (MetricIntervalValue metric : metrics) { assertEquals(reporter, metric.getReporter()); long nextTimestamp = metric.getTimestamp().getTime(); if (lastTimestamp != nextTimestamp) { assertEquals(lastTimestamp, nextTimestamp + DEFAULT_INTERVAL_MILLIS); lastTimestamp = nextTimestamp; } } }
@Test public void testMeterQueryDefaultIntervalWhereName() { //given metric data //when query metric interval data with name in where clause List<MetricIntervalValue> metrics = managementService.createMetricsQuery().name(ACTIVTY_INSTANCE_START).interval(); //then result contains only metrics with given name assertEquals(3, metrics.size()); long lastTimestamp = metrics.get(0).getTimestamp().getTime(); String name = metrics.get(0).getName(); metrics.remove(0); for (MetricIntervalValue metric : metrics) { assertEquals(name, metric.getName()); long nextTimestamp = metric.getTimestamp().getTime(); if (lastTimestamp != nextTimestamp) { assertEquals(lastTimestamp, nextTimestamp + DEFAULT_INTERVAL_MILLIS); lastTimestamp = nextTimestamp; } } }
assertEquals(5, piList.get(0).getValue()); List<MetricIntervalValue> diList = decisionMetricsQuery.startDate(DateUtils.addDays(currentDate, DAYS_IN_THE_PAST)).interval(900); assertEquals(1, diList.size()); assertEquals(5, diList.get(0).getValue()); List<MetricIntervalValue> ciList = caseMetricsQuery.startDate(DateUtils.addDays(currentDate, DAYS_IN_THE_PAST)).interval(900); assertEquals(1, ciList.size()); assertEquals(5, ciList.get(0).getValue());