Collector for Kubernetesのサイジングのトラブルシューティング
Collector for Kubernetesコンテナのサイジングに固有のトラブルシューティングについて説明します。
Collector インスタンスのサイズ設定
処理するデータ量に基づいて、Collector インスタンスに割り当てるリソースを設定します。詳細については「サイジングとスケーリング」を参照してください。
以下の設定を使用して、エージェントにリソース制限をかけます:
agent:
resources:
limits:
cpu: 500m
memory: 1Gi
クラスターサイズに基づいて、クラスターレシーバのデプロイメントに割り当てるリソースを設定します。たとえば、100 ノードのクラスターの場合は、次のリソースを割り当てます。
clusterReceiver:
resources:
limits:
cpu: 1
memory: 2Gi
コンテナのメモリ不足を確認する
Collector コンテナに十分なリソースを提供しなかった場合でも、通常の状況では Collector のメモリ不足(OOM)は発生しません。これは、Collector がバックエンドによって大幅にスロットルされ、Collector がメモリの使用を制御できるよりも速くエクスポータの送信キューが増加する場合にのみ発生します。その場合、メトリクスとトレースの 429 エラー、またはログの 503 エラーが表示されます。
例:
2021-11-12T00:22:32.172Z info exporterhelper/queued_retry.go:325 Exporting failed. Will retry the request after interval. {"kind": "exporter", "name": "otlphttp", "error": "server responded with 429", "interval": "4.4850027s"}
2021-11-12T00:22:38.087Z error exporterhelper/queued_retry.go:190 Dropping data because sending_queue is full. Try increasing queue_size. {"kind": "exporter", "name": "otlphttp", "dropped_items": 1348}
バックエンドの制限を増やしたり、Collector 経由で送信されるデータ量を減らしたりしてもスロットリングを修正できない場合は、失敗したエクスポータの送信キューを減らすことで OOM を回避できます。たとえば、otlphttpエクスポータの sending_queue を減らすことができます。
agent:
config:
exporters:
otlphttp:
sending_queue:
queue_size: 512
同じような設定を、他の失敗したエクスポーターにも適用できます。