GCP 监控,保存警报时警报策略错误?需要创建警报,当超出 pod 限制的 75% 时将触发警报

问题描述 投票:0回答:0

我们一直在利用基于 Prometheus 查询语言 (PromQL) 的具有特定警报配置的 Grafana。现在,我们正在过渡到 Stackdriver,这是 Google Cloud Platform 的本机监控解决方案,它使用指标查询语言 (MQL) 而不是 PromQL。因此,我们需要将现有的 Grafana 警报查询转换为 MQL。

下面是转换后的 MQL 查询,我认为这是适当的转换:

     {
      fetch k8s_container::kubernetes.io/container/memory/used_bytes
      | filter metric.memory_type == 'non-evictable'
      | group_by 5m, [value_used_bytes_mean: mean(value.used_bytes)]
      | every 5m
      ;
      fetch k8s_container::kubernetes.io/container/memory/limit_bytes
    }
    | filter
        (resource.cluster_name == 'k8s-cluster'
         && resource.namespace_name == 'test1'
         && resource.pod_name =~ '^api.*' )
    | join | div | mul 100
    | condition val() > cast_units(75, '%')

虽然转换后的查询可以生成警报,但我们在尝试在 Stackdriver 中保存警报策略时遇到了问题,出现错误“错误:无法保存警报策略。请求包含无效参数。”出现。

要解决该错误,我们需要进一步调查根本原因。该错误可能源于查询中的某些无效字符、不支持的聚合或其他因素。仔细检查查询的语法正确性、检查是否有任何不适当的字符或符号并确保与 Stackdriver 支持的功能的兼容性至关重要

我尝试了条件的多种组合,因为问题似乎出现在条件语句中,

    condition val() > cast_units(75, '%')
    condition val() > 75 '%'
    condition val() > 75 'By'

类似这样的东西以及更多。

stackdriver google-cloud-stackdriver google-cloud-logging google-cloud-monitoring gcp-alerts
© www.soinside.com 2019 - 2024. All rights reserved.