LoginSignup
6
1

More than 3 years have passed since last update.

Datadogの外形監視を行う(Terraformでもやってみた)

Last updated at Posted at 2019-06-16

概要

Datadog Synthetics API Testsの設定方法をまとめました。Terraformでの構築についても記載しています。

API Tests

Datadog Synthetics API Testsには下記の通り記載されています。

Google翻訳

APIテストは、APIエンドポイントを監視し、失敗したり遅すぎたりした場合に警告するのに役立ちます。これらのチェックは、アプリケーションが要求に応答していること、および応答時間、HTTPステータスコード、ヘッダーまたは本文の内容など、ユーザーが定義した条件を満たしていることを確認します。

API Testには、HTTPSSLの2種類があります。
今回は、HTTPのAPIのテストを行います。

SSLタイプについては、下記の記事で手順が詳しく説明されていますので、掲載させていただきます。
Datadog Synthetics API Tests でSSL証明書期限を監視できるようになりました! #datadog | DevelopersIO

また、AWS ACMを利用している場合、ACM発行の証明書の自動更新条件は下記より確認できますので、参考にしてみてください。
ACM の Amazon が発行する証明書のマネージド型更新

手順

Synthetics > Get Started > New API Testを選択します。
スクリーンショット 2019-06-14 18.04.30.png

今回は、下記の値を設定します。URLは必要に応じて変更してください。

項目
request type HTTP
URL GET https://example.com
Advanced Options -
Name Test on example.com
Select your tags -

Test URL をクリックします。
スクリーンショット 2019-06-14 18.17.04.png

アラートの条件が自動で設定されています。
アサーションに失敗した場合にアラートが通知されます。
スクリーンショット 2019-06-14 18.32.54.png

また、画面の右側にテストしたRequestとResponseのプレビューが表示されます。
スクリーンショット 2019-06-14 18.31.25.png

最後に、Notify your teamにアラートのメッセージと通知先を指定します。
今回は、既にSlack integrationsの設定が完了しているので、通知先にはSlackのchannnelを設定しました。
スクリーンショット 2019-06-14 18.39.35.png

Create Testをクリックして、テストの設定は完了です。

テストの確認

テストの状況は画面から確認することができます。

Properties

スクリーンショット 2019-06-14 18.49.53.png

History

スクリーンショット 2019-06-14 18.52.17.png

Test Results

正常時
スクリーンショット 2019-06-14 18.53.31.png

エラー時
スクリーンショット 2019-06-14 19.02.34.png
スクリーンショット 2019-06-14 19.00.35.png

Slackへの通知

テストが失敗した場合、Slackへの通知は下記の通りです。
スクリーンショット 2019-06-14 18.57.51.png
スクリーンショット 2019-06-15 0.01.07.png

Terraformで構築

datadog_synthetics_testで構築します。

上記の手順で作成したAPI TestをTerraformで構築すると下記の通りとなります。

resource "datadog_synthetics_test" "api_test" {
  type = "api"

  request = {
    method = "GET"
    url    = "https://${var.api_test_url}"
  }

  assertions = [
    {
      type     = "statusCode"
      operator = "is"
      target   = "200"
    },
    {
      type     = "header"
      property = "content-type"
      operator = "is"
      target   = "application/json"
    },
    {
      type     = "responseTime"
      operator = "lessThan"
      target   = "2000"
    },
  ]

  locations = ["aws:ap-northeast-1"]

  options = {
    tick_every = 60
  }

  name    = "An API test on ${var.api_test_url}"
  message = "Test on ${var.api_test_url} @${var.slack_channel_name}"

  tags   = []
  status = "live"
}

なお、SSLタイプについてはTerraformではまだ対応されていないようです。(2019/6/16時点では)
https://github.com/terraform-providers/terraform-provider-datadog/issues/229

参考記事

下記を参考にさせていただきました。
Synthetics API Tests(外形監視)機能を使ってみた #datadog | DevelopersIO

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1