diff --git a/lib/logstash/outputs/statsd.rb b/lib/logstash/outputs/statsd.rb index 81e9507e5..861be30fb 100644 --- a/lib/logstash/outputs/statsd.rb +++ b/lib/logstash/outputs/statsd.rb @@ -55,6 +55,9 @@ class LogStash::Outputs::Statsd < LogStash::Outputs::Base # A set metric. metric_name => string to append as hash config :set, :validate => :hash, :default => {} + # A gauge metric. metric_name => gauge as hash + config :gauge, :validate => :hash, :default => {} + # The sample rate for the metric config :sample_rate, :validate => :number, :default => 1 @@ -97,6 +100,10 @@ class LogStash::Outputs::Statsd < LogStash::Outputs::Base @client.set(build_stat(event.sprintf(metric), sender), event.sprintf(val), @sample_rate) end + @gauge.each do |metric, val| + @client.gauge(build_stat(event.sprintf(metric), sender), + event.sprintf(val).to_f, @sample_rate) + end end # def receive def build_stat(metric, sender=@sender) diff --git a/spec/filters/mutate.rb b/spec/filters/mutate.rb index 41de4e87c..2db302934 100644 --- a/spec/filters/mutate.rb +++ b/spec/filters/mutate.rb @@ -52,7 +52,7 @@ describe LogStash::Filters::Mutate do config ' filter { mutate { - remove => [ "remove-me", "remove-me2", "diedie" ] + remove => [ "remove-me", "remove-me2", "diedie", "[one][two]" ] } }' @@ -60,12 +60,14 @@ describe LogStash::Filters::Mutate do "remove-me" => "Goodbye!", "remove-me2" => 1234, "diedie" => [1, 2, 3, 4], - "survivor" => "Hello." + "survivor" => "Hello.", + "one" => { "two" => "wee" } ) do insist { subject["survivor"] } == "Hello." reject { subject }.include?("remove-me") reject { subject }.include?("remove-me2") reject { subject }.include?("diedie") + reject { subject["one"] }.include?("two") end end