Module: TraceD::ClassMethods

Includes:
InstanceMethods
Defined in:
lib/traced.rb

Instance Method Summary collapse

Methods included from InstanceMethods

#default_count_stat_name, #default_time_stat_name, #traced_method_name

Instance Method Details

#statsd_trace(method, opts = {}) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/traced.rb', line 27

def statsd_trace(method, opts = {})

  old_method_name = traced_method_name(method)
  alias_method old_method_name, method

  define_method method do |*args|

    opts[:stat_name] ||= default_time_stat_name(method)
    opts[:count_stat_name] = default_count_stat_name(opts[:stat_name])

    ::TraceD::Client.increment(opts[:count_stat_name]) if opts[:count]
    ::TraceD::Client.time(opts[:stat_name]) do
      self.send(old_method_name, *args)
    end
  end

end