13.2. 仮想リソースの Prometheus クエリー


Red Hat OpenShift Service on AWS モニタリングダッシュボードを使用して、仮想化メトリクスをクエリーします。OpenShift Virtualization は、ネットワーク、ストレージ、ゲストメモリースワッピングなどのクラスターインフラストラクチャーリソースの消費を監視するために使用できるメトリクスを提供します。メトリクスを使用して、ライブマイグレーションのステータスを照会することもできます。

13.2.1. 前提条件

  • ゲストメモリースワップクエリーがデータを返すには、仮想ゲストでメモリースワップを有効にする必要があります。

Red Hat OpenShift Service on AWS メトリクスクエリーブラウザーを使用して Prometheus Query Language (PromQL) でクエリーを実行し、グラフでメトリクスを可視化して検証できます。この機能により、クラスターの状態と、モニターしているユーザー定義のワークロードに関する情報が提供されます。

dedicated-admin またはすべてのプロジェクトの表示パーミッションを持つユーザーとして、メトリクス UI ですべてのデフォルト Red Hat OpenShift Service on AWS およびユーザー定義プロジェクトのメトリクスにアクセスできます。

注記

専任の管理者のみが、Red Hat OpenShift Service on AWS モニタリングで提供されるサードパーティーの UI にアクセスできます。

メトリクス UI には、すべてのプロジェクトの CPU、メモリー、帯域幅、ネットワークパケットなどの定義済みクエリーが含まれています。カスタムの Prometheus Query Language (PromQL) クエリーを実行することもできます。

前提条件

  • dedicated-admin ロールまたはすべてのプロジェクトの表示パーミッションを持つユーザーとしてクラスターにアクセスできる。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. Red Hat OpenShift Service on AWS Web コンソールで、Observe Metrics をクリックします。
  2. 1 つ以上のクエリーを追加するために、次のいずれかの操作を実行します。

    Expand
    オプション説明

    既存のクエリーを選択する

    Select query ドロップダウンリストから、既存のクエリーを選択します。

    カスタムクエリーを作成する

    Prometheus Query Language (PromQL) クエリーを Expression フィールドに追加します。

    PromQL 式を入力すると、オートコンプリートの提案がドロップダウンリストに表示されます。これらの提案には、関数、メトリクス、ラベル、および時間トークンが含まれます。キーボードの矢印を使用して、提案された項目の中から 1 つを選択し、Enter キーを押して、その項目を式に追加します。提案された項目の上にマウスポインターを移動すると、その項目の簡単な説明が表示されます。

    複数のクエリーを追加する

    Add query をクリックします。

    既存のクエリーを複製する

    クエリーの横にあるオプションメニュー kebab をクリックし、Duplicate query を選択します。

    クエリーの実行を無効する

    クエリーの横にあるオプションメニュー kebab をクリックし、Disable query を選択します。

  3. 作成したクエリーを実行するために、Run queries をクリックします。クエリーからのメトリクスはプロットで可視化されます。クエリーが無効な場合は、UI にエラーメッセージが表示されます。

    注記
    • 時系列グラフを描画する場合、大量のデータを操作するクエリーにより、タイムアウトが発生したり、ブラウザーに過負荷がかかったりする可能性があります。これを回避するには、Hide graph をクリックし、メトリクステーブルのみを使用してクエリーを調整してください。次に、使用できるクエリーを確認した後に、グラフを描画できるようにプロットを有効にします。
    • デフォルトでは、クエリーテーブルに、すべてのメトリクスとその現在の値をリスト表示する拡張ビューが表示されます。クエリーの拡張ビューを最小化するには、下矢印 (˅) をクリックします。
  4. オプション: このクエリーのセットを今後再度使用するには、ページの URL を保存します。
  5. 視覚化されたメトリクスを調べます。最初に、有効な全クエリーの全メトリクスがプロットに表示されます。次のいずれかの操作を実行して、表示するメトリクスを選択します。

    Expand
    オプション説明

    クエリーのすべてのメトリクスを非表示にする

    クエリーのオプションメニュー kebab をクリックし、Hide all series をクリックします。

    特定のメトリクスを非表示にする

    クエリーテーブルに移動し、メトリクス名の近くにある色付きの四角形をクリックします。

    プロットを拡大し、時間範囲を変更する

    次のいずれかの操作を実行します。

    • プロットを水平にクリックし、ドラッグして、時間範囲を視覚的に選択します。
    • メニューを使用して時間範囲を選択します。

    時間範囲をリセットする

    Reset zoom をクリックします。

    特定の時点におけるすべてのクエリーの出力を表示する

    プロット上の目的のポイントにマウスを移動します。クエリーの出力がポップアップボックスに表示されます。

    プロットを非表示にする

    Hide graph をクリックします。

