使用 GJSON 语法的选择表达式,如使用 jq 的示例

Selection expression using GJSON syntax, as in the example with jq

我正在尝试使用 Telegraf 配置 HTTP 输入插件,但我需要使用 select 表达式 select 某些指标并将它们写入特定的 Influxdb 数据库。我知道如何 select 使用 jq,但我不能使用 GJSON 请求。

我的输出是这样的:

  [
      {
        "properties": {
          "headers": {
            "database": "telegraf"
          },
          "content_type": "text/plain"
        },
        "payload": "net,cluster_id=cluster01,dc=dc02,host=specific_host01,instance=instance-00107205 network_write_packets=15100740,network_write_drops=0 1628285530000000000\n",
        "payload_encoding": "string"
      },
      {
        "properties": {
          "headers": {
            "database": "stats"
          },
          "content_type": "text/plain"
        },
        "payload": "dsk_stats,Region=Q3,host=specific_host01 disk_usage=8.344534641 1628285530000000000\n",
        "payload_encoding": "string"
      }
  ]

为了按统计信息选择指标,我使用的是 jq:

    curl -s -H "content-type:application/json" localhost:8080 |jq '.[] | select(.properties.headers.database=="stats") | "\(.payload)"
    dsk_stats,Region=Q3,host=specific_host01 disk_usage=8.344534641 1628285530000000000\n

是否可以使用 GJSON 语法制作这样的 json selection?

给你

#(properties.headers.database=="stats").payload

https://play.golang.org/p/7bXY6F2MQeZ