Prometheus CloudWatch エクスポータを使用して AWS CloudWatch 指標を収集する

このドキュメントでは、オープンソースの Prometheus CloudWatch エクスポータと Compute Engine インスタンスで実行されている Ops エージェントを使用して、AWS CloudWatch 指標を収集し、Google Cloud プロジェクトに保存する方法について説明します。このドキュメントは、次のオーディエンスを対象としています。

  • AWS CloudWatch の指標を収集する必要があるデベロッパーとシステム管理者。このドキュメントでは、AWS CloudWatch 指標を収集するように Prometheus CloudWatch エクスポータを設定する方法について説明します。
  • Prometheus CloudWatch エクスポータに移行する AWS Connector プロジェクトを持つ AWS CloudWatch 指標のユーザー。このドキュメントでは、Connector プロジェクトの以前の AWS CloudWatch 指標の収集からの移行に関する情報についても説明します。

Cloud Monitoring を使用すると、Google Cloud 指標と同じコンテキストで AWS 指標を表示できます。たとえば、Amazon EC2 インスタンスと Compute Engine インスタンスの CPU 使用率を表示するグラフを含むダッシュボードを作成できます。AWS 指標をモニタリングするアラート ポリシーを作成することもできます。詳しくは、以下のセクションをご覧ください。

準備

Prometheus CloudWatch エクスポータを使用して AWS CloudWatch 指標を収集するには、次のものが必要です。

  • 次の権限を持つ Google Cloud プロジェクト。
    • VM の作成
    • Cloud Logging にログを書き込む
    • Cloud Monitoring に指標を書き込む
  • Prometheus エクスポータが指標を取得するために使用できる AWS 認証情報を持つ AWS アカウント。詳細については、Prometheus エクスポータを実行するをご覧ください。

Compute Engine VM を作成する

Ops エージェントと Prometheus CloudWatch エクスポータの実行に専用の Linux Compute Engine VM を作成することをおすすめします。この VM は、すべての AWS 指標の収集サイトとして機能します。

  1. 指定したゾーンに aws-exporter-test という名前の Debian Linux VM を作成するには、次のコマンドを実行します。

    gcloud compute instances create \
      --image-project debian-cloud \
      --image-family debian-11 \
      --zone ZONE \
      aws-exporter-test
    

    コマンドを次のように構成します。

    • ZONE は、新しい VM のゾーンに置き換えます。
    • 省略できます。aws-exporter-test は、VM の名前に置き換えます。

    このコマンドの詳細については、gcloud compute instances create リファレンスをご覧ください。

  2. Prometheus CloudWatch エクスポータと Ops エージェントをインストールできるように VM にアクセスするには、次のコマンドを使用します。

    gcloud compute ssh --zone ZONE  --project PROJECT_ID  aws-exporter-test
    

    コマンドを次のように構成します。

    • ZONE は、VM を作成したゾーンに置き換えます。
    • PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。
    • 別の名前で VM を作成した場合は、aws-exporter-test を置き換えます。

    このコマンドの詳細については、gcloud compute ssh リファレンスをご覧ください。

Prometheus CloudWatch エクスポータを設定する

以降のセクションでは、Compute Engine VM で Prometheus CloudWatch エクスポータをダウンロード、インストール、構成する手順について説明します。

Prometheus エクスポータと JRE をダウンロードする

Prometheus CloudWatch エクスポータを実行するには、エクスポータと Java Runtime Environment(JRE)バージョン 11 以降をダウンロードする必要があります。

  1. Prometheus CloudWatch エクスポータを含む JAR ファイルをダウンロードするには、Compute Engine インスタンスで次のコマンドを実行します。

    curl -sSO https://github.com/prometheus/cloudwatch_exporter/releases/download/v0.15.1/cloudwatch_exporter-0.15.1-jar-with-dependencies.jar
    
  2. JRE をインストールするには、次のようなコマンドを使用できます。

    sudo apt install default-jre
    

Prometheus エクスポータを構成する

