式による監視を行う

本機能では、式によって計算されたメトリックに対しての監視を行います。 当機能は、有償オプションとなります。Freeプランでは利用できません。また、現時点では実験的機能となっています。

式による監視の仕様について

  • 現在時刻より2分前のメトリックが監視対象になります
  • 監視間隔は5分ごとになります
  • 監視項目として設定可能な式は、グラフの系列が1本になるものだけになります
  • 式に使用しているメトリックが取得できない場合にはUnknownアラートが発生します
  • 監視項目の上限数は20です
  • Trialプラン及び有料プランでのみご利用いただけます

式による監視を設定する

画面左側メニューの「監視ルール」より「監視ルールを追加」のボタンをクリックします。「式による監視」をクリックすると以下の項目が表示されますので、各項目を入力して「作成」ボタンをクリックします。

  • 監視対象
      • 式エディタに監視対象メトリックを計算するための式を入力してください。式が正しく解釈できた場合は、右側のプレビューにグラフが描画されます
    • 閾値
      • Warning, Criticalの閾値を設定してください
  • 基本設定
    • 監視ルール名
      • 本監視定義の名前を記述してください
    • 監視ルールのメモ
      • 監視ルールの意図や、アラートが発生した時の対応などを自由に記述できます。この内容はアラート詳細画面やアラート通知に表示されます
  • オプション
    • 通知の再送間隔
      • アラートの状態が、指定された時間を超えても変化がない場合、再度通知します
    • 監視する式が安定するまでの遅延時間
      • 現在時刻より指定した時間だけ過去のメトリックを監視対象にします

監視ルールで利用可能な関数は以下のヘルプを参照してください。

mackerel.io

監視例:将来予測によるファイルシステム容量が不足するまでの日数の監視

Mackerelでは linearRegression(), timeLeftForecast()といった線形回帰の関数を利用できます。 式による監視の一例として、これらの関数を用いた将来予測機能による、ファイルシステムの空き容量が枯渇するまでの残り日数を監視してみましょう。

線形回帰した値が閾値になるまでの秒数を取得するtimeLeftForecast()を使います。

実際に監視するための式の一例は以下のようになります。

scale(timeLeftForecast(host(host_id, filesystem.drive.used), 3mo, 2000000000000), 1/86400)

上記は、「指定したホストのfilesystem.drive.usedメトリックの3ヶ月間の値を用いて線形回帰した値が、2TBに達するまでの日数」を得るための式となります。

式をひとつずつ分解して解説していきます。

まず、host(host_id, filesystem.drive.used) によって、指定したホストのfilesystem.drive.used メトリックが得られます。

これにtimeLeftForecast()を適用します。timeLeftForecast()の引数はそれぞれ、"metrics", "duration", "threshold"となり、上記の例では指定したホスト3ヶ月間の値を用いて線形回帰した値が、2000000000000byte(2TB)に達するまでの秒数が得られることになります。

最後に、得られたファイルシステム枯渇までの秒数を、scale()関数を用いて日数に換算しています。

このように、式による監視機能を用いることで、取得したメトリックに対して様々な視点から監視を行えます。