Red Hat OpenShift Service on AWS メトリクスクエリーブラウザーを使用して Prometheus Query Language (PromQL) でクエリーを実行し、グラフでメトリクスを可視化して検証できます。この機能により、モニタリングしているユーザー定義ワークロードに関する情報が提供されます。

開発者として、メトリクスのクエリー時にプロジェクト名を指定する必要があります。選択したプロジェクトのメトリクスを表示するには、必要な権限が必要です。

メトリクス UI には、CPU、メモリー、帯域幅、ネットワークパケットなどの定義済みクエリーが含まれています。これらのクエリーは、選択したプロジェクトに制限されています。プロジェクト用のカスタムの Prometheus Query Language (PromQL) クエリーを実行することもできます。

注記

開発者は Red Hat OpenShift Service on AWS モニタリングで提供されるサードパーティーの UI にアクセスできません。

前提条件

  • 開発者として、またはメトリクスで表示しているプロジェクトの表示権限を持つユーザーとしてクラスターへのアクセスがある。
  • ユーザー定義プロジェクトのモニタリングが有効化されている。
  • ユーザー定義プロジェクトにサービスをデプロイしている。
  • サービスのモニター方法を定義するために、サービスの ServiceMonitor カスタムリソース定義 (CRD) を作成している。

手順

  1. Red Hat OpenShift Service on AWS Web コンソールで、Observe Metrics をクリックします。
  2. 1 つ以上のクエリーを追加するために、次のいずれかの操作を実行します。

    Expand
    オプション説明

    既存のクエリーを選択する

    Select query ドロップダウンリストから、既存のクエリーを選択します。

    カスタムクエリーを作成する

    Prometheus Query Language (PromQL) クエリーを Expression フィールドに追加します。

    PromQL 式を入力すると、オートコンプリートの提案がドロップダウンリストに表示されます。これらの提案には、関数、メトリクス、ラベル、および時間トークンが含まれます。キーボードの矢印を使用して、提案された項目の中から 1 つを選択し、Enter キーを押して、その項目を式に追加します。提案された項目の上にマウスポインターを移動すると、その項目の簡単な説明が表示されます。

    複数のクエリーを追加する

    Add query をクリックします。

    既存のクエリーを複製する

    クエリーの横にあるオプションメニュー kebab をクリックし、Duplicate query を選択します。

    クエリーの実行を無効する

    クエリーの横にあるオプションメニュー kebab をクリックし、Disable query を選択します。

  3. 作成したクエリーを実行するために、Run queries をクリックします。クエリーからのメトリクスはプロットで可視化されます。クエリーが無効な場合は、UI にエラーメッセージが表示されます。

    注記
    • 時系列グラフを描画する場合、大量のデータを操作するクエリーにより、タイムアウトが発生したり、ブラウザーに過負荷がかかったりする可能性があります。これを回避するには、Hide graph をクリックし、メトリクステーブルのみを使用してクエリーを調整してください。次に、使用できるクエリーを確認した後に、グラフを描画できるようにプロットを有効にします。
    • デフォルトでは、クエリーテーブルに、すべてのメトリクスとその現在の値をリスト表示する拡張ビューが表示されます。クエリーの拡張ビューを最小化するには、下矢印 (˅) をクリックします。
  4. オプション: このクエリーのセットを今後再度使用するには、ページの URL を保存します。
  5. 視覚化されたメトリクスを調べます。最初に、有効な全クエリーの全メトリクスがプロットに表示されます。次のいずれかの操作を実行して、表示するメトリクスを選択します。

    Expand
    オプション説明

    クエリーのすべてのメトリクスを非表示にする

    クエリーのオプションメニュー kebab をクリックし、Hide all series をクリックします。

    特定のメトリクスを非表示にする

    クエリーテーブルに移動し、メトリクス名の近くにある色付きの四角形をクリックします。

    プロットを拡大し、時間範囲を変更する

    次のいずれかの操作を実行します。

    • プロットを水平にクリックし、ドラッグして、時間範囲を視覚的に選択します。
    • メニューを使用して時間範囲を選択します。

    時間範囲をリセットする

    Reset zoom をクリックします。

    特定の時点におけるすべてのクエリーの出力を表示する

    プロット上の目的のポイントにマウスを移動します。クエリーの出力がポップアップボックスに表示されます。

    プロットを非表示にする

    Hide graph をクリックします。

 //
// * virt/support/virt-prometheus-queries.adoc
Copy to Clipboard Toggle word wrap

