ウィザードによる事前構築済みのデータソースへの接続 - Amazon CloudWatch

ウィザードによる事前構築済みのデータソースへの接続

このトピックでは、ウィザードを使用して CloudWatch を以下のデータソースに接続する手順について説明します。

  • Amazon OpenSearch Service

  • Amazon Managed Service for Prometheus

  • Amazon RDS for MySQL

  • Amazon RDS for PostgreSQL

  • Amazon S3 CSV ファイル

  • Microsoft Azure Monitor

  • Prometheus

このセクションでは、後でいくつかのサブセクションに分けて、こうした各データソースを管理およびクエリする際の注意事項を示します。

データソースへのコネクタを作成するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで [設定] を選択します。

  3. [メトリクスのデータソース] タブを選択します。

  4. [データソースを作成] を選択します。

  5. 目的のソースを選択し、[次へ] を選択します。

  6. データソースの名前を入力します。

  7. 選択したデータソースに応じて、その他の必要な情報を入力します。例えば、データソースにアクセスするための認証情報が必要になることもあれば、Prometheus ワークスペース名、データベース名、Amazon S3 バケット名といったデータソース識別情報が必要になることもあります。AWS サービスの場合、ウィザードがリソースを検出して選択ドロップダウンに入力します。

    現在使用中のデータソースに関するその他の注意事項については、この手順に続く各セクションを参照してください。

  8. CloudWatch を VPC 内のデータソースに接続するには、[VPC を使用] を選択し、使用する VPC を選択します。次に、サブネットとセキュリティグループを選択します。

  9. [AWS CloudFormation が IAM リソースを作成することを承認します] を選択します。このリソースは Lambda 関数実行ロールです。

  10. [データソースを作成] を選択します。

    先ほど追加した新しいソースは、AWS CloudFormation スタックでの作成が完了するまで表示されません。進行状況を確認するには、[CloudFormation スタックのステータスを見る] を選択します。あるいは、更新アイコンを選択して、このリストを更新することもできます。

    新しいデータソースがこのリストに表示されたら、使用する準備ができたことになります。[CloudWatch メトリクスからクエリ] を選択して、クエリを開始できます。詳細については、「 別のデータソースにあるメトリクスのグラフ化」を参照してください。

Amazon Managed Service for Prometheus

データソース設定の更新

  • データソースを手動で更新する場合は、次の操作を実行します。

    • Amazon Managed Service for Prometheus ワークスペース ID を更新するには、データソースコネクタ Lambda 関数の AMAZON_PROMETHEUS_WORKSPACE_ID 環境変数を更新します。

    • VPC 設定を更新する場合は、「VPC アクセスの設定 (コンソール)」で詳細を確認してください。

データソースのクエリ

  • Amazon Managed Service for Prometheus をクエリする場合は、[マルチソースクエリ] タブでデータソースを選択し、Amazon Managed Service for Prometheus コネクタを選択した後で、クエリヘルパーを使用してメトリクスとラベルを検出し、簡単な PromQL クエリを実行できます。また、PromQL クエリエディタを使用して PromQL クエリを作成することもできます。

  • CloudWatch データソースコネクタでは、複数行にわたるクエリはサポートされていません。そうしたクエリを実行するか、そうしたクエリでアラームやダッシュボードウィジェットを作成すると、すべてのラインフィードがスペースに置き換えられます。場合によっては、クエリが無効になることもあります。例えば、クエリに 1 行のコメントが含まれていると、そのクエリは無効になります。コマンドラインまたは Infrastructure as Code から複数行にわたるクエリを使用してダッシュボードまたはアラームを作成しようとすると、API がそのアクションを拒否して、解析エラーが発生します。

Amazon OpenSearch Service

データソースの作成

OpenSearch ドメインが FGAC で有効になっている場合、コネクタ Lambda 関数の実行ロールを OpenSearch Service 内のユーザーにマッピングする必要があります。詳細については、OpenSearch Service ドキュメントの「Managing permissions」の「Mapping users to roles」セクションを参照してください。

OpenSearch ドメインが Virtual Private Cloud (VPC) 内のみでアクセス可能である場合は、AMAZON_OPENSEARCH_ENDPOINT と呼ばれる Lambda 関数に新しい環境変数を手動で追加する必要があります。この変数の値は、OpenSearch エンドポイントのルートドメインにする必要があります。このルートドメインは、OpenSearch Service コンソールに一覧表示されているドメインエンドポイントから https://<region>.es.amazonaws.com を削除することで取得できます。例えば、ドメインエンドポイントが https://sample-domain.us-east-1.es.amazonaws.com の場合、ルートドメインは sample-domain になります。

