ホスト詳細画面やサービス詳細画面で表示されるメトリックの種類について解説します。
システムメトリック
システムメトリックとは、mackerel-agent をインストールすると自動的にホストに投稿されるメトリック群です。
Linux
loadavg, cpu, memory, disk, interface, filesystem の6種類のグラフが表示され、それぞれ以下のメトリック名の値が描画されます。
- loadavg(折れ線)
loadavg1loadavg5loadavg15
- cpu(積み上げ)
cpu.user.percentagecpu.iowait.percentagecpu.system.percentagecpu.idle.percentagecpu.nice.percentagecpu.irq.percentagecpu.softirq.percentagecpu.steal.percentagecpu.guest.percentage
- memory(積み上げ。ただし
total,swap_total,swap_used,swap_cachedは折れ線)- Kernel 3.14以降のLinux
memory.used(total - available で算出した値)memory.availablememory.totalmemory.swap_usedmemory.swap_cachedmemory.swap_total
- それ以外のLinux
memory.freememory.buffersmemory.cachedmemory.used(total - free - buffers - cached で算出した値)memory.totalmemory.swap_usedmemory.swap_cachedmemory.swap_total
- Kernel 3.14以降のLinux
- disk(折れ線)
disk.*.reads.deltadisk.*.writes.delta
- interface(折れ線)
interface.*.rxBytes.delta(受信バイト数)interface.*.txBytes.delta(送信バイト数)
- filesystem(折れ線)
filesystem.*.sizefilesystem.*.used
また、mackerel-agent を用いた場合の上記それぞれのメトリックの取得元は以下の通りです。mackerel-agent のソースコードは こちら で公開していますので併せてご確認ください。
- loadavg
/proc/loadavgの内容をパースすることで取得
- cpu
/proc/statの内容をパースすることで取得
- memory
/proc/meminfoの内容をパースすることで取得
- disk
/proc/diskstatsの内容をパースすることで取得
- interface
/proc/net/devの内容をパースすることで取得
- filesystem
dfコマンドの実行結果をパースすることで取得
Windows
processor queue length, cpu, memory, disk, interface, filesystem の6種類のグラフが表示され、それぞれ以下のメトリック名の値が描画されます。
- processor queue length(折れ線)
processor_queue_length
- cpu(積み上げ)
cpu.user.percentagecpu.system.percentagecpu.idle.percentage
- memory(積み上げ。ただし
total,pagefile_free,pagefile_totalは折れ線)memory.freememory.usedmemory.totalmemory.pagefile_freememory.pagefile_total
- disk(折れ線)
disk.*.reads.deltadisk.*.writes.delta
- interface(折れ線)
interface.*.rxBytes.delta(受信バイト数)interface.*.txBytes.delta(送信バイト数)
- filesystem(折れ線)
filesystem.*.sizefilesystem.*.used
また、mackerel-agent を用いた場合の上記それぞれのメトリックの取得元は以下の通りです。mackerel-agent のソースコードは こちら で公開していますので併せてご確認ください。
- processor queue length
- Windows Performance Data Helper API によって情報を取得
- cpu
- Windows Performance Data Helper API によって情報を取得
- memory
- Win32 API である
GlobalMemoryStatusExを呼び出した結果から取得
- Win32 API である
- disk
- WMI を使用して
Win32_PerfFormattedData_PerfDisk_LogicalDiskクラスから情報を取得
- WMI を使用して
- interface
- Windows Performance Data Helper API によって情報を取得
- filesystem
- Win32 API である以下の関数を呼び出した結果から取得し計算。
GetLogicalDriveStringsWQueryDosDeviceWGetVolumeInformationWGetDiskFreeSpaceExW
- Win32 API である以下の関数を呼び出した結果から取得し計算。
カスタムメトリック
カスタムメトリックとは、プラグインや Mackerel API などを利用してユーザが任意でホストに投稿できる、システムメトリック以外のメトリックです。
- 例:
custom.foo,custom.foo.bar- メトリック名の最後の
.(ドット)までが共通するメトリックを、ひとつのグラフに投稿します。 - メトリック名にはプレフィックスが必要です。mackerel-agent から投稿されるカスタムメトリックには
custom.が自動的に付与されます。(バージョン 0.6.1 以降) - カスタムメトリック名の詳しい仕様については こちら を参照してください。
- メトリック名の最後の
カスタムメトリックを投稿する方法については下記を参照してください。
- 公式プラグインを利用してカスタムメトリックを投稿する
- mackerel-agent からユーザー定義のカスタムメトリックを投稿する
- Mackerel API を利用してユーザー定義のカスタムメトリックを投稿する
サービスメトリック
サービスメトリックとは、特定のホストではなくサービスに紐付くメトリックです。URL 外形監視 をサービスに紐付けた際に可視化されるレスポンスタイムもサービスメトリックとして投稿されます。サービスメトリックのグラフは 各サービス の詳細画面で閲覧できます。
サービスメトリックを投稿する方法については Mackerel API ドキュメント の サービスメトリックの投稿 を参照してください。