ダウンタイム時のアラートを停止する

概要

ダウンタイムを使用して、スケジュールされたメンテナンス、テスト、オートスケーリングイベント中の不要なアラートを停止しましょう。 ダウンタイム API を使用して高度なメンテナンススケジュールのフォーマットを管理したり、クラウドインスタンスのリサイズ時などにモニターを動的にミュートすることができます。

このガイドでは、以下のユースケースに関するダウンタイムの構成方法をご説明します。

前提条件

このガイドでは API の使用方法をご説明します。使用にあたっては管理者権限を有する API キーとアプリケーションキーが必要です。これらのキーは Datadog アカウントの API キーページで確認することができます。 出現する <DATADOG_API_KEY> および <DATADOG_APP_KEY> をすべて、Datadog の API キーと Datadog のアプリケーションキーにそれぞれ置き換えます。

このガイドではまた、お客様が CURL を持つターミナルを所有し、 主要なダウンタイムに関するドキュメントページの内容を閲覧されていることを想定しています。

週末にかけてのダウンタイム

企業の ERP や会計ソフトウェアなど、平日のみ使用されるサービスを監視する場合は、平日のみアラートを受信するよう設定することができます。 以下の API コールを使用して、env:prod タグに該当するすべてのモニターから発される週末のアラートをミュートに設定します。

curl -X POST "https://api.<DATADOG_SITE>/api/v1/downtime" \
-H "Content-type: application/json" \
-H "DD-API-KEY: ${api_key}" \
-H "DD-APPLICATION-KEY: ${app_key}" \
-d '{"scope": "env:prod","start":"1613779200","end":"1613865599", "recurrence": {"type": "weeks","period": 1,"week_days": ["Sat","Sun"]}}'

プレースホルダー値 <DATADOG_SITE> で置き換えます。また、start および end パラメーターをスケジュールに合わせて置き換えます。例:

  • start=$(date +%s)
  • end=$(date -v+24H +%s)

その後、cURL コマンドで "start": '"${start}"' を実行します。

Response:

{
    "recurrence": {
        "until_date": null,
        "until_occurrences": null,
        "week_days": ["Sat", "Sun"],
        "type": "weeks",
        "period": 1
    },
    "end": 1613865599,
    "monitor_tags": ["*"],
    "child_id": null,
    "canceled": null,
    "monitor_id": null,
    "org_id": 1111111,
    "disabled": false,
    "start": 1613779200,
    "creator_id": 987654321,
    "parent_id": null,
    "timezone": "UTC",
    "active": false,
    "scope": ["env:prod"],
    "message": null,
    "downtime_type": 2,
    "id": 123456789,
    "updater_id": null
}

Manage Downtime ページを開いて新しいダウンタイムを追加し、recurring を選択します。

週末にかけたダウンタイム

営業時間外のダウンタイム

同じ例を使用して、平日の営業時間外にこのサービスをミュートに設定することができます。

以下の API コールで、平日午後 8 時 から午前 6 時までのアラートをミュートに設定します。

curl -X POST "https://api.<DATADOG_SITE>/api/v1/downtime" \
-H "Content-type: application/json" \
-H "DD-API-KEY: ${api_key}" \
-H "DD-APPLICATION-KEY: ${app_key}" \
-d '{"scope": "env:prod","start":"1613844000","end":"1613887200", "recurrence": {"type": "days","period": 1}}'

プレースホルダー値 <DATADOG_SITE> で置き換えます。また、start および end パラメーターをスケジュールに合わせて置き換えます。

Response:

{
    "recurrence": {
        "until_date": null,
        "until_occurrences": null,
        "week_days": null,
        "type": "days",
        "period": 1
    },
    "end": 1613887200,
    "monitor_tags": ["*"],
    "child_id": null,
    "canceled": null,
    "monitor_id": null,
    "org_id": 1111111,
    "disabled": false,
    "start": 1613844000,
    "creator_id": 987654321,
    "parent_id": null,
    "timezone": "UTC",
    "active": false,
    "scope": ["env:prod"],
    "message": null,
    "downtime_type": 2,
    "id": 123456789,
    "updater_id": null
}

Manage Downtime ページを開いて新しいダウンタイムを追加し、recurring を選択します。

営業時間外のダウンタイム

毎月 n 日の定期的なダウンタイム

より高度なメンテナンススケジュールを計画するには、RRULE を使用します。

RRULE (繰り返しルール) は iCalendar RFC のプロパティ名で、定期的なイベントを定義する際の標準形式です。

RRULE で期間を指定する属性はサポートされていません (例: DTSTARTDTENDDURATION)。可能な属性については RFC を参照してください。このツールを使用して RRULE を生成し、API 呼び出しに貼り付けることができます。

: ERP アプリは毎月第 2 火曜日に更新され、午前 8 時から 10 時の間にパッチと修正が適用されます。このモニターのスコープは app:erp で指定されているため、ダウンタイムのスコープにもこの値を使用します。

type パラメーターは rrule に指定する必要があります。 start および end パラメーターは繰り返しルール初日の予定開始時間および終了時間と一致するよう設定します。そのため、ルールで指定した最初の第 2 火曜日が 3 月 9 日 (火) であった場合、開始は 3 月 9 日の午前 8時、終了は 3 月 9 日の午前 10 時となります。

API call:

curl -X POST "https://api.<DATADOG_SITE>/api/v1/downtime" \
-H "Content-type: application/json" \
-H "DD-API-KEY: ${api_key}" \
-H "DD-APPLICATION-KEY: ${app_key}" \
-d '{"scope": "app:erp","start":"1615276800","end":"1615284000", "recurrence": {"type":"rrule","rrule":"FREQ=MONTHLY;INTERVAL=1;BYDAY=2TU"}}'

プレースホルダー値 <DATADOG_SITE> で置き換えます。また、start および end パラメーターをスケジュールに合わせて置き換えます。

Response:

{
    "recurrence": {
        "type": "rrule",
        "rrule": "FREQ=MONTHLY;INTERVAL=1;BYDAY=2TU"
    },
    "end": 1615284000,
    "monitor_tags": ["*"],
    "child_id": null,
    "canceled": null,
    "monitor_id": null,
    "org_id": 1111111,
    "disabled": false,
    "start": 1615276800,
    "creator_id": 987654321,
    "parent_id": null,
    "timezone": "UTC",
    "active": false,
    "scope": ["app:erp"],
    "message": null,
    "downtime_type": 2,
    "id": 123456789,
    "updater_id": null
}

Manage Downtime ページを開いて新しいダウンタイムを追加し、recurring を選択します。

rrule ダウンタイム

その他の参考資料