Managed Service for Prometheus (Prometheus) のデータ配信機能を使用して、Prometheus インスタンスから MaxCompute にモニタリングデータをエクスポートし、ビジネス要件に基づいてデータを使用できます。MaxCompute は、他のデータソースから取り込まれたビッグデータを処理して、データ分析やレポートを作成できます。
前提条件
Prometheus インスタンスが作成されていること。詳細は、以下を参照してください。
Apsara MQ for Kafka インスタンスが作成され、トピックが作成されていること。詳細は、概要 を参照してください。
Function Compute (FC) が有効化されていること。詳細は、ステップ 1: Function Compute を有効化する を参照してください。
EventBridge が有効化されていること。詳細は、EventBridge を有効化し、RAM ユーザーに権限を付与する を参照してください。
制限事項
次の表に、データ配信をサポートするインスタンスを示します。
インスタンス | 説明 |
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 ブロックを取得できます。
課金
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 リソースを準備する
MaxCompute のドキュメントを読み、任意の方法を選択して MaxCompute プロジェクトに接続します。詳細は、接続ツールの選択 を参照してください。
テーブルスキーマを決定します: テーブルスキーマの列を、Prometheus からエクスポートされたメトリックのタグ名にマッピングします。メトリック値が列と一致しない場合は、列に null 値が挿入されます。複数のメトリックがエクスポートされる場合、対応する列名はすべてのメトリックのタグ名の和集合である必要があります。
たとえば、次の 2 種類のメトリックをエクスポートする必要があるとします。
次の例に基づいて、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__
、value
、timestamp
の列が存在することを確認してください。これらは、Prometheus モニタリングデータで使用される基本的なタグです。ビジネス要件に基づいてテーブルスキーマを定義し、すべてのタグがテーブルの列にマッピングされていることを確認することをお勧めします。重要なタグがマッピングされていない場合、テーブルには大量の重複データが受信されます。
ステップ 2: データ配信タスクを作成する
ARMS コンソール にログインします。
左側のナビゲーションペインで、Managed Service for Prometheus > データ配信 を選択します。
データ配信 ページで、上部のナビゲーションバーでリージョンを選択し、タスクの作成 をクリックします。
表示されるダイアログボックスで、タスク名 と タスクの説明 パラメータを設定し、OK をクリックします。
タスクの編集 ページで、データソースとイベントターゲットを設定します。
+ データソースを追加 をクリックし、パラメータを設定して、OK をクリックします。次の表にパラメータを示します。
パラメータ
説明
例
Prometheus インスタンス
配信するデータの Prometheus インスタンスを選択します。
c78cb8273c02*****
データフィルタリング
ラベルを使用して、含めるまたは除外するメトリックを指定します。
正規表現がサポートされています。複数の条件を区切るには、改行を使用します。条件間の関係が論理 AND の場合にのみ、データが配信されます。
__name__=AliyunEcs_CPUUtilization|AliyunEcs_memory_usedutilization regionId=cn-hangzhou id=i-2ze0mxp.*
ターゲットを追加 をクリックし、送信先タイプ パラメータを MaxCompute に設定し、必要な情報を指定して、OK をクリックします。
タスクの編集 ページで、OK と 保存 をクリックします。
ステップ 3: モニタリングデータが MaxCompute にインポートされたことを確認する
SQL コードエディタで、次の SQL ステートメントを入力して metric テーブルのデータをクエリし、実行 をクリックします。実行結果 タブで、クエリ結果を確認できます。
select * from metric limit 20;