Prometheus インスタンスのデータをカスタム処理のためにエクスポートするには、データ配信機能を使用します。この機能は、Prometheus インスタンスのデータを MaxCompute に配信します。MaxCompute はビッグデータコンピューティングサービスを提供しており、他のデータソースのデータと組み合わせて、レポート分析などのタスクに利用できます。
前提条件
Prometheus インスタンスが接続されていること。詳細については、次のトピックをご参照ください。
ターゲットとして ApsaraMQ for Kafka インスタンスがデプロイされ、トピックなどの必要なリソースが作成されていること。詳細については、「概要」をご参照ください。
Function Compute (FC) が有効化されていること。詳細については、「ステップ 1: Function Compute の有効化」をご参照ください。
EventBridge が有効化されています。詳細については、「EventBridge を有効化して権限を付与する」をご参照ください。
説明
注意事項
VPC 経由でデータを配信する場合、Prometheus インスタンスとターゲットが異なる VPC にある場合は、Prometheus インスタンスのホワイトリストにターゲットの vSwitch の CIDR ブロックを追加する必要があります。追加しない場合、ネットワーク接続は失敗します。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 プロジェクトに接続します。詳細については、「接続ツールの選択」をご参照ください。
テーブルスキーマを定義します。テーブルスキーマの列名を Prometheus データのタグ名と一致するように設定します。列名に対応するタグ値がない場合、その列には NULL が書き込まれます。複数のタイプのメトリックデータがある場合、列名はすべてのメトリックタグ名の UNION である必要があります。
たとえば、次の 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: データ配信タスクの作成
Managed Service for 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: データが MaxCompute に配信されたことの確認
SQL エディターで、次の SQL 文を入力して `metric` テーブルのデータをクエリします。[実行] をクリックし、[結果] タブで結果を表示します。
select * from metric limit 20;