我想使用MQL从值中获取30分钟间隔内的值的总和。
我目前正在使用sent message count
指标,因为它似乎符合我的需求。我希望我的输出按照订阅id和最近30分钟内所有值的总和进行分组。
我尝试了很多不同的组合来达到我想要的输出,但没有运气。
当前我有这样的查询:
fetch pubsub_subscription
| metric 'pubsub.googleapis.com/subscription/sent_message_count'
| group_by [resource.subscription_id], sum(value.size)
| align rate(30m)
| every 30m
任何帮助都将非常感激。谢谢你
更新:到目前为止,我已经接近我想要的输出尝试这个查询:
fetch pubsub_subscription
| metric 'pubsub.googleapis.com/subscription/sent_message_count'
| value [value.size: value.sent_message_count]
| group_by [resource.subscription_id], sum(value.size)
| every 30m
这个查询让我看到18.77M之前的消息计数0.39M等。然而,当我添加| align rate(1w)
时,它将值变为k/s
而不是M
,例如1.29k/s, 0.01 k/s等
如何将这些数字转换为消息总数?
MQL有一个缩放函数,可以用来缩放一个值。在这种情况下,在align步骤之后添加一个缩放函数可以将其缩放为所需的单位。比例函数将一个单位的值乘以一个比例因子,该比例因子将其转换为另一个单位的值。
例如,表达式scale(3 "min", "s")会将单位分钟(min)的值3转换为单位秒(s)的值180。相同的时间,用不同的单位表示。单位按UCUM标准给出。