lib/fluent/plugin/out_datacalculator.rb in fluent-plugin-datacalculator-0.0.2 vs lib/fluent/plugin/out_datacalculator.rb in fluent-plugin-datacalculator-0.0.3
- old
+ new
@@ -3,10 +3,11 @@
Fluent::Plugin.register_output('datacalculator', self)
config_param :count_interval, :time, :default => nil
config_param :unit, :string, :default => 'minute'
config_param :aggregate, :string, :default => 'tag'
+ config_param :aggregate_delimiter, :string, :default => '_$_'
config_param :tag, :string, :default => 'datacalculate'
config_param :input_tag_remove_prefix, :string, :default => nil
config_param :formulas, :string
config_param :finalizer, :string, :default => nil
@@ -192,11 +193,11 @@
if @aggregate == 'keys'
outputs = []
counts.keys.each do |pat|
output = {}
- pat_val = pat.split('_').map{|x| x.to_i }
+ pat_val = pat.split(@aggregate_delimiter).map{|x| x.to_s }
counts[pat].each_with_index do |count, i|
name = @_formulas[i][1]
output[name] = count
end
@@ -278,10 +279,10 @@
def emit_aggregate_keys (tag, es, chain)
cs = {}
es.each do |time, record|
matched = false
- pat = @aggregate_keys.map{ |key| record[key] }.join('_')
+ pat = @aggregate_keys.map{ |key| record[key] }.join(@aggregate_delimiter)
cs[pat] = [0] * @_formulas.length unless cs.has_key?(pat)
if @_formulas.length > 0
@_formulas.each do | index, outkey, inkeys, formula|
next unless formula and checkArgs(record, inkeys)