使用 terraform 创建用于正常运行时间检查的 GCP 警报策略
Create GCP alerting policy for uptime check using terraform
是否有任何方法可以使用已部署资源的 metric.label.check_id
的 terraform 和过滤器值创建正常运行时间检查的 GCP 警报策略?
terraform 文档中提供的示例仅显示了针对指标的警报策略,而不是针对已部署资源的正常运行时间检查,因此我不确定使用 terraform 是否可行。
我找到了适合我的解决方案。
我已经通过两个独立的 Terraform 模块创建了正常运行时间检查和正常运行时间检查警报。
Terrraform 正常运行时间检查模块如下所示:
resource "google_monitoring_uptime_check_config" "uptime-check" {
project = var.project_id
display_name = var.display_name
timeout = "10s"
period = "60s"
http_check {
path = var.path
port = var.port
use_ssl = true
validate_ssl = true
}
monitored_resource {
type = "uptime_url"
labels = {
host = var.hostname,
project_id = var.project_id
}
}
content_matchers {
content = "\"status\":\"UP\""
}
}
然后对于那个模块的 outputs.tf
我有:
output "uptime_check_id" {
value = google_monitoring_uptime_check_config.uptime-check.uptime_check_id
}
然后在警报模块中,我遵循了 terraform 文档,但将它们修改为如下代码:
module "medallies-common-alerts" {
source = "./modules/alerts"
project_id = var.project_id
uptime_check_depends_on = [module.uptime-check]
check_id = module.uptime-check.uptime_check_id
}
...
resource "google_monitoring_alert_policy" "alert_policy_uptime_check" {
project = var.project_id
enabled = true
depends_on = [var.uptime_check_depends_on]
....
condition_threshold {
filter = format("metric.type=\"monitoring.googleapis.com/uptime_check/check_passed\" AND metric.label.\"check_id\"=\"%s\" AND resource.type=\"uptime_url\"",var.check_id)
duration = "300s"
comparison = "COMPARISON_GT"
threshold_value = "1"
trigger {
count = 1
}
...
}
希望它也能帮助到别人。
是否有任何方法可以使用已部署资源的 metric.label.check_id
的 terraform 和过滤器值创建正常运行时间检查的 GCP 警报策略?
terraform 文档中提供的示例仅显示了针对指标的警报策略,而不是针对已部署资源的正常运行时间检查,因此我不确定使用 terraform 是否可行。
我找到了适合我的解决方案。
我已经通过两个独立的 Terraform 模块创建了正常运行时间检查和正常运行时间检查警报。
Terrraform 正常运行时间检查模块如下所示:
resource "google_monitoring_uptime_check_config" "uptime-check" {
project = var.project_id
display_name = var.display_name
timeout = "10s"
period = "60s"
http_check {
path = var.path
port = var.port
use_ssl = true
validate_ssl = true
}
monitored_resource {
type = "uptime_url"
labels = {
host = var.hostname,
project_id = var.project_id
}
}
content_matchers {
content = "\"status\":\"UP\""
}
}
然后对于那个模块的 outputs.tf
我有:
output "uptime_check_id" {
value = google_monitoring_uptime_check_config.uptime-check.uptime_check_id
}
然后在警报模块中,我遵循了 terraform 文档,但将它们修改为如下代码:
module "medallies-common-alerts" {
source = "./modules/alerts"
project_id = var.project_id
uptime_check_depends_on = [module.uptime-check]
check_id = module.uptime-check.uptime_check_id
}
...
resource "google_monitoring_alert_policy" "alert_policy_uptime_check" {
project = var.project_id
enabled = true
depends_on = [var.uptime_check_depends_on]
....
condition_threshold {
filter = format("metric.type=\"monitoring.googleapis.com/uptime_check/check_passed\" AND metric.label.\"check_id\"=\"%s\" AND resource.type=\"uptime_url\"",var.check_id)
duration = "300s"
comparison = "COMPARISON_GT"
threshold_value = "1"
trigger {
count = 1
}
...
}
希望它也能帮助到别人。