

# Amazon EKS と Kubernetes のパフォーマンスログイベントの関連フィールド
<a name="Container-Insights-reference-performance-entries-EKS"></a>

Amazon EKS および Kubernetes では、コンテナ化された CloudWatch エージェントは、パフォーマンスログイベントとしてデータを出力します。これにより、CloudWatch は高カーディナリティのデータを取り込み、保存することができます。CloudWatch は、パフォーマンスログイベントのデータを使用して、詳細を失うことなく、クラスター、ノード、ポッドレベルで、集計された CloudWatch メトリクスを作成します。

以下の表は、Container Insights メトリクスデータの収集に関連する、これらのパフォーマンスログイベントのフィールドを示しています。CloudWatch Logs Insights を使用して、これらの任意のフィールドをクエリし、データを収集したり、問題を調査したりできます。詳細については、「[CloudWatch Logs Insights を使用したログデータの分析](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)」を参照してください。


| タイプ | ログフィールド | ソース | 計算式またはコメント | 
| --- | --- | --- | --- | 
| ポッド | `pod_cpu_utilization` | 計算 | 計算式: `pod_cpu_usage_total / node_cpu_limit` | 
| ポッド | `pod_cpu_usage_total`<br />`pod_cpu_usage_total` はミリコア単位で報告されます。 | cadvisor |   | 
| ポッド | `pod_cpu_limit` | 計算 | 計算式: `sum(container_cpu_limit)` <br />`sum(container_cpu_limit)` には、既に完成したポッドが含まれます。<br />ポッドのいずれかのコンテナで、定義された CPU 制限がない場合、このフィールドはログイベントに表示されません。これには[初期化コンテナ](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources)が含まれます。 | 
| ポッド | `pod_cpu_request` | 計算 | 計算式: `sum(container_cpu_request)`<br />`container_cpu_request` の設定は保証されません。設定されているもののみが合計に含まれます。 | 
| ポッド | `pod_cpu_utilization_over_pod_limit` | 計算 | 計算式: `pod_cpu_usage_total / pod_cpu_limit` | 
| ポッド | `pod_cpu_reserved_capacity` | 計算 | 計算式: `pod_cpu_request / node_cpu_limit` | 
| ポッド | `pod_memory_utilization` | 計算 | 計算式: `pod_memory_working_set / node_memory_limit`<br />これは、ノードのメモリ制限に対する Pod メモリ使用量の割合です。 | 
| ポッド | `pod_memory_working_set` | cadvisor |   | 
| ポッド | `pod_memory_limit` | 計算 | 計算式: `sum(container_memory_limit)`<br />ポッドのいずれかのコンテナに、定義されたメモリ制限がない場合、このフィールドはログイベントに表示されません。これには[初期化コンテナ](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources)が含まれます。 | 
| ポッド | `pod_memory_request` | 計算 | 計算式: `sum(container_memory_request)`<br />`container_memory_request` の設定は保証されません。設定されているもののみが合計に含まれます。 | 
| ポッド | `pod_memory_utilization_over_pod_limit` | 計算 | 計算式: `pod_memory_working_set / pod_memory_limit`<br />ポッドのいずれかのコンテナに、定義されたメモリ制限がない場合、このフィールドはログイベントに表示されません。これには[初期化コンテナ](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources)が含まれます。 | 
| ポッド | `pod_memory_reserved_capacity` | 計算 | 計算式: `pod_memory_request / node_memory_limit` | 
| ポッド | `pod_network_tx_bytes` | 計算 | 計算式: `sum(pod_interface_network_tx_bytes)`<br />このデータは、ポッドごとにすべてのネットワークインターフェイスで使用できます。CloudWatch エージェントが合計を計算し、メトリクス抽出ルールを追加します。 | 
| ポッド | `pod_network_rx_bytes` | 計算 | 計算式: `sum(pod_interface_network_rx_bytes)` | 
| ポッド | `pod_network_total_bytes` | 計算 | 計算式: `pod_network_rx_bytes + pod_network_tx_bytes` | 
| PodNet | `pod_interface_network_rx_bytes` | cadvisor | このデータは、ポッドネットワークインターフェイスの 1 秒あたりのネットワーク rx バイトです。 | 
| PodNet | `pod_interface_network_tx_bytes` | cadvisor | このデータは、ポッドネットワークインターフェイスの 1 秒あたりのネットワーク tx バイトです。 | 
| コンテナ | `container_cpu_usage_total` | cadvisor |   | 
| コンテナ | `container_cpu_limit` | cadvisor | 設定は保証されていません。設定されていない場合は出力されません。 | 
| コンテナ | `container_cpu_request` | cadvisor | 設定は保証されていません。設定されていない場合は出力されません。 | 
| コンテナ | `container_memory_working_set` | cadvisor |   | 
| コンテナ | `container_memory_limit` | ポッド | 設定は保証されていません。設定されていない場合は出力されません。 | 
| コンテナ | `container_memory_request` | ポッド | 設定は保証されていません。設定されていない場合は出力されません。 | 
| ノード | `node_cpu_utilization` | 計算 | 計算式: `node_cpu_usage_total / node_cpu_limit` | 
| ノード | `node_cpu_usage_total` | cadvisor |   | 
| ノード | `node_cpu_limit` | /proc |   | 
| ノード | `node_cpu_request` | 計算 | 計算式: `sum(pod_cpu_request)`<br />CronJob の場合、`node_cpu_request` には完了したポッドからのリクエストも含まれます。これにより、`node_cpu_reserved_capacity` の値が高くなる可能性があります。 | 
| ノード | `node_cpu_reserved_capacity` | 計算 | 計算式: `node_cpu_request / node_cpu_limit` | 
| ノード | `node_memory_utilization` | 計算 | 計算式: `node_memory_working_set / node_memory_limit` | 
| ノード | `node_memory_working_set` | cadvisor |   | 
| ノード | `node_memory_limit` | /proc |   | 
| ノード | `node_memory_request` | 計算 | 計算式: `sum(pod_memory_request)` | 
| ノード | `node_memory_reserved_capacity` | 計算 | 計算式: `node_memory_request / node_memory_limit` | 
| ノード | `node_network_rx_bytes` | 計算 | 計算式: `sum(node_interface_network_rx_bytes)` | 
| ノード | `node_network_tx_bytes` | 計算 | 計算式: `sum(node_interface_network_tx_bytes)` | 
| ノード | `node_network_total_bytes` | 計算 | 計算式: `node_network_rx_bytes + node_network_tx_bytes` | 
| ノード | `node_number_of_running_pods` | ポッドリスト |   | 
| ノード | `node_number_of_running_containers` | ポッドリスト |   | 
| NodeNet | `node_interface_network_rx_bytes` | cadvisor | このデータは、ワーカーノードネットワークインターフェイスの 1 秒あたりのネットワーク rx バイトです。 | 
| NodeNet | `node_interface_network_tx_bytes` | cadvisor | このデータは、ワーカーノードネットワークインターフェイスの 1 秒あたりのネットワーク tx バイトです。 | 
| NodeFS | `node_filesystem_capacity` | cadvisor |   | 
| NodeFS | `node_filesystem_usage` | cadvisor |   | 
| NodeFS | `node_filesystem_utilization` | 計算 | 計算式: `node_filesystem_usage / node_filesystem_capacity`<br />このデータはデバイス名ごとに使用できます。 | 
| クラスター | `cluster_failed_node_count` | API サーバー |   | 
| クラスター | `cluster_node_count` | API サーバー |   | 
| サービス | `service_number_of_running_pods` | API サーバー |   | 
| `Namespace` | `namespace_number_of_running_pods` | API サーバー |   | 

