You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Google MQL实现工作时段内的周/月度统计?

如何用Google MQL实现工作时段内的周/月度统计

要实现排除夜间的工作时段统计,同时结合周/月度时间窗口,需要通过时间字段过滤替代within(避免被右上角时间选择器覆盖),再配合window函数分组,具体方案如下:

核心思路

  • 右上角时间选择器优先级高于查询内的within,因此直接用filter筛选数据的小时段来限定工作时间
  • 先过滤出工作时段的数据,再按周/月窗口做聚合统计
  • 注意时区转换,确保小时判断匹配业务所在时区(而非默认UTC)

具体查询示例

1. 基础版(UTC时区,工作时段7:00-19:00)

fetch k8s_container::'kubernetes.io/container/cpu/request_utilization'
| filter resource.container_name == 'xxx'
// 过滤UTC时间7:00-19:00的工作时段数据
| filter hour(timestamp()) >= 7 && hour(timestamp()) < 19
// 按周窗口聚合95分位值
| group_by window(1w), .percentile(95)

2. 时区转换版(以东八区为例,工作时段7:00-19:00)

如果业务时区是东八区(UTC+8),需先把时间戳转成目标时区再提取小时:

fetch k8s_container::'kubernetes.io/container/cpu/request_utilization'
| filter resource.container_name == 'xxx'
// 将UTC时间戳转换为东八区时间,提取小时后过滤工作时段
| filter hour(shift_timestamp(timestamp(), "UTC+8")) >=7 && hour(shift_timestamp(timestamp(), "UTC+8")) <19
// 按周窗口聚合95分位值
| group_by window(1w), .percentile(95)

3. 月度统计调整

把window(1w)替换为window(1mo)即可实现月度统计:

fetch k8s_container::'kubernetes.io/container/cpu/request_utilization'
| filter resource.container_name == 'xxx'
| filter hour(shift_timestamp(timestamp(), "UTC+8")) >=7 && hour(shift_timestamp(timestamp(), "UTC+8")) <19
| group_by window(1mo), .percentile(95)

扩展说明

  • 可根据实际需求调整工作时段的小时范围(比如改为8:00-20:00)
  • 如果需要排除周末,可额外添加工作日过滤:
    // 过滤周一到周五(1=周一,5=周五)
    | filter day_of_week(shift_timestamp(timestamp(), "UTC+8")) >=1 && day_of_week(shift_timestamp(timestamp(), "UTC+8")) <=5
    

内容的提问来源于stack exchange,提问作者lpkej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:52:17