1

一旦来自 pubsub 主题的所有消息都得到确认,我想执行一个操作。我尝试使用 Stackdriver 监控 API 来衡量“由云区域分解的未确认消息的数量”,但不了解区域过滤器以及为什么需要它。我在哪里可以看到我的主题使用的区域?并且由于某些未知的原因,对于某些主题,API 调用完全无缘无故地失败。了解所有消息是否已被确认的最佳方法是什么。

4

3 回答 3

3

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

如果任何订阅中的未确认消息年龄过高,您可以使用Stackdriver Alerting提醒您。将 Resource Type 设置为“Cloud Pub/Sub Subscription”,将 Metric 设置为“Oldest Unacked Message”,并在任何时间序列违反某个阈值时发出警报。

于 2019-04-22T20:26:07.643 回答
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])
于 2019-12-04T22:05:24.580 回答
1

尝试改用指标 subscription/num_undelivered_messages。与 不同subscription/num_unacked_messages_by_\region的是,它在 GA 中,不需要指定区域。

于 2018-12-04T07:17:02.020 回答