Skip to content

Instantly share code, notes, and snippets.

@pranav-new-relic
Created June 21, 2024 10:59
Show Gist options
  • Save pranav-new-relic/36670cd583e56064c776af91d7663847 to your computer and use it in GitHub Desktop.
Save pranav-new-relic/36670cd583e56064c776af91d7663847 to your computer and use it in GitHub Desktop.
#2692
resource "newrelic_synthetics_monitor" "selfchecks" {
for_each = { for check in var.checks : check.url => check }
type = "SIMPLE"
status = coalesce(each.value.status, upper(var.newrelic_monitor_status))
name = "${var.env}: ${each.value.name}"
uri = "https://${var.subdomain}.${var.dns_domain}${each.value.url}"
period = "EVERY_12_HOURS"
bypass_head_request = true
validation_string = each.value.validation_str
# Compat shim for v2.x of provider, which used AWS_ prefixes
locations_public = [for loc in each.value.locations : replace(loc, "/^AWS_/", "")]
}
checks = [
{
"url" : "/path/to/check1",
"status" : "ENABLED",
"name" : "Check 1",
"resolution" : "EVERY_5_MINUTES",
"validation_str" : "expected_response_code: 200"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check2",
"status" : "DISABLED",
"name" : "Check 2",
"resolution" : "EVERY_10_MINUTES",
"validation_str" : "expected_response_code: 200, expected_response_content: 'success'"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check3",
"status" : "ENABLED",
"name" : "Check 3",
"resolution" : "EVERY_15_MINUTES",
"validation_str" : "expected_response_code: 500"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check4",
"status" : "DISABLED",
"name" : "Check 4",
"resolution" : "EVERY_5_MINUTES",
"validation_str" : "expected_response_code: 200"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check5",
"status" : "ENABLED",
"name" : "Check 5",
"resolution" : "EVERY_10_MINUTES",
"validation_str" : "expected_response_code: 200, expected_response_content: 'success'"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check6",
"status" : "DISABLED",
"name" : "Check 6",
"resolution" : "EVERY_15_MINUTES",
"validation_str" : "expected_response_code: 500"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check7",
"status" : "ENABLED",
"name" : "Check 7",
"resolution" : "EVERY_5_MINUTES",
"validation_str" : "expected_response_code: 200"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check8",
"status" : "DISABLED",
"name" : "Check 8",
"resolution" : "EVERY_10_MINUTES",
"validation_str" : "expected_response_code: 200, expected_response_content: 'success'"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check9",
"status" : "ENABLED",
"name" : "Check 9",
"resolution" : "EVERY_15_MINUTES",
"validation_str" : "expected_response_code: 500"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check10",
"status" : "DISABLED",
"name" : "Check 10",
"resolution" : "EVERY_5_MINUTES",
"validation_str" : "expected_response_code: 200"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check11",
"status" : "ENABLED",
"name" : "Check 11",
"resolution" : "EVERY_10_MINUTES",
"validation_str" : "expected_response_code: 200, expected_response_content: 'success'"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check12",
"status" : "DISABLED",
"name" : "Check 12",
"resolution" : "EVERY_15_MINUTES",
"validation_str" : "expected_response_code: 500"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check13",
"status" : "ENABLED",
"name" : "Check 13",
"resolution" : "EVERY_5_MINUTES",
"validation_str" : "expected_response_code: 200"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check14",
"status" : "DISABLED",
"name" : "Check 14",
"resolution" : "EVERY_10_MINUTES",
"validation_str" : "expected_response_code: 200, expected_response_content: 'success'"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check15",
"status" : "ENABLED",
"name" : "Check 15",
"resolution" : "EVERY_15_MINUTES",
"validation_str" : "expected_response_code: 500"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check16",
"status" : "DISABLED",
"name" : "Check 16",
"resolution" : "EVERY_5_MINUTES",
"validation_str" : "expected_response_code: 200"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check17",
"status" : "ENABLED",
"name" : "Check 17",
"resolution" : "EVERY_10_MINUTES",
"validation_str" : "expected_response_code: 200, expected_response_content: 'success'"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check18",
"status" : "DISABLED",
"name" : "Check 18",
"resolution" : "EVERY_15_MINUTES",
"validation_str" : "expected_response_code: 500"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check19",
"status" : "ENABLED",
"name" : "Check 19",
"resolution" : "EVERY_5_MINUTES",
"validation_str" : "expected_response_code: 200"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check20",
"status" : "DISABLED",
"name" : "Check 20",
"resolution" : "EVERY_10_MINUTES",
"validation_str" : "expected_response_code: 200, expected_response_content: 'success'"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check21",
"status" : "ENABLED",
"name" : "Check 21",
"resolution" : "EVERY_15_MINUTES",
"validation_str" : "expected_response_code: 500"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check22",
"status" : "DISABLED",
"name" : "Check 22",
"resolution" : "EVERY_5_MINUTES",
"validation_str" : "expected_response_code: 200"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check23",
"status" : "ENABLED",
"name" : "Check 23",
"resolution" : "EVERY_10_MINUTES",
"validation_str" : "expected_response_code: 200, expected_response_content: 'success'"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check24",
"status" : "DISABLED",
"name" : "Check 24",
"resolution" : "EVERY_15_MINUTES",
"validation_str" : "expected_response_code: 500"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
},
{
"url" : "/path/to/check25",
"status" : "ENABLED",
"name" : "Check 25",
"resolution" : "EVERY_5_MINUTES",
"validation_str" : "expected_response_code: 200"
"locations" : [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_AP_SOUTH_1",
]
}
]
newrelic_monitor_status = "DISABLED"
env = "Production"
subdomain = "one"
dns_domain = "newrelic.com"
variable "checks" {
type = list(object({
url = string
status = string
name = string
resolution = string
validation_str = string
locations = list(string)
}))
}
variable "newrelic_monitor_status" {
type = string
}
variable "env" {
type = string
}
variable "subdomain" {
type = string
}
variable "dns_domain" {
type = string
}
locals {
resolution_interval_compat_map = "EVERY_12_HOURS"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment