Amazon.CloudWatch.AmazonCloudWatchClient.GetMetricStatisticsAsync C# (CSharp) Метод

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

Initiates the asynchronous execution of the GetMetricStatistics operation.
public GetMetricStatisticsAsync ( GetMetricStatisticsRequest request, System cancellationToken = default(CancellationToken) ) : Task
request Amazon.CloudWatch.Model.GetMetricStatisticsRequest Container for the necessary parameters to execute the GetMetricStatistics operation.
cancellationToken System /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. ///
Результат Task
        public Task<GetMetricStatisticsResponse> GetMetricStatisticsAsync(GetMetricStatisticsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller = new GetMetricStatisticsRequestMarshaller();
            var unmarshaller = GetMetricStatisticsResponseUnmarshaller.Instance;

            return InvokeAsync<GetMetricStatisticsRequest,GetMetricStatisticsResponse>(request, marshaller, 
                unmarshaller, cancellationToken);
        }

Usage Example

 public async Task<SummaryResult> GetDataBlob()
 {
     var cloudwatch = new AmazonCloudWatchClient(RegionEndpoint.APNortheast1);
     var res = await cloudwatch.GetMetricStatisticsAsync(new GetMetricStatisticsRequest()
     {
         Namespace = @"AWS/ELB",
         MetricName = "RequestCount",
         Statistics = new List<string>() { "Sum" },
         Unit = StandardUnit.Count,
         Dimensions = new List<Dimension>()
         {
             new Dimension() { Name = "LoadBalancerName", Value = ConfigurationManager.AppSettings["ELBName"] }, 
             new Dimension() { Name = "AvailabilityZone", Value = ConfigurationManager.AppSettings["AvailabilityZone"] }
         },
         StartTime = DateTime.UtcNow - TimeSpan.FromDays(30),
         EndTime = DateTime.UtcNow,
         Period = 60 * 60
     });
     return new SummaryResult()
     {
         MaxValue = (int)res.Datapoints.Max(d => d.Sum),
         MinValue = (int)res.Datapoints.Min(d => d.Sum),
         Groups = res.Datapoints.Select(d => new DateData() { Date = d.Timestamp.Date, Hour = d.Timestamp.Hour, Y = d.Sum })
             .GroupBy(d => d.Date)
             .OrderBy(d => d.Key)
             .ToDictionary(d => d.Key, d => d.OrderBy(da => da.Hour).ToList())
             .Select(pair => new DateGroup()
             {
                 Key = pair.Key,
                 Values = pair.Value,
             })
     };
 }