/// <summary> /// Initializes the minute. /// </summary> /// <param name="minute">The minute.</param> private void InitializeMinute(DateTime minute) { lock (this._AverageLoadByMinutes) { if (!this._AverageLoadByMinutes.ContainsKey(minute)) { AverageLoad averageLoad = new AverageLoad(minute); this._AverageLoadByMinutes.Add(minute, averageLoad); } //TODO : need not call purge every minute. Purge(); } }
/// <summary> /// Adds the load information. /// </summary> /// <param name="loadInfo">The load information.</param> public void AddLoadInfo(LoadInfo loadInfo) { DateTime minute = loadInfo.DateTime.TopOfTheMinute(); if (this._AverageLoadByMinutes.ContainsKey(minute) == false) { InitializeMinute(minute); } lock (_serverName) { AverageLoad averageLoad = this._AverageLoadByMinutes[minute] as AverageLoad; averageLoad.AverageCpuLoad = Utilities.GetAverage(averageLoad.AverageCpuLoad, averageLoad.NumberOfDataPoints, loadInfo.CpuLoad); averageLoad.AverageMemoryLoad = Utilities.GetAverage(averageLoad.AverageMemoryLoad, averageLoad.NumberOfDataPoints, loadInfo.MemoryLoad); ++averageLoad.NumberOfDataPoints; } }