13.2.4. 仮想化メトリクス

以下のメトリクスの記述には、Prometheus Query Language (PromQL) クエリーのサンプルが含まれます。これらのメトリクスは API ではなく、バージョン間で変更される可能性があります。仮想化メトリクスの完全なリストは、KubeVirt components metrics を参照してください。

注記

以下の例では、期間を指定する topk クエリーを使用します。その期間中に仮想マシン (VM) が削除された場合でも、クエリーの出力に依然として表示されます。

13.2.4.1. 仮想 CPU メトリクス

以下のクエリーは、入出力 I/O) を待機している仮想マシンを特定します。

kubevirt_vmi_vcpu_wait_seconds_total
仮想マシンの仮想 CPU の I/O の待機時間 (秒単位) を返します。タイプ: カウンター。

'0' より大きい値は、仮想 CPU は実行する用意ができているが、ホストスケジューラーがこれをまだ実行できないことを意味します。実行できない場合には I/O に問題があることを示しています。

注記

仮想 CPU メトリクスをクエリーするには、最初に schedstats=enable カーネル引数を MachineConfig オブジェクトに適用する必要があります。このカーネル引数を使用すると、デバッグとパフォーマンスチューニングに使用されるスケジューラーの統計が有効になり、スケジューラーに小規模な負荷を追加できます。

kubevirt_vmi_vcpu_delay_seconds_total
仮想 CPU がホストスケジューラーによってキューに入れられたが、すぐに実行できなかった累積時間 (秒単位) を返します。この遅延は、仮想マシンには スチールタイム と表示されます。これは、ホストが他のワークロードを実行している間に失われた CPU 時間です。スチールタイムは、パフォーマンスに影響を与える可能性があり、多くの場合、ホスト上の CPU のオーバーコミットメントまたは競合を示します。タイプ: カウンター。

仮想 CPU 遅延クエリーの例

irate(kubevirt_vmi_vcpu_delay_seconds_total[5m]) > 0.05 
1
Copy to Clipboard Toggle word wrap
1
このクエリーは、5 分間の 1 秒あたりの平均遅延を返します。値が高い場合は、ノード上で CPU のオーバーコミットまたは競合が発生している可能性があります。

仮想 CPU 待機時間クエリーの例

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_vcpu_wait_seconds_total[6m]))) > 0 
1
Copy to Clipboard Toggle word wrap
1
このクエリーは、6 分間の任意の全タイミングで I/O を待機する上位 3 の仮想マシンを返します。

13.2.4.2. ネットワークメトリクス

以下のクエリーは、ネットワークを飽和状態にしている仮想マシンを特定できます。

kubevirt_vmi_network_receive_bytes_total
仮想マシンのネットワークで受信したトラフィックの合計量 (バイト単位) を返します。タイプ: カウンター。
kubevirt_vmi_network_transmit_bytes_total
仮想マシンのネットワーク上で送信されるトラフィックの合計量 (バイト単位) を返します。タイプ: カウンター。

ネットワークトラフィッククエリーの例

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_network_receive_bytes_total[6m])) + sum by (name, namespace) (rate(kubevirt_vmi_network_transmit_bytes_total[6m]))) > 0 
1
Copy to Clipboard Toggle word wrap
1
このクエリーは、6 分間の任意のタイミングで最大のネットワークトラフィックを送信する上位 3 の仮想マシンを返します。

13.2.4.3. ストレージメトリクス

13.2.4.3.1. ストレージ関連のトラフィック

以下のクエリーは、大量のデータを書き込んでいる仮想マシンを特定できます。

kubevirt_vmi_storage_read_traffic_bytes_total
仮想マシンのストレージ関連トラフィックの合計量 (バイト単位) を返します。タイプ: カウンター。
kubevirt_vmi_storage_write_traffic_bytes_total
仮想マシンのストレージ関連トラフィックのストレージ書き込みの合計量 (バイト単位) を返します。タイプ: カウンター。

ストレージ関連のトラフィッククエリーの例

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_storage_read_traffic_bytes_total[6m])) + sum by (name, namespace) (rate(kubevirt_vmi_storage_write_traffic_bytes_total[6m]))) > 0 
1
Copy to Clipboard Toggle word wrap
1
上記のクエリーは、6 分間の任意のタイミングで最も大きなストレージトラフィックを送信する上位 3 の仮想マシンを返します。
13.2.4.3.2. ストレージスナップショットデータ
kubevirt_vmsnapshot_disks_restored_from_source
ソース仮想マシンから復元された仮想マシンディスクの総数を返します。タイプ: ゲージ。
kubevirt_vmsnapshot_disks_restored_from_source_bytes
ソース仮想マシンから復元された容量をバイト単位で返します。タイプ: ゲージ。

