Output filter plugin to rewrite Collectd JSON output to nest into a nested json
Rewrites the message coming from Collectd to store as a nested json. Can be used in Elasticsearch to display metrics.
Installation
Use RubyGems: If you use td-agent
td-agent-gem install fluent-plugin-collectd-nest
If you use fluentd
gem install fluent-plugin-collectd-nest
Configuration
<match pattern>
type collectd_nest
</match>
If the following record is passed:
[{"time" => 1000, "host" => 'host_v', "interval" => 5, "plugin" => 'plugin_v', "plugin_instance" => 'plugin_instance_v', "type" => 'type_v', "type_instance" => 'type_instance_v', "values" => ['v1', 'v2'], "dsnames" => ['n1', 'n2'], "dstypes" => ['t1', 't2']}]
then you get new record:
[{"host" => "host_v", "collectd": {"time" => 1000, "interval" => 5,
"plugin" => "plugin_v", "plugin_instace" => "plugin_instance_v",
"type" => "type_v", "type_instance" => "type_instance_v", "dstypes" => "t1",
"plugin_v" => {"type_v" => {"n1" => "v1", "n2" => "v2"}}}}]
Empty values in "plugin", "plugin_instance", "type" or "type_instance" will not be copied into the new tag name
WARNING
- This plugin was written to deal with a specific use-case, might not be the best fit for everyone. If you need more configurability/features, create a PR
Copyright
| Author | Viaq |
| License | MIT License |