Amazon EKS の OpenTelemetry メトリクスを使用した Container Insights
プレビュー
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 の設定」を参照してください。
PromQL を使用したこれらのメトリクスのクエリの詳細については、「PromQL クエリ」を参照してください。
OTel Container Insights を Container Insights と比較する方法 (拡張)
次の表は、Container Insights (拡張) と OTel Container Insights の違いをまとめたものです。
| 機能 | Container Insights (拡張) | OTel Container Insights |
|---|---|---|
| メトリクス名 | CloudWatch 形式のメトリクス (例: pod_cpu_utilization) |
オープンソースネイティブ (例: container_cpu_usage_seconds_total) |
| メトリクスあたりのラベル | メトリクスあたり 3~6 個の定義済みディメンション | すべての Kubernetes ポッドラベルとノードラベルを含む、最大 150 個のラベル |
| 集計 | 複数のレベル (クラスター、名前空間、ワークロード、ポッド) で事前集計されている | リソースごとの raw メトリクス。PromQL を使用したクエリ時の集計 |
| クエリ言語 | CloudWatch メトリクス API | PromQL (Prometheus 互換) |
| メトリクスの取り込み | EMF 形式の CloudWatch Logs | OTLP エンドポイント |
メトリクスをラベル付けする方法
OTel Container Insights によって収集された各メトリクスには、3 個のソースからのラベルが付けられます。
- テレメトリソースのネイティブラベル
-
元のメトリクスソースからのラベル (例えば、cAdvisor は
pod、namespace、containerなどのラベルを提供します)。これらはデータポイント属性として保持されます。 - OpenTelemetry リソース属性
-
アドオンは、
k8s.pod.name、k8s.namespace.name、k8s.node.name、host.name、cloud.regionなど、Kubernetes、ホスト 、およびクラウド の OpenTelemetry セマンティック規則に従ってリソース属性を追加します。これらの属性は、すべてのメトリクスソース全体で一貫しています。 - Kubernetes ポッドとノードのラベル
-
Kubernetes API から検出されたすべてのポッドラベルとノードラベルは、
k8s.pod.labelおよびk8s.node.labelというプレフィックスが付いたリソース属性として追加されます。
PromQL を使用してこれらの属性をクエリする方法の詳細については、「PromQL クエリ」を参照してください。
サポートされるメトリクス
次の表は、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 デバイスプラグイン |
| NVIDIA DCGM | GPU メモリメトリクス | NVIDIA デバイスプラグイン |
| NVIDIA DCGM | GPU 電力と熱のメトリクス | NVIDIA デバイスプラグイン |
| NVIDIA DCGM | GPU スロットリングメトリクス | NVIDIA デバイスプラグイン |
| NVIDIA DCGM | GPU エラーと信頼性のメトリクス | NVIDIA デバイスプラグイン |
| NVIDIA DCGM | GPU NVLink メトリクス | NVIDIA デバイスプラグイン |
| NVIDIA DCGM | GPU 情報メトリクス | NVIDIA デバイスプラグイン |
| AWS Neuron モニター | NeuronCore メトリクス | Neuron ドライバー |
| AWS Neuron モニター | NeuronDevice メトリクス | Neuron ドライバー |
| AWS Neuron モニター | Neuron システムメトリクス | Neuron ドライバー |
| AWS Elastic Fabric Adapter | EFA メトリクス | EFA デバイスプラグイン |
| NVMe | NVMe SMART メトリクス | - |
| Kube State メトリクス | Pod、ノード、デプロイ、DaemonSet、StatefulSet、ReplicaSet、Job、CronJob、Service、名前空間、PersistentVolume、PersistentVolumeClaim メトリクス | - |
| Kubernetes API サーバー | API サーバーと etcd メトリクス | - |
デュアルパブリッシュの無効化
Amazon CloudWatch Observability EKS アドオンバージョン v6.0.1-eksbuild.1 以降では、アドオンはデフォルトで Container Insights (レガシー) と OTel Container Insights の両方を通じてメトリクスを発行します。これらのうち 1 つだけを使用したい場合は、もう 1 つを無効にできます。
OTel Container Insights を無効化する
OTel Container Insights メトリクスの公開を停止し、レガシー Container Insights のみを使用するには、otelContainerInsights 設定を disabled に設定します。
次の設定値を使用します。
{"otelContainerInsights":{"enabled":false}}
次のコマンドを実行し、設定を適用します。
aws eks update-addon \ --cluster-nameCLUSTER_NAME\ --addon-name amazon-cloudwatch-observability \ --configuration-values '{"otelContainerInsights":{"enabled":false}}' \ --regionREGION
Container Insights を無効にします
レガシー Container Insights メトリクスの公開を停止し、OTel Container Insights のみを使用するには、containerInsights 設定を disabled に設定します。
次の設定値を使用します。
{"containerInsights":{"enabled":false}}
次のコマンドを実行し、設定を適用します。
aws eks update-addon \ --cluster-nameCLUSTER_NAME\ --addon-name amazon-cloudwatch-observability \ --configuration-values '{"containerInsights":{"enabled":false}}' \ --regionREGION