public FunctionLevelResourceConsumptionStatistics FunctionLevelResourceConsumptionStatistics() { ResourceConsumptionStatistics CPUConsumptionStatistics = ComputeStatistics(invocationDetails, timeSeriesAdapter.CPU.timestamps, timeSeriesAdapter.CPU.values); ResourceConsumptionStatistics MempryConsumptionStatistics = ComputeStatistics(invocationDetails, timeSeriesAdapter.Memory.timestamps, timeSeriesAdapter.Memory.values); FunctionLevelResourceConsumptionStatistics functionLevelResourceConsumptionStatistics = new FunctionLevelResourceConsumptionStatistics(CPUConsumptionStatistics, MempryConsumptionStatistics); return(functionLevelResourceConsumptionStatistics); }
public ResourceConsumptionStatistics ComputeStatistics(InvocationDetails invocationDetails, List <long> resourceConsumptionTimestamps, List <long> resourceConsumptionValues) { int startIndex = resourceConsumptionTimestamps.IndexOf(resourceConsumptionTimestamps.OrderBy(x => Math.Abs(x - invocationDetails.entryTime)).First()); int endIndex = resourceConsumptionTimestamps.IndexOf(resourceConsumptionTimestamps.OrderBy(x => Math.Abs(x - invocationDetails.exitTime)).First()); int sliceSize = endIndex - startIndex + 1; List <long> slicedConsumptionValues = resourceConsumptionValues.GetRange(startIndex, sliceSize > 0 ? sliceSize : 1); ResourceConsumptionStatistics resourceConsumptionStatistics = new ResourceConsumptionStatistics(); resourceConsumptionStatistics.max = this.FindMax(slicedConsumptionValues); resourceConsumptionStatistics.mean = this.FindMean(slicedConsumptionValues); //resourceConsumptionStatistics.standardDeviation = this.FindStandardDeviation(slicedConsumptionValues); return(resourceConsumptionStatistics); }
public FunctionLevelResourceConsumptionStatistics(ResourceConsumptionStatistics CPUConsumptionStatistics, ResourceConsumptionStatistics memoryConsumptionStatistics) { this.CPUConsumptionStatistics = CPUConsumptionStatistics; this.memoryConsumptionStatistics = memoryConsumptionStatistics; }