

# Amazon EKS の OpenTelemetry メトリクスを使用した Container Insights
<a name="container-insights-otel-metrics"></a>

**プレビュー**  
OpenTelemetry メトリクスを使用した Container Insights により、Amazon EKS クラスターインフラストラクチャの運用状態が可視化されます。米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー) では、追加料金なしでパブリックプレビューで利用できます。

Amazon CloudWatch Observability EKS アドオンは、Amazon EKS クラスターからオープンソースメトリクスを収集し、OpenTelemetry Protocol (OTLP) を使用して 30 秒の精度でそれらを CloudWatch に送信します。これらのメトリクスは、cAdvisor、Prometheus Node Exporter、NVIDIA DCGM、Kube State Metrics、AWS Neuron Monitor など、元のソースのメトリクス名を使用します。これらのメトリクスは、CloudWatch Query Studio の PromQL を使用して、または Prometheus 互換クエリ API を介してクエリできます。

各メトリクスは、OpenTelemetry セマンティック規則属性、Kubernetes ポッドおよびノードラベルなど、最大 150 個のラベルで自動的に強化されます。PromQL はクエリ時に集計を処理するので、各メトリクスは複数の集計レベルではなく、リソースごとに 1 回発行されます。アドオンは、AWS Neuron および AWS Elastic Fabric Adapter からのアクセラレーターメトリクスを、それらを使用する特定のポッドとコンテナと関連付け、メトリクスソースだけでは利用できない可視性を提供します。

Amazon EKS クラスターで OTel Container Insights を有効にするには、Amazon CloudWatch Observability EKS アドオンバージョン `v6.0.1-eksbuild.1` 以降を Amazon EKS コンソールまたは Infrastructure as Code を介してインストールします。

OTel Container Insights のセットアップの詳細については、「[Container Insights の設定](deploy-container-insights.md)」を参照してください。

PromQL を使用したこれらのメトリクスのクエリの詳細については、「[PromQL クエリ](CloudWatch-PromQL-Querying.md)」を参照してください。

## OTel Container Insights を Container Insights と比較する方法 (拡張)
<a name="container-insights-otel-comparison"></a>

次の表は、Container Insights (拡張) と OTel Container Insights の違いをまとめたものです。


| 機能 | Container Insights (拡張) | OTel Container Insights | 
| --- | --- | --- | 
| メトリクス名 | CloudWatch 形式のメトリクス (例: pod\$1cpu\$1utilization) | オープンソースネイティブ (例: container\$1cpu\$1usage\$1seconds\$1total) | 
| メトリクスあたりのラベル | メトリクスあたり 3～6 個の定義済みディメンション | すべての Kubernetes ポッドラベルとノードラベルを含む、最大 150 個のラベル | 
| 集計 | 複数のレベル (クラスター、名前空間、ワークロード、ポッド) で事前集計されている | リソースごとの raw メトリクス。PromQL を使用したクエリ時の集計 | 
| クエリ言語 | CloudWatch メトリクス API | PromQL (Prometheus 互換) | 
| メトリクスの取り込み | EMF 形式の CloudWatch Logs | OTLP エンドポイント | 

## メトリクスをラベル付けする方法
<a name="container-insights-otel-labels"></a>

OTel Container Insights によって収集された各メトリクスには、3 個のソースからのラベルが付けられます。

テレメトリソースのネイティブラベル  
元のメトリクスソースからのラベル (例えば、cAdvisor は `pod`、`namespace`、`container` などのラベルを提供します)。これらはデータポイント属性として保持されます。