Prometheus CloudWatch エクスポータを構成するには、指標を収集する AWS サービスの構成ファイルを作成します。一般的な情報については、Prometheus CloudWatch エクスポータの構成ドキュメントをご覧ください。

  • ユーザーの移行: 既存の AWS CloudWatch 指標を Prometheus CloudWatch エクスポータに移行する場合は、Prometheus CloudWatch エクスポータの構成で構成ファイルを使用できます。これらの構成ファイルは、既存の指標をできるだけ厳密に複製するように設計されていますが、AWS サービス用の Prometheus CloudWatch エクスポータを使用してすべての指標を取得できるわけではありません。

  • 新しいユーザー: 既存の指標を移行する場合は、移行の構成を使用しないことをおすすめします。他のサービスのエクスポータ構成を定義する方法については、AWS CloudWatch サービスのドキュメントをご覧ください。その他のサンプルは、Prometheus CloudWatch エクスポータの GitHub リポジトリでも確認できます。

複数の AWS サービスの構成を 1 つの構成ファイルに結合できます。このドキュメントの例では、構成ファイルの名前が config.yml であることを前提としています。

Prometheus エクスポータを実行する

Prometheus CloudWatch エクスポータを実行する前に、エクスポータに認証情報と承認を提供する必要があります。Prometheus CloudWatch エクスポータでは、AWS Java SDK を使用します。この SDK では、次の環境変数を使用して認証情報を指定できます。

SDK に認証情報を指定する方法については、AWS SDK for Java 2.x をご覧ください。

CloudWatch API を使用して指標を取得するには、次の AWS IAM CloudWatch 権限も必要です。

  • cloudwatch:ListMetrics
  • cloudwatch:GetMetricStatistics
  • cloudwatch:GetMetricData

aws_tag_select 機能を使用するには、tag:GetResources AWS IAM 権限も必要です。

AWS サービスへのアクセスの承認の詳細については、AWS Identity and Access Management をご覧ください。

Prometheus CloudWatch エクスポータを実行するには、次の手順を実行します。

  1. エクスポータの認証情報を提供するには、アクセスキー環境変数を設定します。

    export AWS_ACCESS_KEY=YOUR_ACCESS_KEY
    export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
    export AWS_SESSION_TOKEN=YOUR_SESSION_TOKEN
    

    YOUR_KEY 変数はアクセスキーに置き換えます。AWS_SESSION_TOKEN 環境変数を設定する必要があるのは、一時的な認証情報を使用している場合のみです。

  2. 構成をテストするには、エクスポータを起動して構成ファイルを読み込むために、次のコマンドを実行します。

    java -jar cloudwatch_exporter-0.15.1-jar-with-dependencies.jar 9106 config.yml
    

    必要に応じて、ポート(9106)と構成ファイル(config.yml)の値を変更します。

    エクスポータの実行中に config.yml ファイルを変更した場合、次のコマンドを実行してエクスポータを再読み込みできます。

    curl -X POST localhost:9106/-/reload
    

    本番環境で使用する場合は、VM が再起動したときに再起動するようにエクスポータを構成できます。たとえば、Debian システムでは、システムとサービス マネージャーである systemd を使用できます。

Ops エージェントを設定する

以降のセクションでは、構成をインストールして Ops エージェントを起動する方法について説明します。このセクションでは、Ops の CloudWatch エクスポータで使用する Ops エージェントの最小設定情報について説明します。これらのトピックの詳細については、Ops エージェントの概要をご覧ください。

Ops エージェントをインストール

Ops エージェントをインストールするには、次のコマンドを使用してエージェントのインストール スクリプトをダウンロードして実行します。

curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
sudo bash add-google-cloud-ops-agent-repo.sh --also-install

Ops エージェントを構成する

Ops エージェントを構成するには、エージェントのユーザー構成ファイルに構成要素を追加します。Linux では、ユーザー構成ファイルは /etc/google-cloud-ops-agent/config.yaml です。

Prometheus CloudWatch エクスポータから AWS 指標を収集するように Ops エージェントを構成する場合は、エージェントの Prometheus レシーバを使用します。このドキュメントでは、Ops エージェント用の 2 つの基本的な構成について説明します。構成の 1 つを選択して、ユーザー構成ファイルに追加します。

sudo vim /etc/google-cloud-ops-agent/config.yaml

Ops エージェントの基本構成

次の構成は、Ops エージェントの最小構成を提供します。この構成では、次のことが行われます。

  • prometheus 型の aws という名前のレシーバーを作成します。レシーバは、aws_exporter ジョブから指標を取得するように構成されています。指定するポートは、Prometheus CloudWatch エクスポータが指標をエクスポートするポートと一致する必要があります。 Prometheus エクスポータを実行するをご覧ください。

  • aws 指標レシーバーを使用する aws_pipeline という名前のパイプラインを作成します。

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

JVM 指標を削除する構成

