BoxedIce.ServerDensity.Agent.Checks.IOCheck.IOCheck C# (CSharp) Метод

IOCheck() публичный Метод

Initializes a new instance of the IOCheck class and set up the performance monitors we need
public IOCheck ( ) : System
Результат System
        public IOCheck()
        {
            this.drivesToCheck = new List<Drive>();

            var perfCategory = new PerformanceCounterCategory("PhysicalDisk");
            string[] instanceNames = perfCategory.GetInstanceNames();

            foreach (var instance in instanceNames)
            {
                // ignore _Total and other system categories
                if (instance.StartsWith("_", StringComparison.Ordinal))
                {
                    continue;
                }

                var drive = new Drive();
                drive.DriveName = instance.Split(new char[1] { ' ' }, 2)[1];
                drive.InstanceName = instance;
                drive.Metrics = new List<DriveMetric>();

                drive.Metrics.Add(new DriveMetric() { MetricName = "rkB/s", Counter = new PerformanceCounter("PhysicalDisk", "Disk Read Bytes/sec", instance), Divisor = 1024 });
                drive.Metrics.Add(new DriveMetric() { MetricName = "wkB/s", Counter = new PerformanceCounter("PhysicalDisk", "Disk Write Bytes/sec", instance), Divisor = 1024 });
                drive.Metrics.Add(new DriveMetric() { MetricName = "%util", Counter = new PerformanceCounter("PhysicalDisk", "% Disk Time", instance), Divisor = 1 });
                drive.Metrics.Add(new DriveMetric() { MetricName = "avgqu-sz", Counter = new PerformanceCounter("PhysicalDisk", "Avg. Disk Queue Length", instance), Divisor = 1 });
                drive.Metrics.Add(new DriveMetric() { MetricName = "r/s", Counter = new PerformanceCounter("PhysicalDisk", "Disk Reads/sec", instance), Divisor = 1 });
                drive.Metrics.Add(new DriveMetric() { MetricName = "w/s", Counter = new PerformanceCounter("PhysicalDisk", "Disk Writes/sec", instance), Divisor = 1 });
                drive.Metrics.Add(new DriveMetric() { MetricName = "svctm", Counter = new PerformanceCounter("PhysicalDisk", "Avg. Disk sec/Transfer", instance), Divisor = 1 });

                // take the first readings
                foreach (var c in drive.Metrics)
                {
                    c.Counter.NextValue();
                }

                this.drivesToCheck.Add(drive);
            }
        }