Agent レプリカの数が不十分な場合、メモリ不足 (OOM) エラーによる頻繁な再起動が発生し、データの遅延や損失につながる可能性があります。Managed Service for Prometheus の Agent レプリカの水平自動スケーリング機能は、この問題を防ぐのに役立ちます。
Prometheus Agent の自動スケーリング (HPA) のトリガーとポリシー
Prometheus Agent が起動すると、ターゲットをスクレイピングして時系列の数を決定します。次に、各レプリカのスクレイピング容量に基づいて、必要なレプリカ数を計算します。Agent がデータ収集に複数のレプリカが必要であると判断した場合、Horizontal Pod Autoscaler (HPA) が自動的にスケールアウトします。このプロセスの具体的なポリシーは次のとおりです。
Agent が単一レプリカモードで実行される場合: マスターレプリカは、ターゲットサービスの検出とターゲットのスクレイピングの両方を実行します。マスターのメモリ使用量が 75% に達すると、Agent は自動的に複数レプリカモードに切り替わります。ただし、単一のスクレイピングジョブが大きすぎると、切り替えが発生する前にマスターレプリカで OOM エラーが発生する可能性があります。
Agent が複数レプリカモードで実行される場合: マスターレプリカはターゲットサービスの検出のみを実行し、ワーカレプリカはターゲットのスクレイピングを実行します。ワーカレプリカのメモリ使用量が 60% を超えると、スクレイピングジョブが再割り当てされます。その後、システムは必要なワーカレプリカの数を計算し、自動的にスケールアウトします。これにより、すべてのワーカレプリカの平均メモリ使用量が 60% を超えないようにします。
説明多要素協調スケジューリングアルゴリズムは、ラウンドごとに各 Agent に次の制限を設定します。ターゲットの総数とメトリックの総数の積は 40 億を超えることはできません。メモリ使用量の上限は 70% です。各 Agent がスクレイピングできるメトリックの最大数は 4,000,000 です。
有効化する方法
Prometheus Helm チャートをバージョン 1.0.0 以降にアップグレードすると、Prometheus Agent HPA が自動的に有効になります。Helm チャートのアップグレード方法の詳細については、「コンポーネントのアップグレード: Helm 1.1.17/Agent v4.0.0 へのアップグレード」をご参照ください。
Prometheus Agent の自動スケーリングは、スクレイプレプリカの数を無期限に増やすわけではありません。スクレイプレプリカのデフォルトの最大数は 30 です。Prometheus Agent は自動的にスケールインしません。スケールインするとデータが失われる可能性があるためです。