すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:Prometheus インスタンスから MaxCompute にモニタリングデータをインポートする

最終更新日:Mar 03, 2025

Managed Service for Prometheus (Prometheus) のデータ配信機能を使用して、Prometheus インスタンスから MaxCompute にモニタリングデータをエクスポートし、ビジネス要件に基づいてデータを使用できます。MaxCompute は、他のデータソースから取り込まれたビッグデータを処理して、データ分析やレポートを作成できます。

前提条件

制限事項

  • 次の表に、データ配信をサポートするインスタンスを示します。

インスタンス

説明

Alibaba Cloud サービス用 Prometheus

cloud-product-prometheus という名前で始まるものを除く、無料インスタンス。

コンテナサービス用 Prometheus

該当なし

アプリケーション監視用 Prometheus

該当なし

Flink Serverless 用 Prometheus

該当なし

Kubernetes 用 Prometheus

該当なし

汎用 Prometheus インスタンス

OpenTelemetry エンドポイントを介してデータが報告されるものを除く、汎用インスタンス。

  • 仮想プライベートクラウド (VPC) でデータを配信する場合、Prometheus インスタンスが存在する VPC がターゲット VPC と同じでない場合は、ターゲット VPC の vSwitch の IP アドレスが Prometheus インスタンスのホワイトリストに追加されていることを確認してください。そうでない場合、ネットワーク接続に失敗する可能性があります。

    VPC コンソールvSwitch ページで、vSwitch の CIDR ブロックを取得できます。

    444.jpg

課金

MaxCompute にデータをインポートすると、Function Compute (FC) サービスが作成されます。サービスのプレフィックスは {task_name}_SINK_FC_TO_MAXCOMPUTE です。Function Compute (FC) は、モニタリングデータを MaxCompute に書き込むために使用されます。そのため、Function Compute の料金が発生します。モニタリングデータはバッチで Function Compute (FC) に送信されます。そのため、Function Compute (FC) が呼び出される回数が少なければ少ないほど、課金される料金は少なくなります。Function Compute コンソール にログインして、現在の Function Compute リソースの状態を確認できます。

ステップ 1: MaxCompute リソースを準備する

  1. MaxCompute のドキュメントを読み、任意の方法を選択して MaxCompute プロジェクトに接続します。詳細は、接続ツールの選択 を参照してください。

  2. テーブルスキーマを決定します: テーブルスキーマの列を、Prometheus からエクスポートされたメトリックのタグ名にマッピングします。メトリック値が列と一致しない場合は、列に null 値が挿入されます。複数のメトリックがエクスポートされる場合、対応する列名はすべてのメトリックのタグ名の和集合である必要があります

たとえば、次の 2 種類のメトリックをエクスポートする必要があるとします。

メトリックの例 1

{
	"__name__": "metric1",
	"cluster_id": "***",
	"host": "***",
	"node_id": "***",
	"job": "***",
	"value": 347.51300048828125,
	"timestamp": 1703211584056
}

メトリックの例 2

{
	"__name__": "metric2",
	"cluster_id": "***",
	"job": "***",
  "instance": "****",
  "cpu": "1",
	"value": 1.0,
	"timestamp": 1703211584056
}

次の例に基づいて、MaxCompute に SQL テーブルを作成する必要があります。詳細は、SQL 分析トピックの SQL 分析機能を使用する セクションを参照してください。

CREATE TABLE metric (
  __name__ 		VARCHAR(50) NOT NULL,
  cluster_id 	VARCHAR(50),
  host 				VARCHAR(50),
  node_id 		VARCHAR(50),
  job 				VARCHAR(50),
  instance 		VARCHAR(50),
  cpu 				VARCHAR(50),
  value 			DOUBLE,
  timestamp		BIGINT
);
説明

少なくとも __name__valuetimestamp の列が存在することを確認してください。これらは、Prometheus モニタリングデータで使用される基本的なタグです。ビジネス要件に基づいてテーブルスキーマを定義し、すべてのタグがテーブルの列にマッピングされていることを確認することをお勧めします。重要なタグがマッピングされていない場合、テーブルには大量の重複データが受信されます。

ステップ 2: データ配信タスクを作成する

  1. ARMS コンソール にログインします。

  2. 左側のナビゲーションペインで、Managed Service for Prometheus > データ配信 を選択します。

  3. データ配信 ページで、上部のナビゲーションバーでリージョンを選択し、タスクの作成 をクリックします。

  4. 表示されるダイアログボックスで、タスク名タスクの説明 パラメータを設定し、OK をクリックします。

  5. タスクの編集 ページで、データソースとイベントターゲットを設定します。

    1. + データソースを追加 をクリックし、パラメータを設定して、OK をクリックします。次の表にパラメータを示します。

      パラメータ

      説明

      Prometheus インスタンス

      配信するデータの Prometheus インスタンスを選択します。

      c78cb8273c02*****

      データフィルタリング

      ラベルを使用して、含めるまたは除外するメトリックを指定します。

      正規表現がサポートされています。複数の条件を区切るには、改行を使用します。条件間の関係が論理 AND の場合にのみ、データが配信されます。

      __name__=AliyunEcs_CPUUtilization|AliyunEcs_memory_usedutilization
      regionId=cn-hangzhou
      id=i-2ze0mxp.*
    2. ターゲットを追加 をクリックし、送信先タイプ パラメータを MaxCompute に設定し、必要な情報を指定して、OK をクリックします。

  6. タスクの編集 ページで、OK保存 をクリックします。

ステップ 3: モニタリングデータが MaxCompute にインポートされたことを確認する

SQL コードエディタで、次の SQL ステートメントを入力して metric テーブルのデータをクエリし、実行 をクリックします。実行結果 タブで、クエリ結果を確認できます。

select * from metric limit 20;