I'm collecting some performance data from collectd and have a pipeline
built with collectd -> Kafka -> NiFi where I intend to route the samples
based on some rules and the format of those samples.

The payload of the collectd samples is like the JSON below (and I've not
prettified it) and I'm having issues parsing out any of the values.  I've
used sites like http://ashphy.com/JSONPathOnlineEvaluator/ to try a few
JsonPath expressions but am not successful.  Current value I'm trying is
'$..values'.

[{"values":[0.11,0.11,0.09],"dstypes":["gauge","gauge","gauge"],"dsnames":["shortterm","midterm","longterm"],"time":1443721390.389,"interval":30.000,"host":"my-virtual-machine","plugin":"load","plugin_instance":"","type":"load","type_instance":""}]

I think part of the issue is that 'values', as an example, is an array of
several values and the error (below) says "Unable to return scalar value".
True - as you can see, but even when I have single value it's stored in an
array element.  Nothing out there leads me to believe this is invalid JSON
either (JSONLint, etc) and it looks like the processor is adding and extra
'[' in the expression.

EvaluateJsonPath[id=3aef1ef7-b1b2-438d-a958-0228138a9ff8] Unable to return
a scalar value for the expression $..['values'] for FlowFile 1735438.
Evaluated value was [[74424320]]. Transferring to failure.


Thoughts?

-Chris

Reply via email to