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')