Monitor(監視)機能の設定ガイド

Monitor(監視)機能のより詳しいレファレンスは、Monitoringレファレンス ページを参照して下さい。

インフラ全体を一箇所で監視しようとする場合、そのインフラが危機的な状況になっていることを検知する方法を確立するのは重要な作業です。 Datadogでは、能動的にメトリクス, インテグレーション, ネットワークの接続状態, その他を監視してくれるMonitor機能を設定することができます。

一度Monitor機能を設定しておけば、条件が満たされた時に通知を受けることができます。 電子メールでチームメンバーに通知することもでき、サードパーティのサービス(例えばPagerdutyまたは Hipchat)やwebhooksを使い、他のサービスと連携して通知を送信することもできます。

通知を送信したMonitorはイベントストリームに表示され、そのアプリケーションやインフラの問題解決に向けたコラボレーションができるようになります。DatadogのTriggered Monitorsのページには、通知済み状態のMonitorの項目がリスト表示されます。Manage Monitorsのページには全てのMonitorが表示され、それらを管理することができるように成っています。

用語集

以下は、このガイドで使用している用語の簡単な概要になります。

  • Status: 各Agent Checkは、ホスト上で定期的に実行されOK, WARNING, CRITICALのステータスをDatadogに送信します。
  • Check: Agent Checkのことで、複数のステータスを送信します。
  • Monitor: Agent Checkのステータスやメトリクスの閾値の確認手順、その他のアラート条件を元に通知を送信します。
  • Monitorタイプ: host-, metric-, integration-, process-, network-, event-based, customがあります。 特定のMonitorタイプの詳細に関しては、Monitoringレファレンス ページを参照して下さい。
  • タグ: 各メトリクスやホストに対して付けることができるラベルです。タグの詳細に関しては、Tagging ページを参照して下さい。

新しいMonitorの作成

Create Monitorsのページへ移動するには、メインメニューのMonitorsタブからドロップダウンメニューのNew Monitorを選択します(テーマの選択次第により、メインメニューは画面の左側あるいは上部に配置されています)。ページが表示されると各Monitorタイプが左側に一覧で表示されます。このガイドでは、メトリクスを対象にしたMonitorタイプについての設定方法を説明していきます。より詳しい各Monitorタイプの設定方法については、Monitoringレファレンスページを参照して下さい。

nav

