module Evil::Metrics::DSL::ClassMethods
Public Instance Methods
collect(&block)
click to toggle source
# File lib/evil/metrics/dsl.rb, line 21 def collect(&block) ::Evil::Metrics.collectors.push(block) end
configure(&block)
click to toggle source
# File lib/evil/metrics/dsl.rb, line 16 def configure(&block) class_exec(&block) @group = nil end
counter(*args, **kwargs)
click to toggle source
# File lib/evil/metrics/dsl.rb, line 29 def counter(*args, **kwargs) register(Counter.new(*args, **kwargs, group: @group)) end
gauge(*args, **kwargs)
click to toggle source
# File lib/evil/metrics/dsl.rb, line 33 def gauge(*args, **kwargs) register(Gauge.new(*args, **kwargs, group: @group)) end
group(group_name)
click to toggle source
# File lib/evil/metrics/dsl.rb, line 25 def group(group_name) @group = group_name end
histogram(*args, **kwargs)
click to toggle source
# File lib/evil/metrics/dsl.rb, line 37 def histogram(*args, **kwargs) register(Histogram.new(*args, **kwargs, group: @group)) end
Private Instance Methods
register(metric)
click to toggle source
# File lib/evil/metrics/dsl.rb, line 43 def register(metric) name = [metric.group, metric.name].compact.join("_") ::Evil::Metrics.define_singleton_method(name) { metric } ::Evil::Metrics.metrics[name] = metric ::Evil::Metrics.adapters.each do |_, adapter| adapter.register!(metric) end metric end