メインコンテンツまでスキップ

Metrics API

Private preview

セルフホスト型のPrometheusまたはGrafanaスタックに、生のVeloDB Cloudメトリクスをスクレイプします。

Metrics APIは現在Private Previewで利用可能です。組織で有効にするには、VeloDBサポートチームにお問い合わせください。

Metrics APIを使用して、Metricsカタログの背後にある生メトリクスを独自の可観測性スタックにプルします。warehouse レベルとclusterレベルの両方のレスポンスには、これらのカテゴリの生メトリクスが含まれます。違いは返されるデータのスコープです。

Endpoints

Metrics APIは2つのエンドポイントを公開します:

APIPathDescription
QueryWarehouseMetricsGET /v1/warehouse/{warehouseId}/metricswarehouseの生メトリクス。
QueryClusterMetricsGET /v1/warehouse/{warehouseId}/cluster/{clusterId}/metrics指定されたclusterの生メトリクス。

両方のエンドポイントはPrometheus exposition形式のテキストを返します:

Content-Type: text/plain; version=0.0.4; charset=utf-8

Prometheusはstatic_configsまたはfile_sd_configsを使用してエンドポイントを直接スクレイプできます。

リージョンエンドポイント

各リージョンとクラウドプロバイダーには独自のエンドポイントがあります:

https://apps-api.<region>.<provider>.velodb.cloud

Management APIから返される安定したcloudProviderregion識別子を使用してください。マーケティング名やローカライズされたラベルは使用しないでください。

利用可能なクラウドプロバイダーとリージョンを発見するには:

# List cloud providers.
curl -H "X-API-Key: sk-xxxx" \
https://api.velodb.cloud/v1/cloud-providers

# List regions for a cloud provider.
curl -H "X-API-Key: sk-xxxx" \
https://api.velodb.cloud/v1/cloud-providers/aws/regions

クイックリファレンス:

ProviderRegionEndpoint
awsus-east-1https://apps-api.us-east-1.aws.velodb.cloud
awsap-northeast-1https://apps-api.ap-northeast-1.aws.velodb.cloud
awsap-southeast-1https://apps-api.ap-southeast-1.aws.velodb.cloud
gcpus-central1https://apps-api.us-central1.gcp.velodb.cloud

warehouseは、その独自のリージョンとクラウドプロバイダーのエンドポイントを通してのみアクセス可能です。クロスリージョンまたはクロスプロバイダーのリクエストは404 Not Foundを返すか、認証に失敗します。

プライベートエンドポイントアクセス

Metrics APIは、パブリックネットワークの代わりにプライベートエンドポイント経由でスクレイプできます。VeloDB Cloudは、Metrics APIとウェアハウス固有のConsoleエンドポイントに同じクラウドプロバイダー固有のリージョンEndpoint Serviceを使用します。ウェアハウスのリージョンにある既存のエンドポイントを再利用するか、Endpoint Servicesにあるクラウドプロバイダー別のリファレンスに従って作成してください。

クラウドプロバイダーの手順では、完全なapps-api.<region>.<provider>.velodb.cloudホスト名にPrivate DNSを設定します。その手順に従って、正しいレコードタイプとエンドポイント接続先を選択し、DNS、TLS、およびHTTPの確認を完了してください。

Prometheusやその他のクライアントでは、引き続きhttps://apps-api.<region>.<provider>.velodb.cloudを使用してください。元のホスト名はTLS検証とリクエストルーティングに必要なため、Private EndpointのIPアドレスやクラウドプロバイダーが生成したホスト名を使用しないでください。認証の説明に従って認証済みリクエストを送信し、Metrics APIへのアクセスを確認します。

認証

すべてのMetrics APIリクエストは、HTTPヘッダーにAPI keyを含める必要があります:

X-API-Key: sk-xxxxxxxxxxxxxxxxxxxx

APIキーは組織に紐づけられ、キー作成時に選択されたロールを継承します。キーは自身の組織内のwarehouseにのみアクセスできます。

APIキーを作成するには、API Keysを参照してください。完全なキーは作成時に一度だけ表示されます。すぐにコピーして保存してください。

