Prometheus インスタンスからデータをエクスポートしてカスタム処理を行うには、データ配信機能を使用してデータを MaxCompute に送信します。MaxCompute を使用すると、さまざまなソースからのデータに対してビッグデータ計算を実行し、その結果をレポート分析などのタスクに使用できます。
前提条件
Prometheus インスタンスが接続されていること。詳細については、次のトピックをご参照ください。
宛先として ApsaraMQ for Kafka インスタンスがデプロイされており、Topic などの必要なリソースが作成されていること。詳細については、「概要」をご参照ください。
Function Compute (FC) がアクティブ化されていることを確認してください。詳細については、「Function Compute のアクティブ化」をご参照ください。
EventBridge がアクティブ化されていることを確認してください。詳細については、「EventBridge のアクティブ化と権限付与」をご参照ください。
注意事項
Virtual Private Cloud (VPC) 経由でデータを配信する場合、Prometheus インスタンスと宛先が異なる VPC にあるときは、宛先の vSwitch の CIDR ブロックを Prometheus インスタンスのホワイトリストに追加する必要があります。そうしないと、ネットワーク接続に失敗します。vSwitch の CIDR ブロックは、VPC コンソールの vSwitch 詳細ページで確認できます。
次の表に、データ配信をサポートするデータソースを示します。
インスタンスタイプ
説明
Prometheus for Alibaba Cloud Services
名前が cloud-product-prometheus で始まる無料インスタンスは除きます。
Prometheus for Container Service
なし
Prometheus for Flink Serverless
なし
Prometheus for Kubernetes
なし
汎用
OpenTelemetry エンドポイントからレポートされたデータは除きます。
データ配信タスクの作成後に生成されたリアルタイムデータのみエクスポートできます。既存データをエクスポートすることはできません。
課金
MaxCompute にデータを配信すると、Function Compute (FC) サービスが作成されます。サービス名には {task_name}_SINK_FC_TO_MAXCOMPUTE というプレフィックスが付きます。Function Compute (FC) がデータを MaxCompute に書き込むため、FC サービスの料金が発生します。データは Function Compute (FC) に送信される前にバッチ処理されます。そのため、Function Compute (FC) の呼び出し回数が少ないほど、関連コストは低くなります。[Function Compute コンソール]にログインして、FC リソースのステータスを確認できます。
ステップ 1: MaxCompute リソースの準備
MaxCompute ドキュメントに記載されているいずれかの方法を使用して、MaxCompute プロジェクトに接続します。詳細については、「接続ツールの選択」をご参照ください。
テーブルスキーマを定義します。テーブルスキーマの列名は、Prometheus データのラベル名と一致する必要があります。列名に対応するラベルがない場合、その列には NULL 値が書き込まれます。複数のタイプのメトリクスがある場合、列名はすべてのメトリクスラベル名の和集合である必要があります。
たとえば、次の 2 つのメトリクスをエクスポートする場合を想定します。
次の例に基づいて、MaxCompute に 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: データ配信タスクの作成
にログインします。 Prometheusコンソールのマネージドサービス。
左側のナビゲーションウィンドウで、 をクリックします。
[データ配信] ページで、上部のメニューバーからターゲットリージョンを選択し、[タスクの作成] をクリックします。
ダイアログボックスで、[タスク名] と [タスクの説明] を入力し、[OK] をクリックします。
[タスクの編集] ページで、データソースと宛先を設定します。
[+ データソースの追加] をクリックし、次のパラメーターを設定してから [OK] をクリックします。
設定項目
説明
例
Prometheus インスタンス
配信される Prometheus データソース。
c78cb8273c02*****
データフィルタリング
フィルタリングするメトリックラベルを指定します。正規表現がサポートされています。複数の条件を指定する場合は、改行で区切ります。すべての条件が満たされた場合にのみデータが配信されます。
__name__=AliyunEcs_CPUUtilization|AliyunEcs_memory_usedutilization regionId=cn-hangzhou id=i-2ze0mxp.*データラベリング
配信されるメトリックデータに追加する新しいラベルを指定します。複数のラベルを追加する場合は、改行で区切ります。
deliver_test_key1=ssss deliver_test_key2=yyyy[送信先の追加] をクリックし、ターゲットタイプ を MaxCompute に設定し、必要に応じて残りのフィールドを設定してから、[OK] をクリックします。
設定が完了したら、[タスクの編集] ページで [OK] をクリックし、次に [保存] をクリックしてデータ配信タスクを作成します。
ステップ 3: データ配信の確認
SQL エディターで、次の SQL ステートメントを入力して metric テーブルのデータをクエリします。実行 をクリックし、[結果] タブで実行結果を確認します。
select * from metric limit 20;