Esempio n. 1
0
        private void SetMetrics()
        {
            _systemMemoryBottom       = (float)_systemMemoryUsage.Used / 1024;
            _systemMemoryTop          = (float)_systemMemoryUsage.Total / 1024;
            _systemMemoryUsageGraphId = _metricsHandler.AddMetric("MEM", (float)_systemMemoryUsage.Used / 1024,
                                                                  (float)_systemMemoryUsage.Total / 1024, 100,
                                                                  () =>
            {
                try
                {
                    _systemMemoryUsage.Update();
                }
                catch
                {
                    /* ignore */
                }

                if (_systemMemoryBottom > (float)_systemMemoryUsage.Used / 1024)
                {
                    _systemMemoryBottom = (float)_systemMemoryUsage.Used / 1024;
                    _metricsHandler.UpdateGraphRange(_systemMemoryUsageGraphId, _systemMemoryBottom,
                                                     _systemMemoryTop);
                }

                return((float)_systemMemoryUsage.Used / 1024);
            });

            _metricsHandler.AddMetric("CPU", 0, 100, 100,
                                      () =>
            {
                try
                {
                    _systemCpuUsage.Update();
                }
                catch
                {
                    /* ignore */
                }     // underlying code is broken - it takes only one sample from /proc/stat, so it's giving average load from system boot till now (like "top -n1" => us + sy + ni)

                return((float)(_systemCpuUsage.User + _systemCpuUsage.Nice + _systemCpuUsage.System));
            });
        }