概要
Datadog Synthetics API Testsの設定方法をまとめました。Terraformでの構築についても記載しています。
API Tests
Datadog Synthetics API Testsには下記の通り記載されています。
Google翻訳
APIテストは、APIエンドポイントを監視し、失敗したり遅すぎたりした場合に警告するのに役立ちます。これらのチェックは、アプリケーションが要求に応答していること、および応答時間、HTTPステータスコード、ヘッダーまたは本文の内容など、ユーザーが定義した条件を満たしていることを確認します。
API Testには、HTTP
とSSL
の2種類があります。
今回は、HTTP
のAPIのテストを行います。
SSL
タイプについては、下記の記事で手順が詳しく説明されていますので、掲載させていただきます。
Datadog Synthetics API Tests でSSL証明書期限を監視できるようになりました! #datadog | DevelopersIO
また、AWS ACMを利用している場合、ACM発行の証明書の自動更新条件は下記より確認できますので、参考にしてみてください。
ACM の Amazon が発行する証明書のマネージド型更新
手順
Synthetics
> Get Started
> New API Test
を選択します。
今回は、下記の値を設定します。URLは必要に応じて変更してください。
項目 | 値 |
---|---|
request type | HTTP |
URL | GET https://example.com |
Advanced Options | - |
Name | Test on example.com |
Select your tags | - |
アラートの条件が自動で設定されています。
アサーションに失敗した場合にアラートが通知されます。
また、画面の右側にテストしたRequestとResponseのプレビューが表示されます。
最後に、Notify your team
にアラートのメッセージと通知先を指定します。
今回は、既にSlack integrationsの設定が完了しているので、通知先にはSlackのchannnelを設定しました。
Create Test
をクリックして、テストの設定は完了です。
テストの確認
テストの状況は画面から確認することができます。
Properties
History

Test Results
Slackへの通知
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