Kapacitor: unable to parse: invalid boolean

Hello all,

I am sending some metrics from fluentd to Kapacitor OSS version 1.5.9 for stream processing. Using fangli/fluent-plugin-influxdb as the fluentd plugin to send data to Kapacitor in version 1 lineformat.

From the packet capture I can see that , this is the line thats being sent to Kapacitor:

nodeexporter09,_seq=6 host={"network"=>{"out"=>{"bytes"=>1329771, "packets"=>457}, "in"=>{"bytes"=>1309413, "packets"=>461}}, "name"=>"myhost"} 1620454532615

Which gets the error: unable to parse: invalid boolean

Fluentd infact sends multiple points in a single HTTP request, and all of them are rejected by Kapacitor with same error message.

My questions are:

  1. Is this a valid line in line protocol? I could’t find its definition in reference docs?
  2. If so, what could be the error here
  3. If not, any one with experience with fluentd plugin to see why the plugin sends a wrong line protocol here.

This was a problem with fluent-plugin-influxdb. Fixed and submitted a PR at fluent-plugin-influxdb/pull/107

The current version was not correctly handling nested fields.

@xuoguoto,
Thanks for sharing your solution(s)!