監視する対象の設定

  1. メトリクスとそのメトリクスを監視する範囲(スコープ)を設定します。

    metric scope

    Datadogに送信している全てのメトリクスをもとにMonitor設定を作成することができます。 この項目では、グラフ表示に使っている標準的な対象範囲(スコープ)の指定の規則が適用されます。 この規則の詳細に関しては、グラフ表示入門のページの対象範囲の指定(scope)を参照してください。

    <!–

    1. Select the alert grouping. –>
  2. アラートグループを選択します。 alert grouping

    Simple Alertは、全てのレポートソースをまとめて監視します。”Set alert conditions”のセクションで設定した条件に合致した場合、アラートを1回送信します。この設定は、単一ホストから送信されてくるメトリクスを監視するようなケースに最適です。例えば、”avg of system.cpu.iowait over host:bits”のような設定をしてる場合です。更に、”sum of nginx.bytes.net over region:us-east“のように複数のホストの値を集計して単一メトリクスとして監視したい場合にも有効です。

    Multi Alertでは、パラメータとして指定したグループについて、複数のレポートソースからのアラートを通知することができます。例えば、ディスク容量に関するアラートを通知する場合、ホストとデバイスについてグループを指定すると良いでしょう。JSONでクエリを定義する場合は以下です。

        avg:system.disk.in_use{*} by {host,device}
    

    このように設定することにより、各ホストの各デバイス毎にディスクスペースが無くなった際のアラートを通知することができるようになります。

    <!–

    1. Select the alert type. –>
  3. アラートのタイプを選択します。

    alert type

    threshold alertは、時間枠内のメトリクス値と指定した閾値を比較します。更に、アラート条件セクションには、追加で設定可能なオプションもあります。このアラートタイプは一般的なアラートであり、正常な範囲か値が事前に分かっている場合に使用します。

    change alertは、最近のデータポイントの値に対する数分前の値の変化量または変化率と指定した閾値を比較します。 比較しているデータポイントの値は単一点の値ではなく、”Set alert conditions”のセクションで指定されたパラメータで計算されたものになります。

    このアラートタイプは、メトリクスのゆっくりとした変化はもちろん、急速なスパイクやドロップを追跡するのに有効であり、そのメトリクスの正常な範囲や値が事前に分かっていない場合に特に有効です。 注: このアラートの為の計算値は絶対値ではありません。従って下に向かう変化は、マイナス値になります。

    <!–

    1. Select the alert conditions ###Define the conditions
    2. Select the alert conditions –><!–on average: The series will be averaged to produce a single value that will be checked against the threshold.

    at least once: If any single value in the generated series crosses the threshold then an alert will be triggered.

    at all times: If every point in the generated series is outside the threshold then an alert will be triggered.

    in total: If the summation of every point in the series is outside the threshold then an alert will be triggered. –>

    アラート条件の設定

  4. アラート条件の設定をします。

    アラートタイプによって、選択できるthresholdオプションは若干異なります。どちらのタイプでも、閾値と比較タイプを設定します。閾値を変更する毎に、グラフ上のカットオフポイントを示すマーカーの位置が更新されて表示されます。

    metric threshold

    メトリクスの閾値を設定する際、その値に単位をつけて入力することができます。例えば、system.disk.usedを監視する場合、20GBを閾値として設定することができます。

    threshold alert の場合、集計期間内に含まれるデータの集計方法 を決めるオプションを選択することができます。アラートエンジンは、別の時系列データを生成し選択された集計を実行します。

    それぞれのオプションの詳細は以下のようになります:

    • on average(平均): 時系列データには、平均化の処理を行い単一の値を導きだします。その後、閾値と比較してチェックします。
    • at least once(最低1回): 生成された時系列データ内のどれかの値が閾値を超えている場合、アラートが発報されます。
    • at all times(常時): 生成された時系列データの全てのポイントが閾値を超えている場合に、アラートが発報されます。
    • in total(合計): 時系列データの全てのポイントの合計が閾値を超えている場合に、アラートが発報されます。

    • 注意: *on average*と*at all times*の集計は、最終的に受信したデータが揃っていることを*必要条件*としています。このことは、全ての時系列データが完全に揃っていることを要求しているわけではなく、集計に使うデータのギャップが1分以上空いていないことを要求しています。言い換えれば、1分以上間隔の空くメトリクスに関しては、*at least once*または*in total*を使用することをお勧めします。

    change alertオプションを選択している場合は、追加で設定可能な項目があります。

    • change は値そのものの変化量を意味し、% change はその値の過去の値との変化量を意味します (つまり過去の値が2で現在が4の場合、% change は100%になります)。
    • 比較する値の変化は、設定された時間枠の範囲内で指定します。時間枠は5分から24時間の間で指定が可能です (最短で5分前の値と、最大で24時間前の値との比較)。
    • threshold alert とほぼ同じように、集計期間集計期間内に含まれるデータの集計方法 を設定します。

  5. 必要に応じて、一定時間以上データが届かない場合notify on no data(オプション)を設定することができます。このオプションを設定する時間枠は、先の条件設定で設定した時間枠の2倍以上の時間枠である必要があります。例えば、過去5分のメトリクスを基にアラートを設定しているなら、データが届いていないことを通知する前に、少なくとも10分間以上の時間を設定する必要があります。

  6. automatically resolve the monitor from a triggered state(アラートが発報している状態を自動的に解除する)オプションを選択することができます。問題が解決したときのみアラートが解除されるのが望ましいため、一般的にこのオプションはOFFにしておくことをお勧めします。

このオプションの最も一般的なユースケースは、非常に時間の離れたエラーのカウンターです。エラーが発生しなくなると、Datadogへのメトリクスのレポーティングも止まります。一度発報状態になったアラートを解除するためのデータが届いていないので、そのアラートを解除するために、自動での解除が必要になります。

通知の設定

notification

  1. Monitorの通知にタイトルを付けましょう。多くの場合、簡潔な説明を使用することが重要です。なぜならばチームメンバーが、何が起こっているかを直ぐに理解することができるからです。

  2. Monitorの通知本文を入力します。このフィールドには、Datadogの@-notification構文の他に標準的なmarkdownフォーマットでも記述することができます。加えて、単に@their-emailとしてメールアドレスを記述することにより、Datadogに登録していないメンバーにもメールによって通知を送信することができます(例えばuser@example.comなら@user@example.comと記述)。

Monitorの通知本文の一般的なユースケースは、障害を解決するための詳細な手順を記述することです。例えばデータベースを監視している場合には、セカンダリーとしてスタンバイしているノードのフェールオーバーの手順を記しておくと良いでしょう。全てのケースにおいて、メッセージ本文には可能な限り多くの情報を記すように心がけましょう。

  1. 必要に応じてMonitor renotificationを有効にしてください。このオプションは、発報しているMonitorに解決の旨のチェックマークがつけられまで、チームメンバーに注意喚起を促し続けるためには良い手段です。このオプションを有効にすると、Monitorが再通知する際、オリジナルのメッセージに加えて送信するエスカレーションメッセージを設定することができます。

