Created
June 21, 2024 10:59
-
-
Save pranav-new-relic/36670cd583e56064c776af91d7663847 to your computer and use it in GitHub Desktop.
#2692
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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_/", "")] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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