【祝】Mackerelに特定時間中のアラート発報を抑止する「ダウンタイム設定」が追加されたので試してみました。 #mackerelio

こんばんわ、札幌のヨシエです。
日々アップデートを重ねているMackerelにダウンタイム設定が追加されましたので所感と使い方を書いていきます。

Mackerel側のヘルプページが未記載のため、更新次第内容を変更する可能性がございます。

ダウンタイム設定とは?

これまでのMackerelではアラート発報を抑止するためには3種類の方法がありました。

  • 監視ルールへのミュート設定
  • 監視対象ホストのステータス設定をstandby/maintenance/poweroffへ変更する
  • 通知チャンネル設定からオーガニゼーションの全通知を停止する

今回リリースされたダウンタイム設定は定期的に特定監視ルールを時間指定で止めることが出来る機能となります。

ユースケース

夜間帯のリソース要因によるアラート発報抑止

CPU/メモリ使用率の高騰が予想されるインスタンスに設定することで特定監視を止めることが出来ます。
また、その際にConnectivityルールは継続監視されるので処理中に何らか障害でインスタンスが停止した時のアラート通知を受けることが出来ます。

コストを落とすために一時的にインスタンスを削除または停止によるアラート発報抑止

上記の記載とは逆に日中帯は踏み台サーバーを利用する機会が多い環境だが、夜間帯は利用者がいないことで停止される運用が行われている場合がございます。
この環境で夜間帯にインスタンス停止を実施したことによるアラート発報を抑止できます。

実際に設定を行う

事前準備

準備としてテスト用のEC2インスタンスを起動し、Mackerel-Agentをインストールしました。

設定作業

ホスト画面から上部に配置されているNo Downtimesを選択します。

ダウンタイム設定が表示されるので「新規ダウンタイムを作成」を選択します。

以下のような画面が表示されますので、赤枠部分をそれぞれ入力/選択していきます。
今回アップデートされたダウンタイム機能は定期的にダウンタイムを設定する機能があります。

この機能を利用することによって冒頭の例で挙げた「夜間帯の高負荷処理によるCPU/メモリ使用率高騰」や「SystemsManagerによるインスタンス再起動」といった予期されるアラートを抑止することが実現できます。

注意として停止したい対象の監視ルールをAll monitorsを指定してダウンタイム設定を行うと、全ての監視ルールがダウンタイム対象となってインスタンスの死活監視や使用率といった全てのアラート検知が出来なくなります。 CPU使用率の高騰を防ぐ目的でダウンタイム設定を投入する時は監視ルールにCPU使用率監視ルールのみ選択しないとconnectivityルールなどの他ルールの検知が出来なくなり、アラート抑止中に他監視ルールが気づけなくなりますのでご注意ください。

設定を入れると以下のように設定状態が確認できます。

ホスト画面でダウンタイム設定が適用されていると赤色に変化し、適用されていない時間は黒色になります。

最後に

一時的に監視項目をミュートにしたいという欲求を見事に叶えてくれる素晴らしい機能でした。
注意点で記載しておりますが「停止対象の監視ルールを止める」ことで柔軟な設定が実現できるので、ぜひ活用頂ければと思います。