package org.cloudifysource.domain.statistics;
import org.cloudifysource.domain.internal.CloudifyDSLEntity;
/**
* Domain POJO for a calculated statistics that is aggregated by time and then aggregated accross instances.
*
* @author itaif
* @since 2.1
*
*/
@CloudifyDSLEntity(name = "serviceStatistics", clazz = ServiceStatisticsDetails.class, allowInternalNode = true,
allowRootNode = false/*
* , parent = "service"
*/)
public class ServiceStatisticsDetails extends AbstractStatisticsDetails {
/**
* @param statistics The algorithm for aggregating metric samples by instances (first argument in the list) and by
* time (the second argument in the list). Metric samples are aggregated separately per instance in the
* specified time range, and then aggregated again for all instances. Default: Statistics.averageOfAverages
* Possible values: Statistics.maximumOfAverages, Statistics.minimumOfAverages, Statistics.averageOfAverages,
* Statistics.percentileOfAverages(90) Statistics.maximumOfMaximums, Statistics.minimumOfMinimums
*
* This has the same effect as setting instancesStatistics and timeStatistics separately. For example:
* statistics Statistics.maximumOfAverages is the same as: timeStatistics Statistics.average
* instancesStatistics Statistics.maximum
*
*/
public void setStatistics(final ServiceStatisticsCalculation statistics) {
super.setInstancesStatistics(statistics.getInstancesStatistics());
super.setTimeStatistics(statistics.getTimeStatistics());
}
public ServiceStatisticsCalculation getStatistics() {
return new ServiceStatisticsCalculation(getInstancesStatistics(), getTimeStatistics());
}
/**
* @see AbstractStatisticsDetails#setInstancesStatistics(InstancesStatisticsCalculation)
*/
@Override
public void setInstancesStatistics(final InstancesStatisticsCalculation instancesStatistics) {
super.setInstancesStatistics(instancesStatistics);
}
}