首页 > 解决方案 > 警报策略“匹配资源满足所有条件”与过滤器或 groupByFields 不匹配

问题描述

由于 GCP Stackdriver 为 Pub/Sub 创建警报,我愿意创建警报,例如“如果订阅有超过 XXX 个等待主题的消息(未确认)并且该消费者在该主题上的消费率接近0,然后触发警报”。

我更习惯于 Prometheus,我可以简单地依靠标签来加入时间序列,但我想知道如何使用 Stackdriver 来做到这一点。

起初,我考虑使用 2 个条件和“在匹配资源上满足所有条件时策略违反”,但我想知道“匹配资源”是否与 Prometheus 中的行为相同。

这是我想到的警报,但即使两个条件未完全满足,它似乎也会触发:

{
  "combiner": "AND_WITH_MATCHING_RESOURCE",
  "conditions": [
    {
      "conditionThreshold": {
        "aggregations": [
          {
            "alignmentPeriod": "60s",
            "crossSeriesReducer": "REDUCE_SUM",
            "groupByFields": [
              "metadata.system_labels.topic_id",
              "resource.label.subscription_id"
            ],
            "perSeriesAligner": "ALIGN_RATE"
          }
        ],
        "comparison": "COMPARISON_LT",
        "duration": "300s",
        "filter": "metric.type=\"pubsub.googleapis.com/subscription/ack_message_count\" resource.type=\"pubsub_subscription\" resource.label.\"project_id\"=\"pl-service-prod-lm-fr\"",
        "thresholdValue": 1,
        "trigger": {
          "count": 1
        }
      },
      "displayName": "Ack message count"
    },
    {
      "conditionThreshold": {
        "aggregations": [
          {
            "alignmentPeriod": "60s",
            "crossSeriesReducer": "REDUCE_SUM",
            "groupByFields": [
              "metadata.system_labels.topic_id",
              "resource.label.subscription_id"
            ],
            "perSeriesAligner": "ALIGN_MEAN"
          }
        ],
        "comparison": "COMPARISON_GT",
        "duration": "300s",
        "filter": "metric.type=\"pubsub.googleapis.com/subscription/num_undelivered_messages\" resource.type=\"pubsub_subscription\" resource.label.\"project_id\"=\"pl-service-prod-lm-fr\"",
        "trigger": {
          "count": 1
        }
      },
      "displayName": "Unacked messages"
    }
  ],
  "displayName": "Pub/Sub is not consumed",
  "enabled": true,
  "incidentStrategy": {}
}

标签: google-cloud-platformgoogle-cloud-pubsubstackdrivergoogle-cloud-stackdriver

解决方案


推荐阅读