Mackerelのカスタムダッシュボードで[式]を利用して値とグラフを表示してみる

2021.02.01

こんにちは、コンサル部@大阪オフィスのTodaです。

本日はSaasの監視ソリューション、Mackerelのネタです。
Mackerelには独自のダッシュボードを作成する機能がありグラフや値の表示をする事ができます。
参照情報は[ホスト|ロール|サービスメトリック|式グラフ]または[ホストメトリック|サービスメトリック|式]から選択をします。 今回は値のカスタマイズができる[式グラフ][式]について試してみました。

※[式グラフ][式]の機能は実験的機能として提供されています。
今後サービスのアップデートにより仕様が変更される場合がございます。

やりたいこと

カスタムダッシュボードで[式グラフ][式]を利用して値の表示を試してみる。
[ホスト|ロール|サービスメトリック]で同等の情報が表示できるが、不必要な情報もあるため[式グラフ][式]にて絞り込みをおこなう。

  • メモリの容量・使用量のみをグラフで表示する。
  • メモリの容量(MB)、使用量(MB)、使用率(%)を値で表示する。

やってみる

コンソールにログイン

ご利用のアカウントにログインをします。

https://mackerel.io/

ダッシュボードの作成

ダッシュボードの追加

左メニューから[Dashboards]をクリックします。
表示されたダッシュボード一覧の上部にある[カスタムダッシュボードを追加]をクリックします。

ダッシュボードの作成

ダッシュボード名の設定

上部のダッシュボードの名称を入力します。
私はこの段階でダッシュボードを保存しております。

ダッシュボード名の設定

ダッシュボードの変更

保存したダッシュボードを再度開きます。
左メニューから作成したダッシュボード名をクリックします。
ダッシュボード内にあるギアのアイコンをクリックします。

ダッシュボードの変更

上記でダッシュボードの編集画面に移動します。

グラフの表示設定

ウィジェット追加

グラフのアイコンをクリックしてドラッグ&ドロップします。
グラフウィジェットが新規配置されます。

グラフウィジェット追加

ウィジェットの設定

グラフを配置するとタイトル、グラフのタイプ、表示期間を設定する事ができます。
下記のように設定します。

[タイトル]:メモリ容量・使用量
[グラフのタイプ]:式グラフ

グラフウィジェットの設定

式グラフの設定

グラフのタイプを[式グラフ]にする事で[式]を入力するフォームが表示されます。
こちらに表示したい内容を指示する関数を入力していきます。
関数の詳細は下記ページをご確認ください。

■カスタマイズしたグラフを表示する
https://mackerel.io/ja/docs/entry/advanced/advanced-graph#functions

■メトリック仕様
https://mackerel.io/ja/docs/entry/spec/metrics

利用するメトリックはメモリ容量(memory.total)・使用量(memory.used)になります。
2つの要素をグラフに表示するように設定します。

group(
	alias(scale(host(%%-hostId-%%, memory.total), 0.000001), 'メモリ容量'),
	alias(scale(host(%%-hostId-%%, memory.used), 0.000001), 'メモリ使用量')
)

式の中で利用している関数について説明します。

  • group(metrics, metrics)
    メトリック列を1つにまとめます。グラフに2つの要素を入れるため利用しています。
  • alias(metrics, 'name')
    メトリック列の名称を任意設定します。
  • scale(metrics, factor)
    定数倍したメトリックを返します。メトリックはバイト表示になるためMBに直すため0.000001掛けるようにします。
  • host(hostId, metricName)
    ホストIDのメトリックを返します。

※ホストIDはホスト詳細画面に表示されている情報になります。

ホストID

ウィジェットの登録

式情報を入力後、[作成]ボタンをクリックする事でグラフの生成が完了します。
グラフの大きさは枠線をドラッグする事で変更する事ができます。

グラフウィジェットの登録

値(value)の表示設定

ウィジェット追加

値のアイコンをクリックしてドラッグ&ドロップします。
値(value)ウィジェットが新規配置されます。

値(value)ウィジェット追加

ウィジェットの設定

値の配置をするとタイトル、メトリックのタイプ、少数点、単位を設定する事ができます。
今回、[メモリ容量]と[メモリ使用量]それぞれでオブジェクトを追加するため2点に分けて下記のように設定します。

[タイトル]:メモリ容量
[メトリックのタイプ]:式
[小数点以下の桁数]:2
[単位]:MB
[式]:

scale(host(%%-hostId-%%, memory.total), 0.000001)

[タイトル]:メモリ使用量
[メトリックのタイプ]:式
[小数点以下の桁数]:2
[単位]:MB
[式]:

scale(host(%%-hostId-%%, memory.used), 0.000001)

ウィジェットの登録

式情報を入力後、[作成]ボタンをクリックする事で値(value)の生成が完了します。
メモリ容量と使用量の値が表示されていることを確認します。

値(value)ウィジェットの登録

値(value)で利用率表示設定

利用率(%)はMackerelメトリックの中に存在しません。
表示をする場合、独自で計算をして表示する必要があります。

使用率の計算は下記を想定します。
[利用率(%)] = ([メモリ使用量] / [メモリ容量]) * 100

使用率の値(value)を設定

値(value)の設定 をおこない式入力ができる状態にします。
入力内容は下記のように設定します。

[タイトル]:メモリ使用率
[メトリックのタイプ]:式
[小数点以下の桁数]:0 ※少数点以下の端数は切ります。
[単位]:%
[式]:

scale(
	divide(
		scale(host(%%-hostId-%%, memory.used), 0.000001),
		scale(host(%%-hostId-%%, memory.total), 0.000001)
	),
	100
)

式の中で利用している関数について説明します。

  • scale(metrics, factor)
    定数倍したメトリックを返します。百分率(%)表示にするため100掛けるようにしています。
  • divide(metrics, metrics)
    1つ目の引数のメトリックを2つ目の引数のメトリックで割ったメトリックを返します。

使用率の値(value)の登録

式情報を入力後、[作成]ボタンをクリックする事で値(value)の生成が完了します。
メモリ使用率が表示されていることを確認します。

使用率の値(value)の登録

ダッシュボードの保存

ダッシュボードの設定が完了したら、ページ下の更新(保存)ボタンをクリックしてください。
登録作業が完了します。

ダッシュボードの保存

さいごに

今回はMackerelのカスタムダッシュボードで[式]を利用して値とグラフを表示してみました。
少しでもお客様のやりたいことの参考になればと考えております。