lib/fluent/plugin/out_metricsense.rb in fluent-plugin-metricsense-0.2.2 vs lib/fluent/plugin/out_metricsense.rb in fluent-plugin-metricsense-0.2.3
- old
+ new
@@ -59,11 +59,11 @@
config_param :remove_tag_prefix, :string, :default => nil
config_param :add_tag_prefix, :string, :default => nil
config_param :backend, :string
- config_param :aggregate_interval, :integer, :default => 60
+ config_param :aggregate_interval, :time, :default => 60
def configure(conf)
super
if @remove_tag_prefix
@@ -83,10 +83,15 @@
be = BACKENDS[@backend]
unless be
raise ConfigError, "unknown backend: #{@backend.inspect}"
end
+ # aggregate_interval must be a multiple of 60 to normalize values
+ # into X per minute
+ @aggregate_interval = @aggregate_interval.to_i / 60 * 60
+ @normalize_factor = @aggregate_interval / 60
+
@backend = be.new
@backend.configure(conf)
end
def start
@@ -169,10 +174,14 @@
def initialize
@value = 0
end
attr_reader :value
+ def normalized_value(n)
+ n == 1 ? @value : @value.to_f / n
+ end
+
def add(value)
@value += value
end
def mode
@@ -184,10 +193,14 @@
def initialize
@value = 0
end
attr_reader :value
+ def normalized_value(n)
+ @value
+ end
+
def add(value)
if @value < value
@value = value
end
@value
@@ -229,10 +242,10 @@
}
}
data = []
counters.each_pair {|ak,up|
- data << [ak.tag, ak.time, up.value, ak.seg_key, ak.seg_val, up.mode]
+ data << [ak.tag, ak.time, up.normalized_value(@normalize_factor), ak.seg_key, ak.seg_val, up.mode]
}
@backend.write(data)
end
end