5.5.4. Prometheus データおよびクエリーの使用
統計名は Ceph の名前と同じで、無効な文字がアンダースコアに変換され、すべての名前の先頭に ceph_
が付きます。すべての Ceph デーモン統計には、ceph_daemon
ラベルがあります。そのラベルからデーモンのタイプと ID を識別します (例:osd.123
)。統計情報の中には、異なる種類のデーモンから得られるものもあるため、クエリを実行するときには、Ceph Monitorと RocksDB の統計情報が混ざらないように、osd
で始まる Ceph デーモンに絞り込む必要があります。グローバル Ceph ストレージクラスター統計には、レポート対象に応じたラベルが付けられています。たとえば、プールに関連するメトリクスには pool_id
ラベルが付けられます。コア Ceph のヒストグラムを表す長期的な平均値は、sum と count のパフォーマンスメトリクスのペアで表されます。
以下のクエリーの例は、Prometheus expression browser で使用できます。
OSD の物理ディスク使用状況を表示
(irate(node_disk_io_time_ms[1m]) /10) and on(device,instance) ceph_disk_occupation{ceph_daemon="osd.1"}
オペレーティングシステムから見た OSD の物理的な IOPS を表示
irate(node_disk_reads_completed[1m]) + irate(node_disk_writes_completed[1m]) and on (device, instance) ceph_disk_occupation{ceph_daemon="osd.1"}
プールおよび OSD メタデータシリーズ
特定のメタデータフィールドの表示とクエリーを可能にするために、特別なデータシリーズが出力されます。プールには、以下の例のような ceph_pool_metadata
フィールドがあります。
ceph_pool_metadata{pool_id="2",name="cephfs_metadata_a"} 1.0
OSD には、以下の例のような ceph_osd_metadata
フィールドがあります。
ceph_osd_metadata{cluster_addr="172.21.9.34:6802/19096",device_class="ssd",ceph_daemon="osd.0",public_addr="172.21.9.34:6801/19096",weight="1.0"} 1.0
node_exporter
でのドライブ統計の相関
Ceph からの Prometheus 出力は、Prometheus ノードエクスポーターからの汎用ノードモニタリングと併せて使用するように設計されています。Ceph OSD 統計値と汎用ノード監視ドライブ統計値を相関させると、以下の例のような特別なデータシリーズが出力されます。
ceph_disk_occupation{ceph_daemon="osd.0",device="sdd", exported_instance="node1"}
OSD ID でディスクの統計を取得するには、Prometheus クエリーの and
演算子またはアスタリスク (*) 演算子を使用します。すべてのメタデータメトリクスの値は 1
であるため、アスタリスク演算子で中立になります。アスタリスク演算子を使用すると、group_left
および group_right
グループ化修飾子を使用することができ、結果として得られるメトリックに、クエリの一方から追加ラベルが付けられます。以下は例になります。
rate(node_disk_bytes_written[30s]) and on (device,instance) ceph_disk_occupation{ceph_daemon="osd.0"}
label_replace の使用
label_replace
関数は、クエリのメトリックにラベルを追加したり、ラベルを変更したりすることができます。OSDとそのディスクの書き込み率を相関させるには、次のようなクエリーを使用できます。
label_replace(rate(node_disk_bytes_written[30s]), "exported_instance", "$1", "instance", "(.*):.*") and on (device,exported_instance) ceph_disk_occupation{ceph_daemon="osd.0"}
関連情報
- クエリー作成についての詳細は、Prometheus「querying basics」を参照してください。
-
詳細は、Prometheus の
label_replace
ドキュメントを参照してください。