如何修改GCP MQL查询获取指定月份K8s节点字节级流量数据
调整GCP MQL查询获取指定月份的字节级节点流量
要实现查询特定Kubernetes节点在指定月份的字节级流量数据,需从速率转总字节数和限定时间范围两个核心点调整原查询,具体步骤和示例如下:
核心调整说明
替换速率计算为总字节累加
原查询使用align rate(30d)计算的是30天内的平均传输速率(MiB/s),而kubernetes.io/node/network/received_bytes_count是递增的字节计数器,要获取总流量字节数,需将align rate替换为align sum,直接累加时间范围内的字节增量。精确指定月份时间范围
通过| within子句限定查询的时间区间,格式为within '起始时间' to '结束时间'。以2023年2月为例,起始时间设为当月1日0点,结束时间设为次月1日0点,确保覆盖整个目标月份(注意使用UTC时区,GCP监控默认采用UTC)。
完整查询示例
示例1:获取指定节点2023年2月每日接收字节数
fetch k8s_node | metric 'kubernetes.io/node/network/received_bytes_count' | filter node_name == '你的节点名称' # 替换为实际节点名称,去掉则返回所有节点数据 | within '2023-02-01T00:00:00Z' to '2023-03-01T00:00:00Z' | align sum(1d) | every 1d | group_by ['node_name'], [daily_received_bytes: aggregate(value.received_bytes_count)]
示例2:获取指定节点2023年2月总接收字节数
如果不需要按天拆分,直接获取整月总和,可简化为:
fetch k8s_node | metric 'kubernetes.io/node/network/received_bytes_count' | filter node_name == '你的节点名称' | within '2023-02-01T00:00:00Z' to '2023-03-01T00:00:00Z' | align sum(28d) # 2023年2月共28天,对应月份天数调整即可 | group_by ['node_name'], [monthly_total_received_bytes: aggregate(value.received_bytes_count)]
注意事项
- 计数器重置处理:MQL的
sum函数会自动处理节点重启导致的计数器重置问题,计算的是时间范围内的真实字节增量总和。 - 时区适配:如果需要使用本地时区,可将时间字符串转换为对应时区格式(如
'2023-02-01T00:00:00+08:00'表示东八区)。
内容的提问来源于stack exchange,提问作者Thiago Gabriel Leite Ferreira
相关产品推荐
相关产品推荐

