如何修改GCP MQL查询以将每秒指标输出调整为每分钟指标
GCP MQL 查询修改方案
原查询返回每秒指标的核心原因是 align rate(1m) 语句,rate() 函数计算的是指定时间窗口内的每秒平均速率,你只需修改该对齐语句即可实现返回每分钟指标的需求。
修改后的完整查询
fetch https_lb_rule::loadbalancing.googleapis.com/https/request_count | within 5m | align delta(1m) | every 1m | group_by [ metric.cache_result,metric.proxy_continent,metric.response_code_class,metric.response_code,metric.protocol,resource.backend_name,resource.backend_type,resource.backend_scope,resource.backend_scope_type,resource.backend_target_type,resource.backend_target_name,resource.forwarding_rule_name,resource.matched_url_path_rule,resource.target_proxy_name,resource.url_map_name,resource.region,resource.project_id ], [value_request_count_aggregate: aggregate(value.request_count)]
改动说明
- 核心改动是将原语句的
align rate(1m)替换为align delta(1m):delta()函数会计算指定时间窗口内计数器类型指标的增量,这里1分钟窗口的计算结果就是该分钟的总请求数,单位为次/分钟,完全符合需求。 - 备选方案:如果需要保留rate计算逻辑再做单位换算,也可以在
align rate(1m)语句后新增一行| map value.request_count * 60,两种方案的计算结果完全一致,直接使用delta的写法更简洁可读性更高。
内容的提问来源于stack exchange,提问作者Arindam Choudhury
相关产品推荐
相关产品推荐