データソースの更新

  • データソースを手動で更新する場合は、次の操作を実行します。

    • OpenSearch Service ドメインを更新するには、データソースコネクタ Lambda 関数の AMAZON_OPENSEARCH_DOMAIN_NAME 環境変数を更新します。

    • VPC 設定を更新する場合は、「VPC アクセスの設定 (コンソール)」で詳細を確認してください。

データソースのクエリ

  • OpenSearch Service をクエリする場合は、[マルチソースクエリ] タブでデータソースを選択した後で、以下の操作を実行します。

    • クエリするインデックスを選択します。

    • メトリクス名 (ドキュメント内の任意の数値フィールド) と統計を選択します。

    • 時間軸 (ドキュメント内の任意の日付フィールド) を選択します。

    • 適用するフィルター (ドキュメント内の任意の文字列フィールド) を選択します。

    • [グラフクエリ] を選択します。

Amazon RDS for PostgreSQL と Amazon RDS for MySQL

データソースの作成

データソースの更新

  • データソースを手動で更新する場合は、次の操作を実行します。

    • データベースインスタンスを更新するには、データソースコネクタ Lambda 関数の RDS_INSTANCE 環境変数を更新します。

    • Amazon RDS への接続に使用するユーザー名とパスワードを更新するには、AWS Secrets Manager を使用します。データソースに使用されるシークレットの ARN は、データソース Lambda 関数の環境変数 RDS_SECRET で確認できます。AWS Secrets Manager でシークレットを更新する方法の詳細については、「Modify an AWS Secrets Manager secret」を参照してください。

    • VPC 設定を更新する場合は、「VPC アクセスの設定 (コンソール)」で詳細を確認してください。

データソースのクエリ

  • Amazon RDS をクエリする場合は、[マルチソースクエリ] タブでデータソースを選択し、Amazon RDS コネクタを選択した後で、データベースディスカバラーを使用して、使用可能なデータベース、テーブル、列を表示できます。また、SQL エディタを使用して、SQL クエリを作成することもできます。

    作成した SQL クエリでは、以下の変数を使用できます。

    • $start.iso - ISO 日付形式の開始時刻

    • $end.iso - ISO 日付形式の終了時刻

    • $period - 選択した期間 (秒)

    例えば、SELECT value, timestamp FROM table WHERE timestamp BETWEEN $start.iso and $end.iso というクエリを実行できます。

  • CloudWatch データソースコネクタでは、複数行にわたるクエリはサポートされていません。そうしたクエリを実行するか、そうしたクエリでアラームやダッシュボードウィジェットを作成すると、すべてのラインフィードがスペースに置き換えられます。場合によっては、クエリが無効になることもあります。例えば、クエリに 1 行のコメントが含まれていると、そのクエリは無効になります。コマンドラインまたは Infrastructure as Code から複数行にわたるクエリを使用してダッシュボードまたはアラームを作成しようとすると、API がそのアクションを拒否して、解析エラーが発生します。

注記

結果に日付フィールドがない場合は、各数値フィールドの値が合計されて 1 つの値になり、指定された時間範囲にわたってプロットされます。タイムスタンプが CloudWatch で選択された期間と一致しない場合、データは SUM を使用して自動的に集計され、CloudWatch の期間に合わせて調整されます。

Amazon S3 CSV ファイル

データソースのクエリ

  • Amazon S3 CSV ファイルをクエリする場合は、[マルチソースクエリ] タブでデータソースを選択し、Amazon S3 コネクタを選択した後で、Amazon S3 バケットとキーを選択します。

    CSV ファイルの形式は、次のようにする必要があります。

    • タイムスタンプは最初の列である必要があります。

    • テーブルにはヘッダー行が必要です。ヘッダーは、メトリクスに名前を付けるために使用されます。タイムスタンプ列のタイトルは無視され、メトリクス列のタイトルのみが使用されます。

    • タイムスタンプは ISO 日付形式である必要があります。

    • メトリクスは数値フィールドである必要があります。

    Timestamp, Metric-1, Metric-2, ...

    以下に例を示します。

    timestamp CPU (%) メモリ (%) ストレージ (%)

    2023-11-23T17:09:41+00:00

    1

    2

    3

    2023-11-23T17:04:41+00:00

    4

    5

    6

    2023-11-23T16:59:41+00:00

    7

    8

    9

    2023-11-23T16:54:41+00:00

    10

    11

    12