注釈: 通知の嵐を避けるために、20秒の間に発生した同一 monitor ID/アラートタイプをまとめる新たなグループ通知が実装されました。このグループ通知では、20秒のグループのうち最初の2つの通知は通常通り送信され、その他のすべての通知は最初の2つの通知の後に1つのメッセージとしてまとめて送信されます。(この機能は標準の通知方法として実装されておりますので、特に設定は不要です)

ダウンタイムを設定する

■◎ここから◎■

ダウンタイムの管理

Manage Downtime のページへ移動するには、メインメニューの”Monitors”タブからドロップダウンメニューの”Manage Downtime” を選択します。 他のMonitor設定ページの上部にある”Manage Downtime” リンクを選択することで移動することも可能です。

downtime-nav

“Manage Downtime”ページでは、アクティブなものとスケジュールされたもの、両方のダウンタイムのリストが表示されます。各ダウンタイムを選択することで、対象となるホストとMonitor設定の詳細を確認することができます。

downtime-manage

ダウンタイムのスケジュール

ダウンタイムをスケジュールするには、画面上部右側の”Schedule Downtime”を選択します。

  1. 停止するMonitorを選択

downtime-silence

停止したい特定のMonitorを指定するか、ここでは特定のMonitorは指定せずすべてのMonitorを停止の対象とします。続いて、ダウンタイムの対象を限定するために、特定のホスト、デバイス、あるいは任意のタグによって範囲(スコープ)の設定をします。範囲(スコープ)の設定については、グラフ表示入門のページのJSONの使用方法、対象範囲の指定(scope)も併せて参照してください。

すべてのMonitorを停止の対象としたうえで範囲(スコープ)の設定によって対象を限定するような場合には、”Preview affected monitors” (対象となるMonitorをプレビューする)をクリックすることで、現在対象となっているMonitorのリストが表示されます。作成時に停止の対象としたMonitorの範囲(スコープ)は、ダウンタイムのスケジュール設定後でも修正することができます。

指定するMonitorにMulti Alartを含むような場合は、範囲(スコープ)の設定によって限定した対象のみが停止されることに注意して下さい。例えばダウンタイムの範囲(スコープ)がhost:Xにセットされていて、あるMulti Alartはhost:Xhost:Y両方についてアラートを発報する場合, Datadogは引き続きhost:Yについての通知は行います。

  1. スケジュールを設定

downtime-schedule

ダウンタイムをスケジュールする日時をここで設定します。あるいは、空欄のままにしてダウンタイムを即刻開始することもできます。また、定期的な計画停止のために繰り返しのスケジュールを設定することも可能です。

  1. チームに通知するためのメッセージ本文を追加で設定

downtime-notify

ダウンタイム設定についてチームに通知するメッセージを入力します。このフィールドには、Datadogの@-notification構文の他に標準的なmarkdownフォーマットでも記述することができます。”Notify your team”フィールドでは、メッセージを送りたいチームメンバー個人あるいは特定のサービス(インストール済みのインテグレーション)を選択することができます。 integtration.

Monitorに関するFAQs

  • Monitorは、プログラム的に管理することはできますか?

はい。各プログラミング言語毎ライブラリやcURLを使ってMonitorを制御する方法に関しては、Datadog APIドキュメントを参照してください。

  • ファンクションを基にアラートを発報することはできますか?

はい。 Monitor設定の第一ステップで’Source’タブを選択し、グラフを設定する際のJSONエディタと同じように編集することにより、カスタムクエリやファンクションのアラートを設定すことができます。

  • 手動で monitorを解除することはできますか?

はい。手動で monitorを解除することは可能です(トリガされたmonitorのStatusをResolveとセットすること)。ただし、この操作は以下のケースでのみ有効だと考えられます:

  • monitor が”no data”の状態であり、このmonitor を解除することで triggered monitors ページから排除したいケース
  • monitor がトリガされた状態だがデータの送信は停止しており、このmonitor を解除することで triggered monitors ページから排除したいケース

そうでなければ、monitor はすぐに次の値の評価に移ります。つまり、評価している値が指定している閾値を超えているままなのであれば、Resolveとセットされた場合でもそのmonitor は次の値の評価の際(およそ60秒後)に再びトリガされることになります。