前回の記事では、CloudWatch Observability EKS add-on を使って EKS クラスタで稼働する Pod のメトリクスを CloudWatch に送信する方法を紹介しました。
-
CloudWatch Observability EKS add-onでEKSのメトリクスとログ収集
CloudWatch Observability EKS add-on を試してみたので備忘録。これまで EKS のメト ...
この add-on を利用すると EKS の Pod に関する多くのメトリクスが収集できます。今回は、収集したメトリクスのうち、私がよく見る Pod のパフォーマンスの劣化や正常性の確認に役立つメトリクスを紹介します。
目次
パフォーマンスの劣化の兆候を検知するために役立つメトリクス
CPU とメモリの使用率により、基本的なメトリクスですが、パフォーマンスの劣化の兆候を検知することができます。詳細は Amazon EKS and Kubernetes Container Insights metrics - Amazon CloudWatch を参照。
pod_cpu_utilization
Pod で使用されている CPU ユニットの割合です。
計算式は pod_cpu_usage_total / node_cpu_limit
で、ノードの CPU リミットが分母であることに注意。
このメトリクスにより、リソースの不足や過剰な利用を確認できます。
pod_cpu_utilization_over_pod_limit
Pod で使用されている CPU ユニットの使用率が Pod の CPU リミットに対してどの程度かを示す割合です。
計算式は pod_cpu_usage_total / pod_cpu_limit
で、Pod の CPU リミットが分母であることに注意。
このメトリクスにより、Pod が CPU リソースの上限に対してどの程度利用されているか、リソースが適切に割り当てられているかどうかを確認できます。
Pod の定義で CPU リミットを設定していない場合、このメトリクスは収集されないようです。
pod_memory_utilization
Pod が現在使用しているメモリの割合です。
計算式は pod_memory_working_set / node_memory_limit
で、ノードのメモリリミットが分母であることに注意。
このメトリクスにより、リソースの不足や過剰な利用を確認できます。
pod_memory_utilization_over_pod_limit
Pod が使用しているメモリ使用率が Pod のメモリリミットに対してどの程度かを示す割合です。
計算式は pod_memory_working_set / pod_memory_limit
で、Pod のメモリリミットが分母であることに注意。
このメトリクスにより、Pod のメモリの上限に対してどの程度利用されているか、さらにリソースが適切に割り当てられているかどうかを確認できます。
Pod の定義でメモリリミットを設定していない場合、このメトリクスは収集されないようです。
Pod の正常性の確認に役立つメトリクス
何かおかしな兆候を検知したら、ステータス系のメトリクスをよく見ます。詳細は Amazon EKS and Kubernetes Container Insights metrics - Amazon CloudWatch を参照。
pod_status_ready
Pod のすべてのコンテナが準備完了状態(ContainerReady)にあることを示します。
サービスが正常に機能しているかどうかを確認できます。
pod_status_running
Pod のすべてのコンテナが実行状態にあることを示します。
Pod の正常稼働状況を確認できます。
pod_number_of_container_restarts
Pod 内のコンテナの再起動回数の合計です。
再起動の多さは問題が発生している可能性を示します。