首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在gcp监控过滤器中使用正则表达式

在gcp监控过滤器中使用正则表达式
EN

Stack Overflow用户
提问于 2020-12-12 01:29:02
回答 1查看 201关注 0票数 2

我正在尝试监控一个实例组,并有一个基于正则表达式的过滤器。该查询如下所示

代码语言:javascript
复制
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中做同样的事情。

这就是我到现在所想出来的

代码语言:javascript
复制
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"

但这会产生错误

代码语言:javascript
复制
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 '=~'

我也试过这个

代码语言:javascript
复制
    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"

但我得到的结果是一样的。这里我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2021-10-27 14:20:45

我在多次阅读谷歌文档here后找到了我的解决方案。

您需要使用:

代码语言:javascript
复制
metric.labels.instance_name = monitoring.regex.full_match("^gke-(hipster|nginx).*")

我的用例的完整示例是:

代码语言:javascript
复制
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.*\")"
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65255968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档