我正在尝试监控一个实例组,并有一个基于正则表达式的过滤器。该查询如下所示
fetch instance_group
| metric 'compute.googleapis.com/instance_group/size'
| filter (resource.instance_group_name =~ 'nat-ecmp-[1|2]')
| group_by 1m, [value_size_mean: mean(value.size)]
| every 1m现在我正尝试在terraform中做同样的事情。
这就是我到现在所想出来的
condition_threshold {
filter = <<-EOF
resource.type=\"instance_group\"
metric.type=\"compute.googleapis.com/instance_group/size\"
resource.label."instance_group_name"=~"nat-ecmp-[1|2]"
EOF
duration = "300s"
comparison = "COMPARISON_LT"
threshold_value = "1"但这会产生错误
Error creating AlertPolicy: googleapi: Error 400: Field alert_policy.conditions[0].condition_threshold.filter had an invalid value of "resource.type="instance_group"
metric.type="compute.googleapis.com/instance_group/size"
resource.label."instance_group_name"=~"nat-ecmp-[1|2]"
": Could not parse filter "resource.type=\"instance_group\"\nmetric.type=\"compute.googleapis.com/instance_group/size\"\nresource.label.\"instance_group_name\"=~\"nat-ecmp-[1|2]\"\n"; syntax error at line 3, column 37, token '=~'我也试过这个
condition_threshold {
filter = <<-EOF
resource.type=\"instance_group\"
metric.type=\"compute.googleapis.com/instance_group/size\"
resource.label.\"instance_group_name\"=~\"nat-ecmp-[1|2]\"
EOF
duration = "300s"
comparison = "COMPARISON_LT"但我得到的结果是一样的。这里我错过了什么?
发布于 2021-10-27 14:20:45
我在多次阅读谷歌文档here后找到了我的解决方案。
您需要使用:
metric.labels.instance_name = monitoring.regex.full_match("^gke-(hipster|nginx).*")我的用例的完整示例是:
resource "google_monitoring_alert_policy" "alert_policy" {
display_name = "Dataflow fail alert policy"
combiner = "AND"
conditions {
display_name = "test condition"
condition_threshold {
trigger {
percent = null
count = 1
}
aggregations {
per_series_aligner = "ALIGN_MAX"
group_by_fields = []
alignment_period = "3600s"
cross_series_reducer = "REDUCE_NONE"
}
threshold_value = 0
duration = "300s"
comparison = "COMPARISON_GT"
filter = "metric.type=\"logging.googleapis.com/user/dev_dataproc_job_error\" AND resource.type=\"cloud_dataproc_job\" AND resource.label.job_id!=monitoring.regex.full_match(\"foo_bar.*\")"
}
}
}https://stackoverflow.com/questions/65255968
复制相似问题