/// <summary> /// Create an aggregation client for a given data type. /// </summary> /// <param name="dataType">Type of sample to aggregate.</param> /// <param name="name">Name of the data to aggregate.</param> /// <param name="sources">List of source systems to aggregate from.</param> /// <param name="startTime">Start of timespan to aggregate data for.</param> /// <param name="endTime">End of timespan to aggregate data for.</param> /// <param name="streamManager">RecyclableMemoryStreamManager to use when aggregating data.</param> /// <returns>Suitable aggregation client.</returns> public static IPersistedDataAggregator CreateAggregatorForSampleType(MetricSystem.PersistedDataType dataType, string name, IEnumerable <string> sources, DateTime startTime, DateTime endTime, RecyclableMemoryStreamManager streamManager) { return(CreateAggregatorForSampleType(dataType, name, null, sources, startTime, endTime, streamManager)); }
public static IPersistedDataAggregator CreateAggregatorForSampleType(MetricSystem.PersistedDataType dataType, string name, DimensionSet dimensionSet, IEnumerable <string> sources, DateTime startTime, DateTime endTime, RecyclableMemoryStreamManager streamManager) { switch (dataType) { case MetricSystem.PersistedDataType.HitCount: return(new PersistedDataAggregator <InternalHitCount>(name, dimensionSet, sources, startTime, endTime, streamManager)); case MetricSystem.PersistedDataType.VariableEncodedHistogram: return(new PersistedDataAggregator <InternalHistogram>(name, dimensionSet, sources, startTime, endTime, streamManager)); default: throw new ArgumentException("Invalid data type", "dataType"); } }