当消息发布到 pubsub 主题时,我可以发送警报吗?

Can I send an alert when a message is published to a pubsub topic?

我们正在使用 pubsub 和云功能来处理传入数据流。我正在设置一个死信主题来处理无法处理消息的情况,如 Cloud Pub/Sub > Guides > Handling message failures.

中所述

我已将死信主题的订阅配置为将消息保留 7 天,我们正在使用 terraform 执行此操作:

resource "google_pubsub_subscription" "dead_letter_monitoring" {
  project = var.project_id
  name    = "var.dead_letter_sub_name
  topic   = google_pubsub_topic.dead_letter.name
  expiration_policy { ttl = "" }

  message_retention_duration = "604800s" # 7 days
  retain_acked_messages      = true

  ack_deadline_seconds = 600
}

我们已经对我们的云功能进行了稳健的测试,因此我们的预期是消息很少会出现在这个死信主题上,也许永远不会。尽管如此,我们还是将它放在适当的位置,以确保我们发现任何异常情况。

鉴于我们预计死信主题上出现的消息很少见,我们需要设置警报以在出现此类消息时发送电子邮件。是否有可能做到这一点?我已经查看了可以在 https://console.cloud.google.com/monitoring/alerting/policies/create 上创建的警报,但是我没有看到任何可以实现这一点的东西。

我知道我可以编写一个云函数来使用来自订阅的消息并据此采取行动,但是我宁愿不必那样做,监控警报感觉是一种更优雅的实现方式.

这可能吗?

是的,您可以为此使用云监控。创建新策略并执行该配置

Select PubSub 主题和已发布的消息。观察每分钟的值并计算它们(高级选项中的对准器)。现在,在配置中,当它高于最新值的 0 时,将引发警报。

要仅过滤您的主题,您可以根据主题名称添加 topic_id 过滤器。

然后,将警报配置为发送电子邮件。应该有用!