Class: CoAspects::Aspects::StatsMeasureAspect

Inherits:
Aspector::Base
  • Object
show all
Defined in:
lib/co_aspects/aspects/stats_measure_aspect.rb

Overview

Measures a method and stores the result on StatsD.

The key is automatically generated converting the modules, class name and method name into underscores.

The key can be overridden via the as: option and a dynamic part can be added at the end using a block that receives the same arguments as the method.

Note: The default key is used if both as and block are missing. If either is present, the default is not used and if both are present, then they are simply concatenated.

Examples

module MyModule
  class MyClass
    aspects_annotations!

    _stats_measure
    def task1
      ...
    end

    _stats_measure(as: 'my_key') { |arg| arg }
    def task2(arg)
      ...
    end
  end
end

MyClass.new.task1
# => StatsD.measure('my_module.my_class.task1')

MyClass.new.task2('dynamic')
# => StatsD.measure('my_key.dynamic')