Jagger
 All Classes Namespaces Files Functions Variables Enumerator Groups Pages
Metric raw data aggregation
General info
During test execution raw values for every metric are stores in the file system in the time series format. After the test is over, raw data is aggregated. Depending on the setup for every metric, framework can aggregate only summary value or, additionally, detailed results (metric vs time). You can setup how metric will be aggregated during metric creation. Every metric can be aggregated by single aggregator or multiple aggregators, running one after another. As example, from the raw data of the Success rate metric, with use of two different aggregators we are calculating two parameters: Success rate and Number of fails.

Aggregators are processing raw data to get final measurement results that will be saved to database.
Aggregators are executed after all measurements are finished. Main goal for them is to reduce number of data values available after measurement

Simplest example: after measurement there are 100000 points, but you want to save only 200 points to database
So you are applying averaging aggregator that takes average value for every 500 points from raw data and saves it to the DB as single value.
Java doc for aggregators and examples
Aggregators implementations and examples
Example of custom metric with aggregator
Example of the custom metric with multiple aggregators. Raw data, collected for this metric, will be aggregated by different aggregators to store different values to the results DB: min, max, average values and percentiles.
//begin: following section is used for docu generation - example of the metric with multiple aggregators
getMetricService().createMetric(new MetricDescription(metricName)
.displayName("Example duration metric, ms")
.showSummary(true)
.plotData(true)
.addAggregator(new MinMetricAggregatorProvider())
.addAggregator(new MaxMetricAggregatorProvider())
.addAggregator(new AvgMetricAggregatorProvider())
.addAggregator(new PercentileAggregatorProvider(40D))
.addAggregator(new PercentileAggregatorProvider(50D))
.addAggregator(new PercentileAggregatorProvider(60D))
.addAggregator(new PercentileAggregatorProvider(70D))
.addAggregator(new PercentileAggregatorProvider(80D))
.addAggregator(new PercentileAggregatorProvider(90D))
.addAggregator(new PercentileAggregatorProvider(95D))
.addAggregator(new PercentileAggregatorProvider(99D))
);
//end: following section is used for docu generation - example of the metric with multiple aggregators
Aggregation interval
Aggregation interval defines how many values will be saved to the database and displayed in the plots.
In the framework configuration, you can set either number of points on the plot or directly aggregation interval.
# begin: following section is used for docu generation - Aggregation interval
# # # Number of points displayed in plots # # #
# Properties will influence aggregation interval of measured parameters
# You can define exact interval between points,
# or you can define count of points and interval will be calculated
# It is also possible to set interval or point count for every measured parameter separatly
# See Aggregators documentation for more info
chassis.engine.e1.reporting.task.type=count
# chassis.engine.e1.reporting.task.type=interval
# Exact interval between plot points in milliseconds
chassis.engine.e1.reporting.task.point.interval=5000
# Count of points
chassis.engine.e1.reporting.task.point.count=100
# end: following section is used for docu generation - Aggregation interval

In the picture below you can see comparison of both settings:
for session 26 - point count was set to 100
for session 29 - aggregation interval 50 sec was set
jagger_point_count_vs_time_interval.png
Aggregation interval setup