ストレージスナップショットデータクエリーの例

kubevirt_vmsnapshot_disks_restored_from_source{vm_name="simple-vm", vm_namespace="default"} 
1
Copy to Clipboard Toggle word wrap
1
このクエリーは、ソース仮想マシンから復元された仮想マシンディスクの総数を返します。
kubevirt_vmsnapshot_disks_restored_from_source_bytes{vm_name="simple-vm", vm_namespace="default"} 
1
Copy to Clipboard Toggle word wrap
1
このクエリーは、ソース仮想マシンから復元された容量をバイト単位で返します。
13.2.4.3.3. I/O パフォーマンス

以下のクエリーで、ストレージデバイスの I/O パフォーマンスを判別できます。

kubevirt_vmi_storage_iops_read_total
仮想マシンが実行している 1 秒あたりの書き込み I/O 操作の量を返します。タイプ: カウンター。
kubevirt_vmi_storage_iops_write_total
仮想マシンが実行している 1 秒あたりの読み取り I/O 操作の量を返します。タイプ: カウンター。

I/O パフォーマンスクエリーの例

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_storage_iops_read_total[6m])) + sum by (name, namespace) (rate(kubevirt_vmi_storage_iops_write_total[6m]))) > 0 
1
Copy to Clipboard Toggle word wrap
1
上記のクエリーは、6 分間の任意のタイミングで最も大きな I/O 操作を実行している上位 3 の仮想マシンを返します。

13.2.4.4. ゲストメモリーのスワップメトリクス

以下のクエリーにより、メモリースワップを最も多く実行しているスワップ対応ゲストを特定できます。

kubevirt_vmi_memory_swap_in_traffic_bytes
仮想ゲストがスワップされているメモリーの合計量 (バイト単位) を返します。タイプ: ゲージ。
kubevirt_vmi_memory_swap_out_traffic_bytes
仮想ゲストがスワップアウトされているメモリーの合計量 (バイト単位) を返します。タイプ: ゲージ。

メモリースワップクエリーの例

topk(3, sum by (name, namespace) (rate(kubevirt_vmi_memory_swap_in_traffic_bytes[6m])) + sum by (name, namespace) (rate(kubevirt_vmi_memory_swap_out_traffic_bytes[6m]))) > 0 
1

+
Copy to Clipboard Toggle word wrap
1
上記のクエリーは、6 分間の任意のタイミングでゲストが最も大きなメモリースワップを実行している上位 3 の仮想マシンを返します。
注記

メモリースワップは、仮想マシンがメモリー不足の状態にあることを示します。仮想マシンのメモリー割り当てを増やすと、この問題を軽減できます。

13.2.4.5. AAQ Operator メトリクスの監視

リソースクォータを監視するために、Application Aware Quota (AAQ) コントローラーによって次のメトリクスが公開されます。

kube_application_aware_resourcequota
AAQ Operator リソースによって適用されている現在のクォータ使用量と CPU およびメモリーの制限を返します。タイプ: ゲージ。
kube_application_aware_resourcequota_creation_timestamp
AAQ Operator リソースが作成された時刻を UNIX タイムスタンプ形式で返します。タイプ: ゲージ。

13.2.4.6. ライブマイグレーションのメトリクス

次のメトリクスをクエリーして、ライブマイグレーションのステータスを表示できます。

kubevirt_vmi_migration_data_processed_bytes
新しい仮想マシン (VM) に移行されたゲストオペレーティングシステムデータの量。タイプ: ゲージ。
kubevirt_vmi_migration_data_remaining_bytes
移行されていないゲストオペレーティングシステムデータの量。タイプ: ゲージ。
kubevirt_vmi_migration_memory_transfer_rate_bytes
ゲストオペレーティングシステムでメモリーがダーティーになる速度。ダーティメモリーとは、変更されたがまだディスクに書き込まれていないデータです。タイプ: ゲージ。
kubevirt_vmi_migrations_in_pending_phase
保留中の移行の数。タイプ: ゲージ。
kubevirt_vmi_migrations_in_scheduling_phase
スケジュール移行の数。タイプ: ゲージ。
kubevirt_vmi_migrations_in_running_phase
実行中の移行の数。タイプ: ゲージ。
kubevirt_vmi_migration_succeeded
正常に完了した移行の数。タイプ: ゲージ。
kubevirt_vmi_migration_failed
失敗した移行の数。タイプ: ゲージ。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat