Azure Service Bus已完成消息Count指标聚合值显示异常咨询
根因说明
这是Azure Monitor指标聚合的通用逻辑导致的,和Service Bus消息处理本身没有关系:
- 你当前选的1分钟时间粒度下,Service Bus服务端每个时间窗口只会上报1次
Completed messages指标的原始采样值,采样值本身就是该窗口内累计完成的消息条数。 - Azure Monitor对所有平台指标的基础聚合计算规则是固定的,和指标对应的业务含义无关:
Max、Avg:计算当前时间窗口内所有采样值的最大值、平均值。因为单窗口只有1个有效采样值,这两个值就等于该窗口实际完成的消息数,跨窗口累加后自然和你发送的100条总消息量匹配。Count:统计的是当前时间窗口内,服务端上报的有效指标采样点的个数,根本不是用来统计窗口内的消息总数的。1分钟粒度下每个窗口通常只有1个采样点,所以Count显示为1;如果某个窗口刚好没有触发采样上报,Count就显示为0,和你观察到的现象完全吻合。
正确统计总消息量的方式
要算指定时间段内的总完成消息数,不要选Count聚合,改用Sum聚合就行——这个聚合会把每个时间窗口的采样值(也就是单窗口完成的消息数)累加,结果就是准确的总完成消息计数。
补充:这个聚合逻辑是Azure Monitor全平台通用的,不是Service Bus独有的设计。不管是计算存储、虚拟机还是其他服务的平台指标,
Count聚合统计的都是采样点数量,不是指标对应的业务事件数量。
内容的提问来源于stack exchange,提问作者Teebs
相关产品推荐
相关产品推荐