## メトリクスの計算例
<a name="Container-Insights-calculation-examples"></a>

このセクションには、前述の表の一部の値を計算する方法を示す例が含まれています。

次の状態のクラスターがあるとします。

```
Node1
   node_cpu_limit = 4
   node_cpu_usage_total = 3
   
   Pod1
     pod_cpu_usage_total = 2
     
     Container1
        container_cpu_limit = 1
        container_cpu_request = 1
        container_cpu_usage_total = 0.8
        
     Container2
        container_cpu_limit = null
        container_cpu_request = null
        container_cpu_usage_total = 1.2
        
   Pod2
     pod_cpu_usage_total = 0.4
     
     Container3
        container_cpu_limit = 1
        container_cpu_request = 0.5
        container_cpu_usage_total = 0.4
        
Node2
   node_cpu_limit = 8
   node_cpu_usage_total = 1.5
   
   Pod3
     pod_cpu_usage_total = 1
     
     Container4
        container_cpu_limit = 2
        container_cpu_request = 2
        container_cpu_usage_total = 1
```

以下の表は、このデータを使用してポッド CPU メトリクスがどのように計算されるかを示しています。


| メトリクス | 計算式 | Pod1 | Pod2 | Pod3 | 
| --- | --- | --- | --- | --- | 
| `pod_cpu_utilization` | `pod_cpu_usage_total / node_cpu_limit` | 2 / 4 = 50% | 0.4 / 4 = 10% | 1 / 8 = 12.5% | 
| `pod_cpu_utilization_over_pod_limit` | `pod_cpu_usage_total / sum(container_cpu_limit)` | 該当なし (`Container2` の CPU 制限が定義されていないため) | 0.4 / 1 = 40% | 1 / 2 = 50% | 
| `pod_cpu_reserved_capacity` | `sum(container_cpu_request) / node_cpu_limit` | (1 \+ 0) / 4 = 25% | 0.5 / 4 = 12.5% | 2 / 8 = 25% | 

以下の表は、このデータを使用してノードの CPU メトリクスがどのように計算されるかを示しています。


| メトリクス | 計算式 | Node1 | Node2 | 
| --- | --- | --- | --- | 
| `node_cpu_utilization` | `node_cpu_usage_total / node_cpu_limit` | 3 / 4 = 75% | 1.5 / 8 = 18.75% | 
| `node_cpu_reserved_capacity` | `sum(pod_cpu_request) / node_cpu_limit` | 1.5 / 4 = 37.5% | 2 / 8 = 25% | 