Prometheus との統合
Prometheus は、設定されたターゲットから指定された間隔でメトリクスを収集し、ルール式を評価して結果を表示し、特定の条件に基づいてアラートをトリガーできる監視システムです。
Zilliz Cloud と Prometheus を統合することで、Zilliz Cloud デプロイメントに関連するメトリクスを収集・監視できます。
この機能は、Enterprise プロジェクトの Dedicated クラスターでのみ利用可能です。
Prometheus を設定して Zilliz Cloud メトリクスをスクレイプする
Prometheus で Zilliz Cloud クラスターを監視するには、以下の手順に従ってください:
Prometheus サーバー上の Prometheus.yml 設定ファイルにアクセスします。詳細については、設定 を参照してください。
以下のスニペットを Prometheus.yml ファイルの scrape_configs セクションに追加します。プレースホルダーは適切な値に置き換えてください:
-
{{apiキー}}: クラスターメトリクスへのアクセスに使用する Zilliz Cloud API キー。 -
{{clusterId}}: 監視したい Zilliz Cloud クラスターの ID。
scrape_configs:
- job_name: {{clusterId}}
scheme: https
metrics_path: /v2/clusters/{{clusterId}}/metrics/export
scrape_interval: 60s
scrape_timeout: 30s
authorization:
type: Bearer
credentials: {{apiKey}}
static_configs:
- targets: ["api.cloud.zilliz.com"]
クラスターに含まれるコレクションは10,000個以下である必要があります。この制限を超えるクラスターでは、メトリクスのエクスポートが不完全になったり、品質が低下したりする可能性があります。
パラメータ | 説明 |
|---|---|
| スクレイピングされたメトリクスに割り当てられる人間が読めるラベル。 |
| Zilliz Cloud エンドポイントからメトリクスをスクレイピングするために使用されるプロトコルスキーム。これは |
| メトリクスデータを提供するターゲットサービス上のパス。 |
| ターゲットをスクレイピングする頻度。サポートされる最小値は |
| Zilliz Cloud メトリクスへのアクセスに使用される認証タイプ。値を |
| Zilliz Cloud メトリクスエンドポイントへのアクセスを承認するために使用される API キー。 |
| Prometheus がスクレイピングする静的ターゲット。これは Zilliz Cloud RESTful API のホストアドレスである |
Prometheus.yml ファイルに変更を保存します。
詳細については、Prometheus 公式ドキュメント を参照してください。
Example scraped metrics
以下は、Zilliz Cloud の /metrics/export エンドポイントからスクレイピングされた Prometheus メトリクスの例です。コレクションごとのメトリクスには collection_name と db_name のラベルが含まれますが、クラスターのみのメトリクスは変更されません。
# HELP zilliz_entities Total number of entities stored
# TYPE zilliz_entities gauge
zilliz_entities{cluster_id="in01-xxx", collection_name="prod_embedding", db_name="default"} 5000000
zilliz_entities{cluster_id="in01-xxx", collection_name="user_profile", db_name="default"} 120000
# HELP zilliz_loaded_entities Number of entities loaded in memory
# TYPE zilliz_loaded_entities gauge
zilliz_loaded_entities{cluster_id="in01-xxx", collection_name="prod_embedding", db_name="default"} 3000000
zilliz_loaded_entities{cluster_id="in01-xxx", collection_name="user_profile", db_name="default"} 80000
# HELP zilliz_requests_total Total number of requests processed
# TYPE zilliz_requests_total counter
zilliz_requests_total{cluster_id="in01-xxx", request_type="search", status="success", collection_name="prod_embedding", db_name="default"} 30000
zilliz_requests_total{cluster_id="in01-xxx", request_type="search", status="success", collection_name="user_profile", db_name="default"} 12850
# HELP zilliz_request_duration_seconds_bucket Latency distribution of requests
# TYPE zilliz_request_duration_seconds_bucket histogram
zilliz_request_duration_seconds_bucket{cluster_id="in01-xxx", request_type="search", le="0.1", collection_name="prod_embedding", db_name="default"} 28000
zilliz_request_duration_seconds_bucket{cluster_id="in01-xxx", request_type="search", le="0.1", collection_name="user_profile", db_name="default"} 10000
# HELP zilliz_request_vectors_total Total number of vectors in requests
# TYPE zilliz_request_vectors_total counter
zilliz_request_vectors_total{cluster_id="in01-xxx", request_type="search", collection_name="prod_embedding", db_name="default"} 50000
zilliz_request_vectors_total{cluster_id="in01-xxx", request_type="insert", collection_name="prod_embedding", db_name="default"} 10000
# --- Cluster-only metrics ---
# HELP zilliz_cluster_capacity Cluster capacity ratio
# TYPE zilliz_cluster_capacity gauge
zilliz_cluster_capacity 0.88
# HELP zilliz_cluster_computation Cluster computation ratio
# TYPE zilliz_cluster_computation gauge
zilliz_cluster_computation 0.1
# HELP zilliz_storage_bytes Cluster storage usage
# TYPE zilliz_storage_bytes gauge
zilliz_storage_bytes 8.9342782E7
Zilliz Cloud メトリクスラベル
Zilliz Cloud によって公開されるメトリクスには、以下の識別子がラベルとして付与されます。
ラベル名 | 説明 | 値 |
|---|---|---|
| メトリクスの送信元である Zilliz Cloud クラスターの ID。 | - |
| Zilliz Cloud クラスターを所有する組織の ID。 | - |
| クラスターが所属する、組織内のプロジェクトの ID。 | - |
| コレクションの名前。すべてのコレクション単位のメトリクス(リクエストメトリクス( | - |
| コレクションが所属するデータベースの名前。 | デフォルトは |
| データに対して実行された操作のタイプ。 |
|
| データ操作の結果。 |
|
利用可能なメトリクス
以下の表は、Zilliz Cloud で利用可能なメトリクスを、そのタイプ、説明、関連するラベルとともに一覧にしたものです。コレクション単位のメトリクスは collection_name および db_name ラベル付きで返され、各コレクションごとに個別の時系列が生成されます。クラスターのみのメトリクスは、クラスターごとに 1 つの時系列として返されます。
メトリクス名 | タイプ | 説明 | ラベル |
|---|---|---|---|
| Gauge | 現在の計算容量の使用率。 |
|
| Gauge | 現在のストレージ容量の使用率。 |
|
| Gauge | 使用されている総ストレージ容量。 |
|
| Gauge | 現在の書き込みスループット。 |
|
| Counter | 処理されたリクエストの総数。 |
|
| Counter | すべてのリクエストを通じて操作されたベクトルの総数。 |
|
| Histogram | 処理されたリクエストのレイテンシ分布。 |
|
| Counter | レイテンシ閾値を超えたクエリの数。 |
|
| Gauge | 保存されているエンティティの総数。 |
|
| Gauge | 現在メモリ上にロードされているエンティティの数。 |
|
| Gauge | コレクションの総数。 |
|
| Gauge | ロードされていないコレクションの数。 |
|
Prometheus クエリの例
以下は、Prometheus を使用して Zilliz Cloud のメトリクスを分析するために使用できるクエリの例です。
-
insert QPS を計算する
rate(zilliz_requests_total{cluster_id='in01-xxxxx',request_type='insert'}[$__rate_interval]) -
挿入 VPS を計算する
rate(zilliz_request_vectors_total{cluster_id='in01-xxxxx',request_type='insert'}[$__rate_interval]) -
70 パーセンタイルの挿入レイテンシを計算する
histogram_quantile(0.70,sum(rate(zilliz_request_duration_seconds_bucket{cluster_id='in01-xxxxx',request_type='insert'}[$__rate_interval])) by (le)) -
挿入リクエストの失敗率を計算する
rate(zilliz_requests_total{cluster_id=?,status!='success'}[$__rate_interval])/rate(zilliz_requests_total{cluster_id=?}[$__rate_interval]) -
1 分あたりのスロークエリ数を計算する
sum(increase(zilliz_slow_queries_total{cluster_id=?}[1m])) -
5 分ごとのスロークエリ数を計算する
sum(increase(zilliz_slow_queries_total{cluster_id=?}[5m]))