Prometheusとの統合
Prometheusは、設定されたターゲットから指定された間隔でメトリクスを収集し、ルール式を評価して結果を表示し、特定の条件に基づいてアラートをトリガーできる監視システムです。
Zilliz CloudをPrometheusと統合することで、Zilliz Cloudの展開に関連するメトリクスを収集および監視できます。
Zilliz Cloudメトリクスを収集するようにPrometheusを設定
Prometheusを使用してZilliz Cloudクラスターを監視するには、以下の手順に従います:
-
Prometheusサーバー上の
Prometheus.yml設定ファイルにアクセスします。詳細については、設定を参照してください。 -
Prometheus.ymlファイルのscrape_configsセクションに以下のスニペットを追加します。プレースホルダーを適切な値に置き換えてください:-
{{apiKey}}:クラスターメトリクスにアクセスするためのZilliz Cloud APIキー。 -
{{clusterId}}:監視対象のZilliz CloudクラスターのID。
scrape_configs:
- job_name: in01-06b8404b623xxxx
scheme: https
metrics_path: /v2/clusters/{{clusterId}}/metrics/export
authorization:
type: Bearer
credentials: {{apiKey}}
static_configs:
- targets: ["api.cloud.zilliz.com"]パラメータ
説明
job_name収集されたメトリクスに割り当てられた人間が読めるラベル。
schemeZilliz Cloudエンドポイントからメトリクスを収集するために使用されるプロトコルスキームで、
httpsに設定されています。metrics_pathメトリクスデータを提供するターゲットサービスのパス。
authorization.typeZilliz Cloudメトリクスにアクセスするために使用される認証タイプ。値は
Bearerに設定してください。authorization.credentialsZilliz Cloudメトリクスエンドポイントにアクセスするための認証に使用されるAPIキー。
static_configs.targetsPrometheusが収集する静的ターゲットで、Zilliz Cloud RESTful APIのホストアドレスである
api.cloud.zilliz.comである必要があります。 -
-
Prometheus.ymlファイルへの変更を保存します。
詳細については、Prometheus公式ドキュメントを参照してください。
収集されたメトリクスの例
以下は、Zilliz Cloudの/metrics/exportエンドポイントから収集されたPrometheusメトリクスの例です:
# HELP zilliz_cluster_capacity クラスタ容量比率
# TYPE zilliz_cluster_capacity gauge
zilliz_cluster_capacity 0.88
# HELP zilliz_cluster_computation クラスタ計算比率
# TYPE zilliz_cluster_computation gauge
zilliz_cluster_computation 0.1
# HELP zilliz_cluster_storage_bytes クラスタストレージ使用量
# TYPE zilliz_cluster_storage_bytes gauge
zilliz_cluster_storage_bytes 8.9342782E7
# HELP zilliz_request_vectors_total リクエスト内のベクトル総数
# TYPE zilliz_request_vectors_total counter
zilliz_request_vectors_total{request_type="bulk_insert"} 1.0
zilliz_request_vectors_total{request_type="delete"} 1.0
zilliz_request_vectors_total{request_type="insert"} 1.0
zilliz_request_vectors_total{request_type="search"} 1.0
zilliz_request_vectors_total{request_type="upsert"} 1.0
Zilliz Cloudメトリクスラベル
Zilliz Cloudによって公開されるメトリクスは、以下の識別子でラベル付けされています。
ラベル名 | 説明 | 値 |
|---|---|---|
| メトリクスが属するZilliz CloudクラスターのID。 | - |
| Zilliz Cloudクラスターを所有する組織のID。 | - |
| クラスターが属する組織内のプロジェクトのID。 | - |
| 監視対象のコレクション名。 | - |
| データに対して実行された操作の種類。 |
|
| データ操作の結果。 |
|
利用可能なメトリクス
以下は、Zilliz Cloudで利用可能なメトリクスとその種類、説明、および関連するラベルをリストしています。
メトリクス名 | 種類 | 説明 | ラベル |
|---|---|---|---|
| Gauge | 現在の計算容量使用率。 |
|
| Gauge | 現在のストレージ容量使用率。 |
|
| Gauge | 使用された合計ストレージ容量。 |
|
| Gauge | 現在の書き込みスループット。 |
|
| Counter | 処理されたリクエストの総数。 |
|
| Counter | すべてのリクエストで操作されたベクトルの総数。 |
|
| Histogram | 処理されたリクエストの遅延分布。 |
|
| Counter | 遅延しきい値を超えたクエリの数。 |
|
| Gauge | 保存されたエンティティの総数。 |
|
| Gauge | 現在メモリにロードされているエンティティの数。 |
|
| Gauge | インデックス化されたエンティティの数。 |
|
| Gauge | コレクションの総数。 |
|
| Gauge | アンロードされたコレクションの数。 |
|
Prometheusクエリの例
以下は、Prometheusを使用してZilliz Cloudメトリクスを分析するために使用できるクエリの例です:
-
insert QPSを計算
rate(zilliz_requests_total{cluster_id='in01-xxxxx',request_type='insert'}[$__rate_interval]) -
insert VPSを計算
rate(zilliz_request_vectors_total{cluster_id='in01-xxxxx',request_type='insert'}[$__rate_interval]) -
70パーセンタイルinsert遅延を計算
histogram_quantile(
0.70,
sum(
rate(zilliz_request_duration_seconds_bucket{cluster_id='in01-xxxxx',request_type='insert'}[$__rate_interval])
) by (le)
) -
insertリクエスト失敗率を計算
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]))