認証に失敗すると401 Unauthorizedが返されます:

{
"code": "Unauthorized.InvalidApiKey",
"message": "invalid API key"
}

レート制限

各APIキーは、エンドポイントごとに1分間あたり100回の読み取りリクエストが許可されています。制限を超えると429 Too Many Requestsが返されます。

Prometheusスクレイピングの場合、スクレイプ間隔は最低15秒、エンドポイントあたりのターゲット数は約30個以下にすることを推奨します。

Query warehouse metrics

QueryWarehouseMetricsは、warehouse内のFEノードの生のPrometheusメトリクスを返します。

リクエスト

GET /v1/warehouse/{warehouseId}/metrics
Host: apps-api.<region>.<provider>.velodb.cloud
X-API-Key: sk-xxxx

パスパラメータ

パラメータ説明
warehouseIdWarehouse ID、例:XXZ0RP

レスポンス

フィールド説明
Status200 OK
Content typetext/plain; version=0.0.4; charset=utf-8
BodyPrometheus exposition format のテキスト。返されるデータは、warehouse スコープでの Resource Metrics と Service Metrics を含みます。

例:

curl -H "X-API-Key: sk-xxxx" \
https://apps-api.ap-northeast-1.aws.velodb.cloud/v1/warehouse/XXZ0RP/metrics

