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

GCP监控MQL语言使用问题:单位转换与图例自定义

解决GCP监控MQL的两个问题:单位转换与自定义图例

1. 字节转MB单位

MQL默认返回原始字节值,要转换为MB,只需在计算均值时除以1048576(1MB=1024*1024字节),也可通过unit()函数显式标注单位。

2. 自定义图例内容

通过add_label()或label_map()函数,结合资源字段与指标类型生成清晰的图例名称,比如区分Max/Used内存并带上命名空间标识。

优化后的合并查询(同图表展示Max/Used内存)

// 获取Max内存并处理单位、添加标签
fetch k8s_container
| metric 'external.googleapis.com/jvm/memory/max'
| filter (resource.namespace_name == 'NAMESPACE' && resource.pod_name =~ 'POD_NAME')
| group_by 1m, [value_max_mean: mean(value.max) / 1048576]
| every 1m
| add_label(metric_type, 'JVM Max Memory')
| group_by [resource.namespace_name, metric_type], [value_max_mean: mean(value_max_mean)]

// 合并Used内存查询
join
fetch k8s_container
| metric 'external.googleapis.com/jvm/memory/used'
| filter (resource.namespace_name == 'NAMESPACE' && resource.pod_name =~ 'POD_NAME')
| group_by 1m, [value_used_mean: mean(value.used) / 1048576]
| every 1m
| add_label(metric_type, 'JVM Used Memory')
| group_by [resource.namespace_name, metric_type], [value_used_mean: mean(value_used_mean)]

// 生成自定义图例
| group_by [resource.namespace_name, metric_type], 
    [
        value_max_mean: mean(value_max_mean),
        value_used_mean: mean(value_used_mean)
    ]
| label_map(resource.namespace_name + ' - ' + metric_type, 'legend')

分查询单独优化(保留原结构)

Max内存查询(转MB+自定义图例)

fetch k8s_container
| metric 'external.googleapis.com/jvm/memory/max'
| filter (resource.namespace_name == 'NAMESPACE' && resource.pod_name =~ 'POD_NAME')
| group_by 1m, [value_max_mean: mean(value.max) / 1048576]
| every 1m
| group_by [resource.namespace_name], [value_max_mean: mean(value_max_mean)]
| add_label(legend, resource.namespace_name + ' - JVM Max Memory (MB)')

Used内存查询(转MB+自定义图例)

fetch k8s_container
| metric 'external.googleapis.com/jvm/memory/used'
| filter (resource.namespace_name == 'NAMESPACE' && resource.pod_name =~ 'POD_NAME')
| group_by 1m, [value_used_mean: mean(value.used) / 1048576]
| every 1m
| group_by [resource.namespace_name], [value_used_mean: mean(value_used_mean)]
| add_label(legend, resource.namespace_name + ' - JVM Used Memory (MB)')

说明:

  • 单位转换:若需十进制MB(1MB=1000*1000字节),将除数改为1000000即可
  • 自定义图例:可根据需求调整add_label或label_map中的字符串格式,比如添加Pod名称等额外信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:46:07