是否可以在 MQL 中按包含破折号的用户元数据标签进行分组?

Pau*_*oss 1 google-cloud-monitoring monitoring-query-language

我正在尝试使用 MQL 查询将数据从 Google Cloud Monitoring 导出到 BigQuery 以进行长期存档。我发现按用户分组生成的包含破折号字符(例如“wdl-call-alias”)的元数据标签的查询似乎与 MQL 不兼容。我依赖生成这些标签的第三方系统,并且它们不容易更改。

有没有办法使用 MQL 对包含破折号的元数据标签进行分组?我在下面列出了两个案例,供参考。

使用“sample”标签的工作查询:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/reserved_cores'
| group_by 1m, [value_reserved_cores_mean: mean(value.reserved_cores)]
| every 1m
| group_by [metadata.user.sample: metadata.user_labels.sample],
    [value_reserved_cores_mean_aggregate: aggregate(value_reserved_cores_mean)]
Run Code Online (Sandbox Code Playgroud)

使用“wdl-call-alias”标签的损坏查询:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/reserved_cores'
| group_by 1m, [value_reserved_cores_mean: mean(value.reserved_cores)]
| every 1m
| group_by [metadata.user.wdl-call-alias: metadata.user_labels.wdl-call-alias],
    [value_reserved_cores_mean_aggregate: aggregate(value_reserved_cores_mean)]
Run Code Online (Sandbox Code Playgroud)

小智 5

使用语法: metadata.user_labels.c'wdl-call-alias'

元数据使用与列标签相同的语法(它是一种伪列),并且不是标识符的列标签组件需要使用 orc'....'语法引用c"...."

所以:

| group_by [metadata.user.wdl-call-alias: metadata.user_labels.c'wdl-call-alias'],
    [value_reserved_cores_mean_aggregate: aggregate(value_reserved_cores_mean)]
Run Code Online (Sandbox Code Playgroud)

或者更紧凑:

| group_by [metadata.user_labels.c'wdl-call-alias'], .aggregate
Run Code Online (Sandbox Code Playgroud)