次の構成では、基本構成と同じ処理を行いますが、エクスポータによって生成された JVM 指標を削除する再ラベル付け構成も追加されます。これらの指標を削除すると、取り込まれた指標データが削減されますが、エクスポータ自体の指標が取得されないため、エクスポータの問題でデバッグが困難になる可能性があります。

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
            # Drop the exporter's own JVM metrics to reduce noise.
            metric_relabel_configs:
              - source_labels: [ __name__ ]
                regex: 'jvm_.*'
                action: drop
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

Ops エージェント用により複雑な構成を作成できます。

  • Prometheus レシーバーの構成の詳細については、Prometheus 指標の収集をご覧ください。
  • Ops エージェントの構成に関する一般的な情報については、構成モデルをご覧ください。

Ops エージェントを再起動する

構成の変更を Ops エージェントに適用するには、エージェントを再起動する必要があります。

  1. エージェントを再起動するには、インスタンスで次のコマンドを実行します。
    sudo service google-cloud-ops-agent restart
    
  2. エージェントが再起動したことを確認するには、次のコマンドを実行して「Metrics Agent」と「Logging エージェント」のコンポーネントが起動したことを確認します。
    sudo systemctl status google-cloud-ops-agent"*"
    

Cloud Monitoring で指標を表示する

Cloud Monitoring では、AWS CloudWatch の指標に対するクエリを実行し、他の指標の場合と同様にグラフを作成できます。Metrics Explorer インターフェースから、PromQL、Monitoring Query Language(MQL)、またはクエリビルダー インターフェースを使用できます。詳細については、Metrics Explorer でグラフを作成するをご覧ください。

保持したいグラフを作成した場合は、カスタム ダッシュボードにグラフを保存できます。詳細については、ダッシュボードの概要をご覧ください。

次のグラフは、AWS VM の aws_ec2_cpuutilization_sum 指標に対する PromQL クエリを示しています。

このグラフは、PromQL を使用して AWS VM の aws_ec2_cpuutilization_sum の統計情報を取得した結果を示しています。

PromQL を使用すると、Cloud Monitoring の任意の指標をクエリできます。詳細については、Cloud Monitoring の指標を PromQL にマッピングするをご覧ください。

Prometheus 指標に対してクエリを実行するには、PromQL を使用するか、 Monitoring Query Language(MQL)などの Cloud Monitoring ツールを使用します。Prometheus 指標が Cloud Monitoring に取り込まれると、各指標は標準を使用して変換されます。OpenTelemetry から Prometheus への変換 が、Cloud Monitoring の prometheus_targetモニタリング対象リソースタイプにマッピングされます。変換には次の変更が含まれます。

  • 指標名には接頭辞 prometheus.googleapis.com/ が付けられます。
  • 指標名に含まれるピリオド(.)などの英数字以外の文字は、アンダースコア(_)に置き換えられます。
  • 指標名には、/gauge/counter などの指標の種類を示す文字列が末尾に付加されます。

MQL を使用して Prometheus aws_ec2_cpuutilization_sum 指標をクエリするには、指標を prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge として参照し、prometheus_target モニタリング対象リソースタイプを指定します。

fetch prometheus_target :: 'prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge'

次のグラフは、Prometheus aws_ec2_cpuutilization_sum の指標に対する MQL クエリの結果を示しています。

このグラフは、MQL を使用して AWS VM の aws_ec2_cpuutilization_sum の統計情報を取得した結果を示しています。

指標の動作に関するアラート

Cloud Monitoring では、[アラート ポリシー][alert-intro] を作成して AWS CloudWatch 指標をモニタリングし、指標値の急上昇、下落、傾向を通知できます。

複数のリージョンをモニタリングする

Prometheus CloudWatch エクスポータの構成では、構成ファイルごとに 1 つのリージョンのみの使用がサポートされます。複数のリージョンをモニタリングする必要がある場合は、Prometheus エクスポータの複数のインスタンス(モニタリングするリージョンごとに 1 つずつ)を実行することをおすすめします。単一のエクスポータで複数のエクスポータを実行することも、VM 間で分散することもできます。この場合、Prometheus エクスポータの Docker イメージが有用です。

Compute Engine VM で実行されている Ops エージェントを構成して、複数の Prometheus エンドポイントをスクレイピングできます。Prometheus エクスポータの複数のインスタンスを構成する場合は、スクレイピング構成を異なる job 名として使用することをおすすめします。これにより、トラブルシューティングを行う必要がある場合、必要に応じてエクスポータ インスタンスを区別できます。

