private void UpdateMetrics() { if (!PopulateInstanceId()) return; if (!PopulateRegion()) return; List<Amazon.CloudWatch.Model.MetricDatum> metrics = new List<Amazon.CloudWatch.Model.MetricDatum>(); if (_isSubmitDiskSpaceAvailable || _isSubmitDiskSpaceUsed || _isSubmitDiskSpaceUtilization) { // Get the list of drives from the system var drives = System.IO.DriveInfo.GetDrives(); foreach (var drive in drives) { AddDriveMetrics(drive, metrics); } } if (_isSubmitMemoryAvailable || _isSubmitMemoryUsed || _isSubmitMemoryUtilization || _isSubmitPhysicalMemoryAvailable || _isSubmitPhysicalMemoryUsed || _isSubmitPhysicalMemoryUtilization || _isSubmitVirtualMemoryAvailable || _isSubmitVirtualMemoryUsed || _isSubmitVirtualMemoryUtilization) { SubmitMemoryMetrics(metrics); } Info("\tSubmitting metric data"); var client = CreateClient(); for (int skip = 0; ; skip += 20) { var metricsThisRound = metrics.Skip(skip).Take(20); if (!metricsThisRound.Any()) break; var request = new Amazon.CloudWatch.Model.PutMetricDataRequest() { Namespace = CloudWatchNamespace, MetricData = metricsThisRound.ToList() }; var response = client.PutMetricData(request); } // We don't care about the response Info("Done."); }
private void UpdateMetrics() { if (!PopulateInstanceId()) { return; } if (!PopulateRegion()) { return; } List <Amazon.CloudWatch.Model.MetricDatum> metrics = new List <Amazon.CloudWatch.Model.MetricDatum>(); if (_isSubmitDiskSpaceAvailable || _isSubmitDiskSpaceUsed || _isSubmitDiskSpaceUtilization) { // Get the list of drives from the system var drives = System.IO.DriveInfo.GetDrives(); foreach (var drive in drives) { AddDriveMetrics(drive, metrics); } } if (_isSubmitMemoryAvailable || _isSubmitMemoryUsed || _isSubmitMemoryUtilization || _isSubmitPhysicalMemoryAvailable || _isSubmitPhysicalMemoryUsed || _isSubmitPhysicalMemoryUtilization || _isSubmitVirtualMemoryAvailable || _isSubmitVirtualMemoryUsed || _isSubmitVirtualMemoryUtilization) { SubmitMemoryMetrics(metrics); } Info("\tSubmitting metric data"); var client = CreateClient(); for (int skip = 0; ; skip += 20) { var metricsThisRound = metrics.Skip(skip).Take(20); if (!metricsThisRound.Any()) { break; } var request = new Amazon.CloudWatch.Model.PutMetricDataRequest() { Namespace = CloudWatchNamespace, MetricData = metricsThisRound.ToList() }; var response = client.PutMetricData(request); } // We don't care about the response Info("Done."); }