首页 > 解决方案 > 用于监控谷歌云 pubsub 中未传递消息的 REST API

问题描述

我想实现一项服务来监视未传递的消息并在达到阈值或进一步处理时发送通知。

我已经浏览了 Stackdriver。它为我提供了监控和警报,它仅提供获取 metricDescriptor 的 API,但不提供获取未传递消息的 API,如您在Stackdriver Monitoring API中所见。

实际上是否有提供的 API 来获取指标值?

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

解决方案


您可以通过projects.timeSeries.list 方法获取值。您可以将名称设置为projects/<your project>,过滤器设置为metric.type = "pubsub.googleapis.com/subscription/num_undelivered_messages",并将结束时间(如果需要一系列值,还设置开始时间)设置为表示 RFC3339 UTC "Zulu" 格式的时间的字符串,例如2018-10-04T14:00:00Z. 如果要查看特定订阅,请将过滤器设置为metric.type = "pubsub.googleapis.com/subscription/num_undelivered_messages" AND resource.label.subscription_id = "<subscription name>"

结果将是一个或多个TimeSeries类型(取决于您是否指定了特定订阅),其points字段包括指定时间范围内的数据点,每个数据点的value'int64Value设置为具有未得到订阅者的认可。


推荐阅读