diff --git a/lib/metriks/reporter/librato_metrics.rb b/lib/metriks/reporter/librato_metrics.rb index 9ea0183..4a22566 100644 --- a/lib/metriks/reporter/librato_metrics.rb +++ b/lib/metriks/reporter/librato_metrics.rb @@ -12,6 +12,12 @@ def initialize(email, token, options = {}) @registry = options[:registry] || Metriks::Registry.default @interval = options[:interval] || 60 @on_error = options[:on_error] || proc { |ex| } + + if options[:only] and options[:except] + raise 'Can only specify one of :only or :except' + end + @only = options[:only] || [] + @except = options[:except] || [] end def start @@ -121,6 +127,15 @@ def prepare_metric(base_name, metric, keys, snapshot_keys = []) base_name = "#{@prefix}.#{base_name}" end + if @only + keys = keys & @only + snapshot_keys = snapshot_keys & @only + end + if @except + keys = keys - @except + snapshot_keys = snapshot_keys - @except + end + keys.flatten.each do |key| name = key.to_s.gsub(/^get_/, '') value = metric.send(key)