计算Pubsub主题中未确认的消息数

时间:2018-11-30 17:39:58

标签: google-cloud-platform google-cloud-pubsub

在确认来自pubsub主题的所有消息后,我想执行一个操作。我尝试将Stackdriver Monitoring API用作指标“被云区域分解的未确认消息数”,但不了解区域过滤器以及为什么需要该过滤器。在哪里可以看到主题使用的区域?并且由于某些未知原因,对于某些主题,API调用完全没有理由失败。知道是否已确认所有消息的最佳方法是什么。

3 个答案:

答案 0 :(得分:1)

Cloud Pub / Sub主题没有未确认消息的概念。这纯粹是单个订阅的属性,尚未确认多少消息。

如果任何订阅中未确认的邮件年龄过高,您可以使用Stackdriver Alerting来提醒您。将“资源类型”设置为“ Cloud Pub / Subscription”,将“指标”设置为“最早的未确认消息”,并在任何时间序列超出某个阈值时发出警报。

答案 1 :(得分:1)

如果您正在寻找以编程方式实现此目标的方法,可能会有所帮助:

from google.cloud import monitoring_v3
from google.cloud.monitoring_v3 import query

project = "my-project"
client = monitoring_v3.MetricServiceClient()
result = query.Query(
         client,
         project,
         'pubsub.googleapis.com/subscription/num_undelivered_messages', 
         minutes=60).as_dataframe()

print(result['pubsub_subscription'][project]['subscription_name1'][0])
print(result['pubsub_subscription'][project]['subscription_name2'][0])

答案 2 :(得分:0)

尝试改用metric subscription/num_undelivered_messages。与subscription/num_unacked_messages_by_\region不同,它位于GA中,不需要指定区域。