class Yabeda::NewRelic::Adapter
NewRelic
adapter. Sends yabeda metrics as custom metrics to NewRelic
. See docs.newrelic.com/docs/agents/ruby-agent/api-guides/ruby-custom-metrics
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/yabeda/newrelic/adapter.rb, line 35 def initialize(*) super ::NewRelic::Agent.add_instrumentation(File.join(__dir__, "configure.rb")) end
Public Instance Methods
perform_counter_increment!(counter, tags, increment)
click to toggle source
# File lib/yabeda/newrelic/adapter.rb, line 15 def perform_counter_increment!(counter, tags, increment) ::NewRelic::Agent.increment_metric(build_name(counter, tags), increment) end
perform_gauge_set!(metric, tags, value)
click to toggle source
# File lib/yabeda/newrelic/adapter.rb, line 23 def perform_gauge_set!(metric, tags, value) ::NewRelic::Agent.record_metric(build_name(metric, tags), value) end
perform_histogram_measure!(metric, tags, value)
click to toggle source
# File lib/yabeda/newrelic/adapter.rb, line 31 def perform_histogram_measure!(metric, tags, value) ::NewRelic::Agent.record_metric(build_name(metric, tags), value) end
register_counter!(_metric)
click to toggle source
# File lib/yabeda/newrelic/adapter.rb, line 11 def register_counter!(_metric) # Do nothing. NewRelic don't need to register metrics end
register_gauge!(_metric)
click to toggle source
# File lib/yabeda/newrelic/adapter.rb, line 19 def register_gauge!(_metric) # Do nothing. NewRelic don't need to register metrics end
register_histogram!(_metric)
click to toggle source
# File lib/yabeda/newrelic/adapter.rb, line 27 def register_histogram!(_metric) # Do nothing. NewRelic don't need to register metrics end
Private Instance Methods
build_name(metric, labels = {})
click to toggle source
# File lib/yabeda/newrelic/adapter.rb, line 43 def build_name(metric, labels = {}) name = metric.name.to_s # Attrs: https://docs.newrelic.com/docs/plugins/plugin-developer-resources/developer-reference/metric-naming-reference#metric_attributes name = "#{name}/#{labels.values.join('/')}" if labels.any? name += units_for(metric) ["Custom", metric.group&.capitalize, name].compact.join("/") end
units_for(metric)
click to toggle source
docs.newrelic.com/docs/plugins/plugin-developer-resources/developer-reference/metric-units-reference
# File lib/yabeda/newrelic/adapter.rb, line 53 def units_for(metric) return "[#{[metric.unit, metric.per].compact.join('/')}]" if metric.unit return "#{name}[|#{metric.per}]" if !metric.unit && metric.per "" end