Ops エージェントと Prometheus レシーバーの構成については、Ops エージェントを構成するをご覧ください。

コスト

Amazon では、CloudWatch API リクエストまたは CloudWatch 指標のすべてについてリクエストを行います。現在の料金については、Amazon CloudWatch の料金をご覧ください。Prometheus CloudWatch エクスポータには次のクエリ特性があり、Amazon の費用に影響を与える可能性があります。

  • GetMetricStatistics メソッド(デフォルト)を使用する場合、すべての指標に 1 つの API リクエストが必要です。各リクエストには複数の統計情報を含めることができます。
  • aws_dimensions を使用する場合、エクスポータは API リクエストを実行して、リクエストする指標を決定する必要があります。通常、ディメンション リクエストの数は、指標リクエストの数と比較して無視できます。

Cloud Monitoring では、Prometheus エクスポータからの AWS CloudWatch 指標については、取り込まれたサンプル数ごとに課金されます。現在の料金については、Monitoring の料金の概要をご覧ください。

移行ガイド

このセクションでは、AWS コネクタ プロジェクトの以前の AWS CloudWatch 指標から Prometheus CloudWatch エクスポータ ソリューションに移行するお客様に関する追加情報について説明します。

以前のソリューションから Prometheus CloudWatch エクスポータに移行していない場合は、このセクションをスキップできます。

以前の AWS CloudWatch 指標と Prometheus CloudWatch エクスポータの指標のマッピング

このセクションでは、以前の AWS CloudWatch 指標が Prometheus CloudWatch エクスポータによって収集された指標にどのようにマッピングされるかを、AWS CloudWatch 指標 CPUUtilization を例として使用しています。

CPUUtilization 指標は、Amazon EC2 がインスタンスの実行に使用する物理 CPU 時間の割合(ユーザーコードや Amazon EC2 コードの実行時間を含む)を測定します。一般的に、指標の値はゲスト CPU 使用率とハイパーバイザ CPU 使用率の合計です。

レガシー ソリューションでは、次の指標を使用してこのデータが Cloud Monitoring に報告されます。

「average」や「maximum」などの値は、指標に意味のある CloudWatch 統計情報を表します。それぞれ、AWS CPUUtilization 指標の異なる集計を報告します。これらの指標は、aws_ec2_instance モニタリング対象リソースタイプに対して記述され、instance_id リソースラベルの値は Amazon EC2 インスタンスの識別子となります。指標の書き込み。

Prometheus CloudWatch エクスポータと Ops エージェントを使用すると、指標は次のように報告されます。

  • aws_ec2_cpuutilization_average
  • aws_ec2_cpuutilization_maximum
  • aws_ec2_cpuutilization_minimum
  • aws_ec2_cpuutilization_samplecount
  • aws_ec2_cpuutilization_sum

これらの指標は、以前のソリューションによって収集された aws.googleapis.com/EC2/CPUUtilization/Statistic 指標に対応しています。これらの指標は、prometheus-target モニタリング対象リソースタイプに対して記述されます。

prometheus-target リソースのラベルの値は、Amazon EC2 インスタンスのものではなく、Prometheus CloudWatch エクスポータが実行されている Compute Engine VM を反映しています。指標のラベル値は、Prometheus エクスポータによって設定されます。aws_ec2_cpuutilization_statistic 指標は、Amazon EC2 インスタンスのインスタンス ID を instance_id 指標ラベルに保持します。次のスクリーンショットは、aws_ec2_cpuutilization_sum 指標をグラフ化する PromQL クエリを示しています。選択したラベルの値が表に表示されます。

テーブルには、EC2 指標の「intance_id」ラベルの値が表示されます。

提供されている Prometheus CloudWatch エクスポータの構成を移行に使用する際に、指標の追加のディメンションや統計情報を収集する場合は、構成を変更できます。詳細については、Prometheus CloudWatch エクスポータの構成ドキュメントをご覧ください。

ダッシュボードとアラート ポリシーを再ビルドする

以前の AWS CloudWatch 指標を使用する既存のダッシュボードとアラート ポリシーは、Prometheus CloudWatch エクスポータを使用して取り込まれた指標では機能しません。これは互換性を破る変更です。

AWS システムに同じオブザーバビリティを取得するには、Prometheus エクスポータによって収集された指標を使用するために、ダッシュボードとアラート ポリシーを再ビルドする必要があります。

メタデータの損失