# TYPE doris_fe_connection_total untyped
doris_fe_connection_total{cid="m-mqx8vdlm6b671apzob",custom_scheme="http",instance="10.29.12.139:8080",job="AWVA10OB",product="SAAS",provider="aws",region="us-east-1",user="admin",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 10 1780738809054
doris_fe_query_latency_ms_sum{cid="m-mqx8vdlm6b671apzob",custom_scheme="http",instance="10.29.12.139:8080",job="AWVA10OB",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 35.55555555555556 1780733289054
# TYPE doris_fe_query_total untyped
doris_fe_query_total{cid="m-mqx8vdlm6b671apzob",cluster_id="c-v7hi1dbm6b6rimgod7",cluster_name="initial_cluster",custom_scheme="http",instance="10.29.12.139:8080",job="AWVA10OB",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 21 1780733289054
# TYPE node_disk_io_time_seconds_total untyped
node_disk_io_time_seconds_total{cid="m-mqx8vdlm6b671apzob",device="nvme1n1",instance="10.29.12.139:9100",job="AWVA10OB",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 220.19 1780733285342
# TYPE node_memory_Buffers_bytes untyped
node_memory_Buffers_bytes{cid="m-mqx8vdlm6b671apzob",instance="10.29.12.139:9100",job="AWVA10OB",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 2.0322304e+08 1780733285342
# TYPE node_memory_Cached_bytes untyped
node_memory_Cached_bytes{cid="m-mqx8vdlm6b671apzob",instance="10.29.12.139:9100",job="AWVA10OB",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 2.207244288e+09 1780733285342

クラスターメトリクスの照会

QueryClusterMetricsは、指定されたクラスターの生のPrometheusメトリクスを返します。

リクエスト

GET /v1/warehouse/{warehouseId}/cluster/{clusterId}/metrics
Host: apps-api.<region>.<provider>.velodb.cloud
X-API-Key: sk-xxxx

パスパラメータ

パラメータ説明
warehouseIdWarehouse ID。
clusterIdCluster ID。o-プレフィックスはobserverクラスタを意味します。c-プレフィックスはcomputeクラスタを意味します。

レスポンス

フィールド説明
Status200 OK
Content typetext/plain; version=0.0.4; charset=utf-8
BodyPrometheus exposition形式のテキスト。返されるデータは、クラスタスコープでのResource MetricsとService Metricsをカバーします。

例:

curl -H "X-API-Key: sk-xxxx" \
https://apps-api.us-east-1.aws.velodb.cloud/v1/warehouse/XXZ0RP/cluster/m-fexxxxxxx/metrics

# TYPE doris_be_load_bytes untyped
doris_be_load_bytes{cid="c-v7hi1dbm6b6rimgod7",custom_scheme="http",instance="10.29.2.192:8040",job="AWVA10OB-c-v7hi1dbm6b6rimgod7",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 3.042252e+06 1780735183262
# TYPE doris_be_num_io_bytes_read_from_cache untyped
doris_be_num_io_bytes_read_from_cache{cid="c-v7hi1dbm6b6rimgod7",custom_scheme="http",instance="10.29.2.192:8040",job="AWVA10OB-c-v7hi1dbm6b6rimgod7",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 4.649776e+07 1780735183262
# TYPE doris_be_num_io_bytes_read_total untyped
doris_be_num_io_bytes_read_total{cid="c-v7hi1dbm6b6rimgod7",custom_scheme="http",instance="10.29.2.192:8040",job="AWVA10OB-c-v7hi1dbm6b6rimgod7",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 4.649776e+07 1780735183262
# TYPE doris_be_streaming_load_requests_total untyped
doris_be_streaming_load_requests_total{cid="c-v7hi1dbm6b6rimgod7",custom_scheme="http",instance="10.29.2.192:8040",job="AWVA10OB-c-v7hi1dbm6b6rimgod7",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 1357 1780735183262
# TYPE doris_be_tablet_base_max_compaction_score untyped
doris_be_tablet_base_max_compaction_score{cid="c-v7hi1dbm6b6rimgod7",custom_scheme="http",instance="10.29.2.192:8040",job="AWVA10OB-c-v7hi1dbm6b6rimgod7",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 1 1780735183262
# TYPE doris_be_tablet_cumulative_max_compaction_score untyped
doris_be_tablet_cumulative_max_compaction_score{cid="c-v7hi1dbm6b6rimgod7",custom_scheme="http",instance="10.29.2.192:8040",job="AWVA10OB-c-v7hi1dbm6b6rimgod7",product="SAAS",provider="aws",region="us-east-1",vpc_id="vpc-03313d4774a52fb93",wid="AWVA10OB"} 4 1780735183262

Prometheusとの統合

Metrics APIは直接Prometheus exposition formatを返すため、Prometheusは各エンドポイントをscrapeターゲットとして扱うことができます。

重要なポイント:

  • schemeとしてhttpsを使用してください。
  • 各パスにはwarehouse IDまたはcluster IDが含まれているため、ターゲットごとに__metrics_path__ラベルを設定してください。
  • X-API-Key HTTPヘッダーを通じてAPI keyを渡してください。
  • 複数のwarehouseとclusterを管理するためにfile_sd_configsを使用してください。異なるリージョンのwarehouseは、それぞれのendpoint hostを指すべきです。

Prometheus 2.43+ではhttp_headersを通じてカスタムヘッダーをサポートしています。

推奨されるディレクトリレイアウト:

prometheus/
prometheus.yml
targets/
warehouse.yml

prometheus.yml:

scrape_configs:
- job_name: velodb-warehouse
scheme: https
http_headers:
X-API-Key:
values:
- sk-xxxxxxxxxxxxxxxxxxxx
file_sd_configs:
- files:
- targets/warehouse.yml
refresh_interval: 1m

targets/warehouse.yml:

- targets:
- apps-api.us-east-1.aws.velodb.cloud
labels:
__metrics_path__: /v1/warehouse/XXZ0RP/metrics
warehouse: XXZ0RP
name: warehouse-a

- targets:
- apps-api.ap-northeast-1.aws.velodb.cloud
labels:
__metrics_path__: /v1/warehouse/XXZ0RQ/metrics
warehouse: XXZ0RQ
name: warehouse-b

- targets:
- apps-api.us-central1.gcp.velodb.cloud
labels:
__metrics_path__: /v1/warehouse/GCP0RS/cluster/CLUSTER001/metrics
warehouse: GCP0RS
cluster: CLUSTER001
name: cluster-name1

お使いのPrometheusバージョンがhttp_headersをサポートしていない場合は、Prometheusのauthorization設定を使用するか、スクレイパーの前にNginxやEnvoyなどのリバースプロキシを配置してX-API-Keyを注入してください。

Grafanaでの可視化

PrometheusがMetrics APIをスクレイピングすると、コンソールに表示されるResource MetricsやService Metricsと同じ内容を反映する事前構築済みのGrafanaダッシュボードをインポートできます。

monitoring-stacksリポジトリに、すぐに使用できる2つのダッシュボードテンプレートが公開されています:

ダッシュボードファイルスコープ
VeloDB Warehouse Monitoringgrafana_dashboard_warehouse.jsonFEノードリソース、QPS、クエリレイテンシ、接続、ロードジョブ、routine load、workload group。
VeloDB Cluster Monitoringgrafana_dashboard_cluster.jsonBEノードリソース、デッドノード、クエリパフォーマンス、キャッシュヒット率、リモートS3スループット、ロードスループット、tabletコンパクションスコア。

ダッシュボードのインポート

  1. GrafanaでDashboardsを開き、New、次にImportを選択します。
  2. JSONファイルをアップロードするか、GitHubから生のコンテンツを貼り付けます。
  3. プロンプトが表示されたら、Metrics APIをスクレイピングするPrometheusデータソースを選択します。これによりDS_PROMETHEUSテンプレート変数がバインドされます。
  4. Importをクリックします。

テンプレート変数

両方のダッシュボードはMetric labelsで説明された固定ラベルを読み取ります。インポート後、ダッシュボード上部のドロップダウンを使用してビューのスコープを設定します:

変数ダッシュボードソース目的
DS_PROMETHEUS両方インポート時に選択Prometheusデータソース。
wid両方label_values(doris_fe_connection_total, wid)ウェアハウスセレクター。
cidClusterlabel_values(up{wid="$wid", cid!=""}, cid)選択されたウェアハウスにスコープされたクラスターセレクター。
interval両方静的リスト(30s1m5m10m30m1h時系列パネルのレートと集計ウィンドウ。

インポート後にwidまたはcidが空の場合は、PrometheusがMetrics APIエンドポイントを正常にスクレイピングしており、X-API-Keyヘッダーが注入されていることを確認してください。

Metricラベル

すべてのサンプルには、VeloDB Cloudによって注入される固定ラベルが含まれています:

ラベル意味
providerawsgcpazureなどのクラウドプロバイダー。
regionus-east-1ap-northeast-1などのクラウドリージョン。
widウェアハウスID。
cidクラスターID。
instance10.29.0.7:8080のようなノードアドレス。
vpc_idウェアハウスをホストするVPC ID。
productプロダクト識別子。

各サンプル行の末尾の整数は、Prometheus側の収集タイムスタンプ(ミリ秒単位)です。

FAQ

/api/v1/queryのようなPromQLクエリエンドポイントはありますか?

いいえ。Metrics APIは、Prometheusスクレイピング用の生メトリクスエンドポイントを公開します。インタラクティブな探索には、VeloDB Cloudコンソール内の組み込みMetricsページを使用するか、メトリクスをスクレイピングした後に独自のPrometheusをクエリしてください。

標準的な/metricsパスはサポートされていますか?

いいえ。/v1/warehouse/{warehouseId}/metricsまたは/v1/warehouse/{warehouseId}/cluster/{clusterId}/metricsを使用してください。

AuthorizationX-API-Keyのどちらを使用すべきですか?

X-API-Keyを使用してください。HTTPヘッダー名は大文字小文字を区別しません。

プロバイダー、リージョン、ウェアハウスID、クラスターIDはどこで確認できますか?

VeloDB Cloudコンソールで確認できます。自動化の場合は、Management APIを使用してください:

プライベートエンドポイントやIP許可リストはサポートされていますか?

Metrics APIエンドポイントは、APIキー認証とレート制限によって保護されたパブリックHTTPSエンドポイントです。プライベート接続が必要な場合は、VeloDB Cloudサポートにお問い合わせください。

次のステップ

  • Metrics:コンソールで同じメトリクスをインタラクティブに表示します。
  • External monitoring integrations:外部監視プラットフォームにメトリクスをエクスポートします。
  • Alerts:メトリクスが閾値を超えたときに通知を受け取ります。