Пример #1
0
        /// <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();
            }
        }
Пример #2
0
        /// <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;
            }
        }