以前のソリューションでは、AWS CloudWatch 指標を収集するだけでなく、Amazon Elastic Compute Cloud (Amazon EC2)インスタンスで実行されている以前の Monitoring エージェントや以前の Logging エージェントからメタデータを収集しました。 そのリソース メタデータは Cloud Monitoring の指標に結合され、インスタンス名、アベイラビリティ ゾーン、マシンタイプなどのシステム メタデータ ラベルまたはユーザー メタデータ ラベルとして表示されます。

Prometheus CloudWatch エクスポータで同じメタデータが収集されない場合があります。Amazon EC2 VM インスタンスでレガシー エージェントを使用している場合、次のセクションでは、Prometheus エクスポータを使用して不足しているメタデータを収集し、Prometheus エクスポータ:

2024 年 8 月 21 日以降、以前の AWS CloudWatch ソリューションのサポート終了が完了すると、これらのメタデータ ラベルは使用できなくなります。指標と aws_ec2_instance リソースラベルは影響を受けません。

Amazon EC2 インスタンス上の以前の Monitoring エージェントのユーザーの場合

グラフとクエリで AWS メタデータを使用していて、維持する場合は、Prometheus CloudWatch エクスポータを使用して収集できます。Compute Engine VM を作成し、説明されているように Prometheus CloudWatch エクスポータOps エージェントを設定します。Prometheus CloudWatch エクスポータを構成する際は、ec2.yml 構成ファイルを使用します。

ec2.yml 構成ファイルでは、aws_tag_select 機能を使用します。構成で aws_tag_select 機能が使用されている場合、Prometheus CloudWatch エクスポータは aws_resource_info という指標をエクスポートします。aws_resource_info 指標は、指標ラベル内の AWS リソースのメタデータを含む時系列を報告します。このメタデータには、インスタンス名を含むすべての Amazon EC2 インスタンスのタグが tag_Name というラベルで含まれます。

追加のメタデータを収集する場合は、Amazon EC2 インスタンスでインスタンス タグを使用してそのメタデータを追加します。 EC2 インスタンス タグを追加または削除するをご覧ください。Prometheus エクスポータによって報告される aws_resource_info 指標には、追加のメタデータが含まれます。

その後、MQL for PromQL を使用して、aws_resource_info 指標のメタデータ ラベルを以前の Monitoring エージェントの自己指標または Amazon EC2 指標と結合できます。

MQL 結合

例えば、以下のMQLクエリは、aws_ec2_instance リソースタイプに対して書かれたエージェントセルフメトリック agent.googleapis.com/agent/uptime と、prometheus-target リソースタイプに対して書かれたPrometheus CloudWatch エクスポーターaws_resource_info メトリックを結合します:

{
    aws_ec2_instance :: 'agent.googleapis.com/agent/uptime'
    | align next_older()
    | group_by [instance_id: resource.instance_id, resource.project_id, resource.region, resource.aws_account, metric.version]
    ;
    prometheus_target :: 'prometheus.googleapis.com/aws_resource_info/gauge'
    | align next_older()
    | group_by [instance_id: metric.instance_id, resource.project_id, aws_account: re_extract(metric.arn, "arn:aws:ec2:[^:]+:([^:]+):instance/.*"), region: concatenate("aws:", re_extract(metric.arn, "arn:aws:ec2:([^:]+):[^:]+:instance/.*")), name: metric.tag_Name]
}
| join
| val(0)

2 つの指標は instance_id ラベルで結合されるため、VM の名前(aws_resource_info 指標の metric.tag_Name ラベルの値)は、結果に追加できます。結合 エージェントの uptime セルフ指標には、リソースラベル region が含まれます。 AWS ではインスタンス ID がリージョン単位かグローバルかを指定する必要がないため、region ラベルとの結合は機能します。

MQL の詳細については、Monitoring Query Language の概要をご覧ください。

PromQL 参加

次の例は、結合する PromQL クエリを示しています。aws_ec2_cpuutilization_average Prometheus CloudWatch エクスポータからの指標。次の例は、結合する PromQL クエリを示しています。aws_ec2_cpuutilization_average Prometheus CloudWatch エクスポータからの指標をaws_resource_infoメタデータの指標。指標は instance_id ラベルに結合され、メタデータ指標の tag_Name ラベルから VM 名がクエリ結果に追加されます。

  aws_ec2_cpuutilization_average
* on(instance_id) group_left(tag_Name)
  aws_resource_info

