请帮助我了解带有请求订阅的Google云Pubsub subscription / num_undelivered_messages 指标的功能。
来自文档: subscription / num_undelivered_messages 为
邮件中未确认的邮件数(又称积压邮件) 订阅。每60秒取样一次。采样后,数据不是 可见的时间长达120秒。
对于从文档中提取请求
在请求发送中,您的订户应用程序发起对 Cloud Pub / Sub服务器以检索消息。订阅 应用程序显式调用pull方法,该方法请求消息 交货。
现在,我针对名为 projects / pubsub-public-data / topics / taxirides-realtime 的Google公共主题设置了请求订阅,该订阅旨在持续提供出租车数据流。
现在,我的要求是计算过去1小时内出租车的乘车次数。我想到的通常方法是从主题中提取所有消息并对其进行汇总。
但是,在搜索时,我发现这两个链接link1和link2可以解决问题,但是下面的问题1一直困扰着该解决方案,使我感到困惑!
总的来说,我的问题是
1.即使订阅未进行任何Pull调用,发布订阅也如何从主题中找到num_undelivered_messages的值?实际上,通过过滤订阅ID可以在堆栈驱动程序监视中看到此指标。
答案 0 :(得分:0)
未创建的邮件数是基于创建订阅的时间建立的。之后发布的所有消息都是应该传递给订阅的消息。因此,任何未被订阅拉扯和确认的消息都将计入num_undelivered_messages
中。
要解决您的特定问题,最好阅读提要并汇总数据。诸如num_undelivered_messages
之类的统计信息对于检查订户的健康状况很有用,例如,如果计数在增加,则可能表明订户有问题或发布的数据已以某种方式更改。您可以查看所需时间间隔的结束与开始之间的数量差异,以得出在该时间范围内发布的邮件数量的 estimate (假定),同时您也不会消耗确认任何消息。
但是,请务必记住,此提要中发布消息的时间可能与出租车发生的时间不完全一致。想象一下,发布者出现了问题,它无法在一段时间内发布消息,然后一旦修复,就发布了这段时间内积累的所有消息。在这种情况下,消息本身中指示出租车何时发生的时间戳与Cloud Pub / Sub接收消息的时间不匹配。