Mackerelのカスタムダッシュボードで[式]を利用して値とグラフを表示してみる
こんにちは、コンサル部@大阪オフィスのTodaです。
本日はSaasの監視ソリューション、Mackerelのネタです。
Mackerelには独自のダッシュボードを作成する機能がありグラフや値の表示をする事ができます。
参照情報は[ホスト|ロール|サービスメトリック|式グラフ]または[ホストメトリック|サービスメトリック|式]から選択をします。
今回は値のカスタマイズができる[式グラフ][式]について試してみました。
※[式グラフ][式]の機能は実験的機能として提供されています。
今後サービスのアップデートにより仕様が変更される場合がございます。
やりたいこと
カスタムダッシュボードで[式グラフ][式]を利用して値の表示を試してみる。
[ホスト|ロール|サービスメトリック]で同等の情報が表示できるが、不必要な情報もあるため[式グラフ][式]にて絞り込みをおこなう。
- メモリの容量・使用量のみをグラフで表示する。
- メモリの容量(MB)、使用量(MB)、使用率(%)を値で表示する。
やってみる
コンソールにログイン
ご利用のアカウントにログインをします。
ダッシュボードの作成
ダッシュボードの追加
左メニューから[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はホスト詳細画面に表示されている情報になります。
ウィジェットの登録
式情報を入力後、[作成]ボタンをクリックする事でグラフの生成が完了します。
グラフの大きさは枠線をドラッグする事で変更する事ができます。
値(value)の表示設定
ウィジェット追加
値のアイコンをクリックしてドラッグ&ドロップします。
値(value)ウィジェットが新規配置されます。
ウィジェットの設定
値の配置をするとタイトル、メトリックのタイプ、少数点、単位を設定する事ができます。
今回、[メモリ容量]と[メモリ使用量]それぞれでオブジェクトを追加するため2点に分けて下記のように設定します。
[タイトル]:メモリ容量
[メトリックのタイプ]:式
[小数点以下の桁数]:2
[単位]:MB
[式]:
scale(host(%%-hostId-%%, memory.total), 0.000001)
[タイトル]:メモリ使用量
[メトリックのタイプ]:式
[小数点以下の桁数]:2
[単位]:MB
[式]:
scale(host(%%-hostId-%%, memory.used), 0.000001)
ウィジェットの登録
式情報を入力後、[作成]ボタンをクリックする事で値(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)の生成が完了します。
メモリ使用率が表示されていることを確認します。
ダッシュボードの保存
ダッシュボードの設定が完了したら、ページ下の更新(保存)ボタンをクリックしてください。
登録作業が完了します。
さいごに
今回はMackerelのカスタムダッシュボードで[式]を利用して値とグラフを表示してみました。
少しでもお客様のやりたいことの参考になればと考えております。