CloudWatch からのメトリクスの取得
前提条件
作業を始める前に「AWS SDK for C++ の開始方法」を読むことをお勧めします。
コード例をダウンロードし、「コード例の開始方法」の説明に従ってソリューションをビルドします。
例を実行するには、リクエストに使用するユーザープロファイルに、AWS のサービスとアクションに対する適切なアクセス許可が付与されている必要があります。詳細については、「AWS 認証情報の提供」を参照してください。
メトリクスの一覧表示
CloudWatch メトリクスを一覧表示するには、ListMetricsRequest を作成し、CloudWatchClient の ListMetrics 関数を呼び出します。ListMetricsRequest を使用して、名前空間、メトリクス名、またはディメンションで返されたメトリクスをフィルタリングできます。
注記
AWS サービスが提供するメトリクスとディメンションの一覧は、「Amazon CloudWatch ユーザーガイド」の「Amazon CloudWatch メトリクスとディメンションのリファレンス」で参照できます。
含まれるもの:
#include <aws/core/Aws.h> #include <aws/monitoring/CloudWatchClient.h> #include <aws/monitoring/model/ListMetricsRequest.h> #include <aws/monitoring/model/ListMetricsResult.h> #include <iomanip> #include <iostream>
コード
Aws::CloudWatch::CloudWatchClient cw; Aws::CloudWatch::Model::ListMetricsRequest request; if (argc > 1) { request.SetMetricName(argv[1]); } if (argc > 2) { request.SetNamespace(argv[2]); } bool done = false; bool header = false; while (!done) { auto outcome = cw.ListMetrics(request); if (!outcome.IsSuccess()) { std::cout << "Failed to list CloudWatch metrics:" << outcome.GetError().GetMessage() << std::endl; break; } if (!header) { std::cout << std::left << std::setw(48) << "MetricName" << std::setw(32) << "Namespace" << "DimensionNameValuePairs" << std::endl; header = true; } const auto &metrics = outcome.GetResult().GetMetrics(); for (const auto &metric : metrics) { std::cout << std::left << std::setw(48) << metric.GetMetricName() << std::setw(32) << metric.GetNamespace(); const auto &dimensions = metric.GetDimensions(); for (auto iter = dimensions.cbegin(); iter != dimensions.cend(); ++iter) { const auto &dimkv = *iter; std::cout << dimkv.GetName() << " = " << dimkv.GetValue(); if (iter + 1 != dimensions.cend()) { std::cout << ", "; } } std::cout << std::endl; } const auto &next_token = outcome.GetResult().GetNextToken(); request.SetNextToken(next_token); done = next_token.empty(); }
メトリクスは、GetMetrics 関数を呼び出すことで ListMetricsResult に返されます。結果はページ分割される場合があります。結果の次のバッチを取得するには、ListMetricsResult オブジェクトの GetNextToken 関数の戻り値を使用して元のリクエストオブジェクトで SetNextToken を呼び出し、変更したリクエストオブジェクトを ListMetrics の再呼び出しに渡します。
完全な例
詳細情報
-
「Amazon CloudWatch API リファレンス」の「ListMetrics」。