CRI-O のモニタリング
「 Instana 」エージェントをインストールすると、「 CRI-O 」センサーが自動的に展開およびインストールされます。
概要
Instana CRI-O のコンテナを自動的に検出して監視し、メタデータ(ラベル)、メトリクス、および検出された各コンテナ内で実行されているサポート対象のテクノロジー に関するリアルタイムの情報を提供します。
各コンテナーの正常性をモニタリングし、問題のアラートを受信するとともに、サービス・ディスカバリー を有効にして、すべてのコンテナー情報を活用することもできます。
サポート情報
CRI-O センサーが現在の環境と互換性があるかどうかを確認するには、以下のサポート情報セクションをご確認ください:
対応バージョンとサポート方針
以下の表は、最新のサポート対象バージョンとサポート方針を示しています:
| テクノロジー | サポート・ポリシー | 最新技術バージョン | サポートされる最新バージョン |
|---|---|---|---|
| CRI-O | 45 日間 | 1.36.1 | 1.36.1 |
サポートポリシーに関する詳細については、 「センサーのサポート戦略」 を参照してください。
前提条件
CRI‑Oを監視するには、以下のバージョン要件を満たしていることを確認してください:
- Instana 対応OS: 1.2.19 以降
- CRI‑Oセンサー: 1.0.15 以降
CRI-O の監視設定
このエージェントは CRI-O をネイティブに監視するため、設定は任意です。
ポーリングレートの設定
次の例に示すように、agent configuration.yaml ファイル poll_rate 内のパラメータを使用して、 Instana が CRI-O からデータやメトリクスを収集するためにポーリングを行う頻度を設定できます
com.instana.plugin.crio:
poll_rate: 1 # values are in seconds. Default value is 1 second.
メトリック収集
コンテナのCPUおよびメモリ使用状況の概要を確認するには、インフラストラクチャマップで 「メトリクス概要 」オプションを有効にしてください。 また、ダイナミック・フォーカス 機能を使用して、コンテナーのコンテキスト内でインフラストラクチャーの一部を識別し、分離することもできます。
デフォルトでは、CRI-O メトリックは 10 秒ごとに収集されます。 この間隔は、エージェント構成ファイル <agent_install_dir>/etc/instana/configuration.yml内で構成できます。
com.instana.plugin.crio:
stats:
interval: 10
CRI-O のコンテナダッシュボードには、コンテナの設定とパフォーマンス指標が表示されます。
コンテナを一時停止する
一時停止 コンテナーは、ポッドのネットワーク名前空間を保持するコンテナーです。 Kubernetes は一時停止コンテナーを作成して、各ポッドの IP アドレスを取得し、そのポッドに参加する他のすべてのコンテナーのネットワーク名前空間をセットアップします。
デフォルトでは、以下の理由により、インフラ (一時停止) コンテナーはインフラ・モニターから除外されます。
- 環境内のモニター対象コンテナーの数は、含まれるときに 2 倍になります。 この除外により、Instana のモニター・コストを削減できます。
- 一時停止コンテナーは、サイドカー・ネットワーク・ヘルパー・コンテナーとして機能するため、インフラストラクチャー・レベルではあまり多くの情報を提供しません。
構成データ
| 構成 | 説明 |
|---|---|
| ID | コンテナー ID |
| 名前 | コンテナ名 |
| 画像 | CRI-O の画像名 |
| IP | コンテナのIPアドレス |
| 作成日 | コンテナの作成日時 |
| CRI-Oバージョン | CRI-O のランタイムのバージョン番号 |
パフォーマンス・メトリック
パフォーマンス指標を収集するには、コマンドを実行 runc してください。
次の表は、CPUおよびメモリの使用状況に関する指標をまとめたものです:
| メトリック | 説明 | データ・ポイント |
|---|---|---|
| CPU 合計 % | CPU使用率の合計 | cpu.usage オブジェクト内に返されるキーの総数 |
| メモリー使用率 | 合計メモリー使用量 | オブジェクトmemory.raw 内に返された使用キー |
| メモリー使用率 | メモリ使用率(パーセント) | およびmemory.usage オブジェクトmemory.total から計算されます |
CPUメトリクスの収集
CRI-O センサーがメトリクスの収集を実行し、cgroupのCPU解析をエージェントに委ねます。 パーサーは、各cgroupのディレクトリパスからCPUステータスファイルを読み込みます。
パース処理の後、 CRI-O センサーから、CPUメトリクスが設定されたCPUオブジェクトが返されます。
以下の手順は、 CRI-O における CPU メトリクスの収集および解析のプロセスを概説したものです:
cgroup ディレクトリパスの特定:エージェントは、OS プロセスに基づいて cgroup のバージョン( v1 または v2 )およびそれぞれの cgroup ディレクトリパスを特定します:
- cgroup v2:
/proc/1/root/sys/fs/cgroupおよびcgroupPath - cgroup v1:
/proc/1/root/sys/fs/cgroup/cpuおよびcgroupPath
- cgroup v2:
cgroup( v2 および v1 )ディレクトリのCPU統計情報の解析:パーサーは、それぞれのcgroupディレクトリパスからCPUファイルを読み込みます。
v2 ディレクトリのcgroupについては:
次の表は、CPU オブジェクト内の ファイル
cpu.statから取得される使用状況およびスロットリングのメトリクスを一覧にしたものです:メトリック 説明 v2 ソース 使用量メトリック CPU使用率合計(ナノ秒単位) total=usage_usec* 1000cpu.statfileCPU使用率 percpu= 0(cgroup v2 は、CPU ごとの使用率を直接提供しない)cpu.statfileユーザー CPU 時間 user=user_usec* 1000(ナノ秒単位) 以下の注記を参照してくださいcpu.statfileシステム CPU 時間 kernel=system_usec* 1000(ナノ秒単位) 以下の注記を参照してくださいcpu.statfileスロットリングのメトリクス 期間数 periods=nr_periodscpu.statfileスロットリングが適用された期間の数 throttledPeriods=nr_throttledcpu.statfileスロットル時間 throttledTime=throttled_usec* 1000(ナノ秒単位)cpu.statfile注: 構文解析を行うには、と のuser_usec両方が利用system_usec可能である必要があります。 どちらかが利用できない場合、対応するCPU時間は に設定されます0。v1 ディレクトリのcgroupについては:
次の表は、CPUオブジェクト内のcgroup「 v1 」の使用状況およびスロットリングメトリクスを示しています
メトリック 説明 v1 ソース 使用量メトリック CPU使用率合計(ナノ秒単位) totalcpuacct.usagefileCPU使用率 percpuファイル cpuacct.usage_percpuから値のリストを設定しますユーザー CPU 時間 user=user* 1000000 (ナノ秒)cpuacct.statfileシステム CPU 時間 kernel=system* 1000000 (ナノ秒)cpuacct.statfileスロットリングのメトリクス 期間数 periods=nr_periodscpu.statfileスロットリングが適用された期間の数 throttledPeriods=nr_throttledcpu.statfileスロットル時間 throttledTime=throttled_timecpu.statfile
CPU メトリクスの更新と返却:
次の表は、CPU メトリクスとそれに対応するソースオブジェクトとの包括的な対応関係を示しています:
CPU メトリック ソース・オブジェクト CPU使用率の指標 cpu.usageオブジェクトcpuTotalUsageNanosecondscpu.usage.totalcpuSystemUsageNanosecondscpu.usage.kernelcpuUserUsageNanosecondscpu.usage.usercpuTotalUsagecpuTotalUsageNanoseconds(コンテナの一定期間における総CPU使用時間) ÷system delta(利用可能なシステムCPU時間の合計)cpuUserUsagecpuUserUsageNanosecondsdelta(指定された時間枠におけるコンテナのユーザーモードでのCPU使用時間) /system delta(利用可能なシステム全体のCPU時間)cpuSystemUsagecpuSystemUsageNanosecondsdelta(特定の時間枠における、システムモードまたはカーネルモードでのコンテナのCPU使用時間) / (利用system delta可能なシステムCPU時間の合計)スロットリングのメトリクス cpu.throttlingオブジェクトthrottlingCountcpu.throttling.throttledPeriodsthrottlingTimecpu.throttling.throttledTimeバックエンドから Instana のUIにCPUメトリクスを表示する:
次の表は、 Instana のUIに表示されるCPUメトリクスの概要を示しています:
CPU メトリック 説明 ソース値 Total(cpu.total_usage)合計 CPU 使用量 cpuTotalUsageKernel(cpu.system_usage)System CPU usage cpuSystemUsageUser(cpu.user_usage)ユーザーのCPU使用率 cpuUserUsageThrottling Count(cpu.throttling_count)スロットリングが適用された期間の数 throttlingCountThrottling Time(cpu.throttling_time)スロットル時間 throttlingTime
メモリメトリクスの収集
CRI-O センサーがメトリクスの収集を実行し、cgroupメモリの解析をエージェントに委ねます。 メモリパーサーは、各cgroupのディレクトリパスからメモリファイルを読み込みます。 パース処理の後、 CRI-O センサーから、メモリメトリクスが格納されたメモリオブジェクトが返されます。
以下の手順は、 CRI-O におけるメモリメトリクスの収集および解析のプロセスを概説したものです:
cgroup ディレクトリパスの特定:エージェントは、OS プロセスに基づいて cgroup のバージョン( v1 または v2 )およびそれぞれの cgroup ディレクトリパスを特定します:
- cgroup v2:
/proc/1/root/sys/fs/cgroupおよびcgroupPath - cgroup v1:
/proc/1/root/sys/fs/cgroup/memoryおよびcgroupPath
- cgroup v2:
cgroupディレクトリのメモリ統計情報の解析:パーサーは、各cgroupディレクトリのパスからメモリファイルを読み込みます。
v2 ディレクトリのcgroupについては:
次の表は、メモリメトリクスとそれに対応するソースファイルとの包括的な対応関係を示しています:
メモリーのメトリック ソース・ファイル ベースメモリ ベースメモリファイル usagememory.stat(file+anon)limitmemory.maxmaxmemory.peakスワップ・メモリー スワップファイル usagememory.swap.currentlimitmemory.swap.maxmaxmemory.swap.peak生メモリフィールド ( memory.raw)memory.statfileactiveAnonactive_anonactiveFileactive_fileinactiveAnoninactive_anoninactiveFileinactive_filetotalCachetotal_cachetotalRsstotal_rssメモリ領域 ( memory)memory.statfilecachefilerssanon注:v1 との互換性を確保するため、合計スワップメモリはベースメモリとスワップメモリの合計として計算されます: swap.usage = ベースメモリ使用量 + swap.usage。 swap.limit = ベースメモリ制限 + swap.limit swap.max = 0v1 ディレクトリのcgroupについては:
次の表は、メモリメトリクスとそれに対応するソースファイルとの包括的な対応関係を示しています:
メモリーのメトリック ソース・ファイル ベースメモリ ベースメモリファイル usagememory.usage_in_bytesmaxmemory.max_usage_in_byteslimitmemory.limit_in_bytesfailcntmemory.failcntスワップ・メモリー スワップファイル usagememory.memsw.usage_in_bytesmaxmemory.memsw.max_usage_in_byteslimitmemory.memsw.limit_in_bytesfailcntmemory.memsw.failcntカーネル・メモリー Kmemoryファイル usagememory.kmem.usage_in_bytesmaxmemory.kmem.max_usage_in_byteslimitmemory.kmem.limit_in_bytesfailcntmemory.kmem.failcntカーネル TCP メモリ Kmemoryの TCP ファイル usagememory.kmem.tcp.usage_in_bytesmaxmemory.kmem.tcp.max_usage_in_byteslimitmemory.kmem.tcp.limit_in_bytesfailcntmemory.kmem.tcp.failcnt生のメモリフィールド v2 と同様の分野 memory.statメモリ領域 ( memory)memory.statfilecachecachersstotal_rss
メモリメトリクスの更新と返却:
次の表は、メモリメトリクスとそれに対応するソースオブジェクトの対応関係を示しています:
メモリメトリクス ソース・オブジェクト メモリ使用量の指標 memory.usageオブジェクトusagememory.usage.usagemaxUsagememory.usage.maxlimitmemory.usage.limitメモリの生データ memory.rawオブジェクトactiveAnonmemory.raw.activeAnonactiveFilememory.raw.activeFileinactiveAnonmemory.raw.inactiveAnoninactiveFilememory.raw.inactiveFileメモリーのメトリック memoryオブジェクトtotalCachememory.cachetotalRssmemory.rssバックエンドから Instana のUIにメモリメトリクスを表示する:
Instana のUIには、以下のメモリメトリクスが表示されます:
メトリック ソース値 Memory Total RSS%(memory.total_rss_percent)total_rss/limitActive anonymous(memory.active_anon)activeAnonActive cache(memory.active_file)activeFileInactive anonymous(memory.inactive_anon)inactiveAnonInactive cache(memory.inactive_file)inactiveFileUsage(memory.usage)usageRSS(memory.total_rss)totalRssCache(memory.total_cache)totalCache
ブロックI/Oメトリクスの収集
CRI-O センサーがメトリクスの収集を実行し、cgroupのblk-io解析をエージェントに委ねます。 Block IO パーサーは、各 cgroup のディレクトリパスから blk-io 統計ファイルを読み込みます。 パース処理の後、 CRI-O センサーから、IO統計情報が設定されたBlkioオブジェクトが返されます。
以下の手順は、 CRI-O におけるブロック I/O メトリクスの収集および解析のプロセスを概説したものです:
cgroup ディレクトリパスの特定:エージェントは、OS プロセスに基づいて cgroup のバージョン( v1 または v2 )およびそれぞれの cgroup ディレクトリパスを特定します:
- cgroup v2:
/proc/1/root/sys/fs/cgroup+cgroupPath - cgroup v1:
/proc/1/root/sys/fs/cgroup/blkio+cgroupPath
- cgroup v2:
cgroupディレクトリのブロックI/O統計情報の解析:パーサーは、各cgroupディレクトリのパスからブロックI/Oファイルを読み込みます。
v2 ディレクトリのcgroupについては:
ファイル
io.statを読み込み、IOステータスエントリを含む2つのリストを返すioServiceBytesRecursiveリスト:I/Oサービスバイトの一覧ioServicedRecursiveリスト:I/O処理済みリスト
ファイル
io.stat内の生の操作を標準的な操作に変換します:rbytes/rios: 読むwbytes/wios: 書く
注: この操作により、IOStatrbytes/wbytesのエントリが値とともにリストIoServiceBytesRecursiveに追加されます。 この操作により、IOStatrios/wiosのエントリが値とともにリストIoServicedRecursiveに追加されます。v1 ディレクトリのcgroupについては:
- ファイルを
blkio.io_service_bytes解析し、サービスのバイト単位のI/O統計情報を直接設定します。(ioServiceBytesRecursiveリスト) - ファイルを
blkio.io_serviced解析し、サービス対象のI/O統計情報を直接設定します。(ioServicedRecursiveリスト)
- ファイルを
メジャーおよびマイナーデバイス番号を、IO statオブジェクトの各フィールドにマッピングする。
major、minor、operation、および値を含む2つのIOステータスエントリのリストを持つBlkioオブジェクトをエージェントに返す:
リスト 説明 ioServiceBytesRecursiveI/Oサービスバイトの一覧 ioServicedRecursive対応I/Oの一覧 リスト
IOServiceBytesRecursive内の およびtotalWritetotalReadの値を合計する:リスト ソース totalReadioServiceBytesRecursive.ioStat.value(読み取ったすべての値を合計する)totalWriteioServiceBytesRecursive.ioStat.value(すべての書き込み値を合計する)バックエンドから Instana のUIにブロックI/Oメトリクスを表示する:以下の表は、 Instana のUIに表示されるブロックI/Oメトリクスの概要を示しています:
メトリック ソース値 読む ( blkio.blk_read)totalRead書き込む ( blkio.blk_write)totalWrite
正常性シグニチャー
センサーごとに、着信メトリックに対して継続的に評価され、ユーザーへの影響に応じて問題またはインシデントを提起するために使用される正常性シグニチャーのキュレーション済み知識ベースがあります。
組み込みイベントは、エンティティのヘルスシグネチャの異常に基づいて課題やインシデントをトリガーし、 カスタムイベントは、任意のエンティティの個々のメトリクスのしきい値に基づいて課題やインシデントをトリガーします。
CRI-O センサーの組み込みイベントについては、 組み込みイベントのリファレンスを参照してください。
ログウィジェット
CRI-O センサーは、ネイティブでのログ収集に対応していません。 Instana CRI-O コンテナからログを収集するために、 OpenTelemetry Collectorを展開するには、 「 Kubernetes および Red Hat OpenShift ログの収集 」の手順に従うことをお勧めします。 ログを特定の CRI-O コンテナに関連付けるには、リンク先の説明に従って 属性を container.runtime 追加してください。