Amazon EC2 インスタンス上の以前の Logging エージェントのユーザー

以前の Logging エージェント google-fluentd は、メタデータを直接 Cloud Logging に報告します。そのため、以前の Monitoring エージェントを使用した AWS CloudWatch 指標ソリューションの非推奨は、Logging エージェントが収集するログに影響を及ぼしません

ただし、以前の Logging エージェントは、それ自体に関するいくつかの指標を報告します。これらのセルフ指標にメタデータを追加する場合は、Compute Engine VM を作成し、Prometheus CloudWatch エクスポータOps エージェントをセットアップします。Prometheus CloudWatch エクスポータを構成する際は、ec2.yml 構成ファイルを使用します。

以前の Logging エージェントの構成の変更が必要になることもあります。 以前の Logging エージェントの出力プラグインでは、AWS 用の use_aws_availability_zone オプションがサポートされています。エージェントが availability_zone ラベルではなく region ラベルを書き込むように、このオプションを false に設定する必要があります。プラグイン構成ファイルの場所については、Google Cloud fluentd 出力プラグインの構成をご覧ください。

ec2.yml 構成ファイルでは、aws_tag_select 機能を使用します。構成で aws_tag_select 機能が使用されている場合、Prometheus CloudWatch エクスポータは aws_resource_info という指標をエクスポートします。aws_resource_info 指標は、指標ラベル内の AWS リソースのメタデータを含む時系列を報告します。このメタデータには、インスタンス名を含むすべての Amazon EC2 インスタンスのタグが tag_Name というラベルで含まれます。

追加のメタデータを収集する場合は、Amazon EC2 インスタンスでインスタンス タグを使用してそのメタデータを追加します。 EC2 インスタンス タグを追加または削除するをご覧ください。Prometheus エクスポータによって報告される aws_resource_info 指標には、追加のメタデータが含まれます。

MQL を使用して、aws_resource_info 指標のメタデータ ラベルを以前の Logging エージェントの自己指標と結合できます。例えば、以下のMQLクエリは、aws_ec2_instance リソースタイプに対して書かれたエージェントセルフメトリック agent.googleapis.com/agent/uptime と、prometheus-target リソースタイプに対して書かれたPrometheus CloudWatch エクスポーターaws_resource_info メトリックを結合します:

{
    aws_ec2_instance :: 'agent.googleapis.com/agent/uptime'
    | align next_older()
    | group_by [instance_id: resource.instance_id, resource.project_id, resource.region, resource.aws_account, metric.version]
    ;
    prometheus_target :: 'prometheus.googleapis.com/aws_resource_info/gauge'
    | align next_older()
    | group_by [instance_id: metric.instance_id, resource.project_id, aws_account: re_extract(metric.arn, "arn:aws:ec2:[^:]+:([^:]+):instance/.*"), region: concatenate("aws:", re_extract(metric.arn, "arn:aws:ec2:([^:]+):[^:]+:instance/.*")), name: metric.tag_Name]
}
| join
| val(0)

2 つの指標は instance_id ラベルで結合されるため、VM の名前(aws_resource_info 指標の metric.tag_Name ラベルの値)は、結果に追加できます。結合 エージェントの uptime セルフ指標には、リソースラベル region が含まれます。 AWS ではインスタンス ID がリージョン単位かグローバルかを指定する必要がないため、region ラベルとの結合は機能します。

MQL の詳細については、Monitoring Query Language の概要をご覧ください。

AWS アカウントで以前の指標を無効にする

Google Cloud プロジェクトで AWS コネクタ プロジェクトを作成したときに、Google Cloud に AWS アカウントへの読み取り専用アクセス権を付与した AWS IAM ロールが作成されました。AWS コンソールで以前の AWS CloudWatch 指標をオフにするには、このロールを削除します。詳細については、IAM ロールの削除(コンソール)をご覧ください。

移行用の Prometheus CloudWatch エクスポータの構成

このセクションでは、AWS 指標リストに記載されている AWS サービス指標を可能な限り厳密に複製する構成について説明します。これらの構成ファイルは、以前のソリューションから Prometheus CloudWatch エクスポータに移行するユーザーを対象としています。移行ユーザーではなく新しいユーザーとして Prometheus CloudWatch エクスポータを設定し、これらの構成を使用すると、Prometheus CloudWatch エクスポータで利用できるすべての AWS 指標が収集されません。

AWS CloudWatch 指標のサンプル構成ファイルを表示するには、次のいずれかのセクションを展開します。