首页 > 解决方案 > GCP 日志:如何在对象数组中查询(类似正则表达式)

问题描述

假设我的日志看起来像:

{
  jsonPayload: {
    anArray: [
      {
        someField: 10000
      }
    ]
  }
}

在我的 GCP 日志查询中,我想查询如下内容:

jsonPayload.anArray.*.someField > 1000

当然,上面的查询是不正确的,但我想知道是否可以查询对象数组中 someField 值高于 1000 的任何项目。

谢谢

标签: logginggoogle-cloud-platformgoogle-cloud-stackdriver

解决方案


假设您有一个如下所示的数据结构:

{
  "message":{
    "message1":[
      {
        "value":950
      },
      {
        "value":2000
      },
      {
        "value":1200
      }
    ]
  }
}

JsonPayload在 Logs Explorer 中,您可以运行下面的查询,如果其中至少 1 个对象满足条件值 > 1000 ,则返回整个查询。此查询遵循逻辑950 > 1000 OR 9 > 1000 OR 1200 > 1000您可以在Querying Logging 文档中阅读有关查询的更多信息。

resource.type="global"
jsonPayload.message.message1.value > 1000

我有另一个JsonPayload条目,其值为 5000,并且只是该条目的唯一值。从而返回两个条目。

结果:

在此处输入图像描述


推荐阅读