logstash influxdb 输出插件 - 如何发送整数

logstash influxdb output plugin - how to send integer

我正在使用 logstash-output-influxdb 插件将事件从 logstash 发送到 influx db。插件的数据点配置如下

data_points => {
          "visitor" => 1
          "lead" => 0
          "category" => "%{[category]}"
          "host" => "%{[host]}"
}

但是这里的问题是 influxdb 中的 visitor 和 lead 字段是整数并且使用上面的配置会导致以下错误

输入字段 \\"visitor\" 测量 \\"visitors_new\" 是浮点类型,已作为整数类型存在。

influxdb 的线路协议说你必须在 i 后面附加数字以表明它是一个整数,所以如果我将我的配置更改为

data_points => {
          "visitor" => "1i"
          "lead" => "0i"
          "category" => "%{[category]}"
          "host" => "%{[host]}"
}

现在错误变成了

输入字段 \\"visitor\" 测量 \\"visitors_new\" 是字符串类型,已作为整数类型存在

如果我将配置更改为

data_points => {
          "visitor" => 1i
          "lead" => 0i
          "category" => "%{[category]}"
          "host" => "%{[host]}"
}

现在 logstash 不接受它作为有效配置。

如何使用 logstash-output-influxdb 插件将整数字段发送到 influxdb?

我建议使用 the coerce => { } parameter 来实现数据输入,而不是在数字中提供线路协议详细信息。

data_points => {
      "visitor" => 1
      "lead" => 0
      "category" => "%{[category]}"
      "host" => "%{[host]}"
}
coerce_values => {
      "visitor" => "integer"
      "lead"    => "integer"
}

这告诉插件这些字段是整数,这可能会更成功。