注記

タイムスタンプが指定されていない場合は、各メトリクスの値が合計されて 1 つの値になり、指定された時間範囲にわたってプロットされます。タイムスタンプが CloudWatch で選択された期間と一致しない場合、データは SUM を使用して自動的に集計され、CloudWatch の期間に合わせて調整されます。

Microsoft Azure Monitor

データソースの作成

データソースの更新

  • データソースを手動で更新する場合は、次の操作を実行します。

    • Azure Monitor への接続に使用されるテナント ID、クライアント ID、クライアントシークレットを更新するには、データソースに使用されるシークレットの ARN を確認します。これは、データソース Lambda 関数で AZURE_CLIENT_SECRET 環境変数として使用されています。AWS Secrets Manager でシークレットを更新する方法の詳細については、「Modify an AWS Secrets Manager secret」を参照してください。

データソースのクエリ

  • Azure Monitor をクエリする場合は、[マルチソースクエリ] タブでデータソースを選択し、Azure Monitor コネクタを選択した後で、Azure のサブスクリプション、リソースグループ、リソースを指定します。次に、メトリクス名前空間、メトリクス、集計を選択し、ディメンションでフィルタリングします。

Prometheus

データソースの作成

  • Prometheus エンドポイントのほか、Prometheus をクエリするために必要なユーザーとパスワードを指定する必要があります。認証情報は、AWS Secrets Manager に保存されます。

  • データソースが VPC 内でのみアクセス可能な場合は、「 ウィザードによる事前構築済みのデータソースへの接続」で説明しているように、コネクタの VPC 設定を含める必要があります。認証情報を取得するためにデータソースを接続しなければならない場合は、VPC にエンドポイントを設定する必要があります。詳細については、「AWS Secrets Manager VPC エンドポイントの使用」を参照してください。

データソース設定の更新

  • データソースを手動で更新する場合は、次の操作を実行します。

    • Prometheus エンドポイントを更新するには、データソース Lambda 関数で PROMETHEUS_API_ENDPOINT 環境変数として新しいエンドポイントを指定します。

    • Prometheus への接続に使用されるユーザー名とパスワードを更新するには、データソースに使用されるシークレットの ARN を確認します。これは、データソース Lambda 関数で PROMETHEUS_API_SECRET 環境変数として使用されています。AWS Secrets Manager でシークレットを更新する方法の詳細については、「Modify an AWS Secrets Manager secret」を参照してください。

    • VPC 設定を更新する場合は、「VPC アクセスの設定 (コンソール)」で詳細を確認してください。

データソースのクエリ

重要

Prometheus メトリクスタイプは CloudWatch メトリクスとは異なり、Prometheus で使用できるメトリクスの多くはその仕様上累積的です。Prometheus メトリクスをクエリするときに、データに追加で何らかの変換が適用されることはありません。メトリクス名またはラベルのみを指定した場合は、累積された値が表示されます。詳細については、Prometheus ドキュメントの「Metric types」を参照してください。

Prometheus メトリクスデータを CloudWatch メトリクスのように個別の値として表示するには、クエリをその実行前に編集する必要があります。例えば、場合によっては Prometheus メトリクス名よりも先に rate 関数への呼び出しを追加する必要があります。rate 関数とその他の Prometheus 関数のドキュメントについては、Prometheus ドキュメントの「rate()」を参照してください。

CloudWatch データソースコネクタでは、複数行にわたるクエリはサポートされていません。そうしたクエリを実行するか、そうしたクエリでアラームやダッシュボードウィジェットを作成すると、すべてのラインフィードがスペースに置き換えられます。場合によっては、クエリが無効になることもあります。例えば、クエリに 1 行のコメントが含まれていると、そのクエリは無効になります。コマンドラインまたは Infrastructure as Code から複数行にわたるクエリを使用してダッシュボードまたはアラームを作成しようとすると、API がそのアクションを拒否して、解析エラーが発生します。

使用可能な更新の通知

Amazon から随時、新たに使用可能になったバージョンでコネクタを更新することをお勧めする旨が通知されます。その際、更新手順も一緒に通知されます。