OpenTelemetry リソース属性  
アドオンは、`k8s.pod.name`、`k8s.namespace.name`、`k8s.node.name`、`host.name`、`cloud.region` など、[Kubernetes](https://opentelemetry.io/docs/specs/semconv/resource/k8s/)、[ホスト](https://opentelemetry.io/docs/specs/semconv/resource/host/)、および[クラウド](https://opentelemetry.io/docs/specs/semconv/resource/cloud/)の OpenTelemetry セマンティック規則に従ってリソース属性を追加します。これらの属性は、すべてのメトリクスソース全体で一貫しています。

Kubernetes ポッドとノードのラベル  
Kubernetes API から検出されたすべてのポッドラベルとノードラベルは、`k8s.pod.label` および `k8s.node.label` というプレフィックスが付いたリソース属性として追加されます。

PromQL を使用してこれらの属性をクエリする方法の詳細については、「[PromQL クエリ](CloudWatch-PromQL-Querying.md)」を参照してください。

## サポートされるメトリクス
<a name="container-insights-otel-supported-metrics"></a>

次の表は、OTel Container Insights によって収集されたメトリクスソースとカテゴリを示します。


| メトリクスソース | メトリクスカテゴリ | 前提条件 | 
| --- | --- | --- | 
| cAdvisor | CPU メトリクス | - | 
| cAdvisor | メモリメトリクス | - | 
| cAdvisor | ネットワークメトリクス | - | 
| cAdvisor | ディスクとファイルシステムのメトリクス | - | 
| Prometheus Node Exporter | CPU メトリクス | - | 
| Prometheus Node Exporter | メモリメトリクス | - | 
| Prometheus Node Exporter | ディスクメトリクス | - | 
| Prometheus Node Exporter | ファイルシステムのメトリクス | - | 
| Prometheus Node Exporter | ネットワークメトリクス | - | 
| Prometheus Node Exporter | システムメトリクス | - | 
| Prometheus Node Exporter | VMStat メトリクス | - | 
| Prometheus Node Exporter | Netstat とソケットのメトリクス | - | 
| NVIDIA DCGM | GPU 使用率とパフォーマンスのメトリクス | [NVIDIA デバイスプラグイン](https://github.com/NVIDIA/k8s-device-plugin)と [NVIDIA コンテナツールキット](https://github.com/NVIDIA/nvidia-container-toolkit)をインストールする必要があります。 | 
| NVIDIA DCGM | GPU メモリメトリクス | [NVIDIA デバイスプラグイン](https://github.com/NVIDIA/k8s-device-plugin)と [NVIDIA コンテナツールキット](https://github.com/NVIDIA/nvidia-container-toolkit)をインストールする必要があります。 | 
| NVIDIA DCGM | GPU 電力と熱のメトリクス | [NVIDIA デバイスプラグイン](https://github.com/NVIDIA/k8s-device-plugin)と [NVIDIA コンテナツールキット](https://github.com/NVIDIA/nvidia-container-toolkit)をインストールする必要があります。 | 
| NVIDIA DCGM | GPU スロットリングメトリクス | [NVIDIA デバイスプラグイン](https://github.com/NVIDIA/k8s-device-plugin)と [NVIDIA コンテナツールキット](https://github.com/NVIDIA/nvidia-container-toolkit)をインストールする必要があります。 | 
| NVIDIA DCGM | GPU エラーと信頼性のメトリクス | [NVIDIA デバイスプラグイン](https://github.com/NVIDIA/k8s-device-plugin)と [NVIDIA コンテナツールキット](https://github.com/NVIDIA/nvidia-container-toolkit)をインストールする必要があります。 | 
| NVIDIA DCGM | GPU NVLink メトリクス | [NVIDIA デバイスプラグイン](https://github.com/NVIDIA/k8s-device-plugin)と [NVIDIA コンテナツールキット](https://github.com/NVIDIA/nvidia-container-toolkit)をインストールする必要があります。 | 
| NVIDIA DCGM | GPU 情報メトリクス | [NVIDIA デバイスプラグイン](https://github.com/NVIDIA/k8s-device-plugin)と [NVIDIA コンテナツールキット](https://github.com/NVIDIA/nvidia-container-toolkit)をインストールする必要があります。 | 
| AWS Neuron モニター | NeuronCore メトリクス | [Neuron ドライバー](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu22.html)と [Neuron デバイスプラグイン](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/kubernetes-getting-started.html)をインストールする必要があります。 | 
| AWS Neuron モニター | NeuronDevice メトリクス | [Neuron ドライバー](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu22.html)と [Neuron デバイスプラグイン](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/kubernetes-getting-started.html)をインストールする必要があります。 | 
| AWS Neuron モニター | Neuron システムメトリクス | [Neuron ドライバー](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu22.html)と [Neuron デバイスプラグイン](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/kubernetes-getting-started.html)をインストールする必要があります。 | 
| AWS Elastic Fabric Adapter | EFA メトリクス | [EFA デバイスプラグイン](https://github.com/aws/eks-charts/tree/master/stable/aws-efa-k8s-device-plugin)をインストールする必要があります。 | 
| NVMe | NVMe SMART メトリクス | - | 
| Kube State メトリクス | Pod、ノード、デプロイ、DaemonSet、StatefulSet、ReplicaSet、Job、CronJob、Service、名前空間、PersistentVolume、PersistentVolumeClaim メトリクス | - | 
| Kubernetes API サーバー | API サーバーと etcd メトリクス | - | 