示例#1
0
        private void Form1_Shown(object sender, EventArgs e)
        {
            // Initialize Cloud Watch with region APNorthEast1 (Tokyo)
            cw = Amazon.AWSClientFactory.CreateAmazonCloudWatchClient(AWSAccessKey, AWSSecretKey,
                                                                      RegionEndpoint.APNortheast1);

            // Retrieve the list of Metrics
            ListMetricsRequest metricsRequest = new ListMetricsRequest();
            for (int i = 1; i < namespaceList.Count; i++)
            {
                fromindex[i] = metricList.Count;
                metricsRequest.Namespace = namespaceList[i];
                metricsRequest.NextToken = null;
                try
                {
                    var result = cw.ListMetrics(metricsRequest).ListMetricsResult;
                    var tempList = result.Metrics;
                    while (result.NextToken != null)
                    {
                        metricsRequest.NextToken = result.NextToken;
                        result = cw.ListMetrics(metricsRequest).ListMetricsResult;
                        tempList.AddRange(result.Metrics);
                    }
                    tempList = tempList.OrderBy(a => a.Dimensions.Count)
                        .ThenBy(a => a.MetricName)
                        .ThenBy(a => a.Dimensions.Count > 0 ? a.Dimensions[0].Name : "")
                        .ThenBy(a => a.Dimensions.Count > 0 ? a.Dimensions[0].Value : "")
                        .ThenBy(a => a.Dimensions.Count > 1 ? a.Dimensions[1].Name : "")
                        .ThenBy(a => a.Dimensions.Count > 1 ? a.Dimensions[1].Value : "").ToList();
                    metricList.AddRange(tempList);
                    toindex[i] = metricList.Count;
                    // Debug.WriteLine(metricList.Count);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    this.Close();
                    return;
                }
            }

            // For all metrics
            fromindex[0] = 0;
            toindex[0] = metricList.Count;

            // Initialize plottedStat
            for (int i = 0; i < metricList.Count; i++)
            {
                plottedStat.Add(-1); // no stat was plotted
            }

            // Give control to search text box to start a search for metrics
            searchTBox.Select();
        }