class Evil::Metrics::Prometheus::Adapter

Public Instance Methods

build_name(metric) click to toggle source
# File lib/evil/metrics/prometheus/adapter.rb, line 44
def build_name(metric)
  [metric.group, metric.name, metric.unit].compact.join("_").to_sym
end
perform_counter_increment!(*) click to toggle source
# File lib/evil/metrics/prometheus/adapter.rb, line 21
def perform_counter_increment!(*)
  # Do nothing. Prometheus will read current value from evil metric
end
perform_gauge_set!(*) click to toggle source
# File lib/evil/metrics/prometheus/adapter.rb, line 30
def perform_gauge_set!(*)
  # Do nothing. Prometheus will read current value from evil metric
end
perform_histogram_measure!(metric, tags, value) click to toggle source
# File lib/evil/metrics/prometheus/adapter.rb, line 40
def perform_histogram_measure!(metric, tags, value)
  registry.get(build_name(metric)).observe(tags, value)
end
register_counter!(metric) click to toggle source
# File lib/evil/metrics/prometheus/adapter.rb, line 16
def register_counter!(metric)
  validate_metric!(metric)
  registry.register(Prometheus::CounterWrapper.new(metric))
end
register_gauge!(metric) click to toggle source
# File lib/evil/metrics/prometheus/adapter.rb, line 25
def register_gauge!(metric)
  validate_metric!(metric)
  registry.register(Prometheus::GaugeWrapper.new(metric))
end
register_histogram!(metric) click to toggle source
# File lib/evil/metrics/prometheus/adapter.rb, line 34
def register_histogram!(metric)
  validate_metric!(metric)
  buckets = metric.buckets || ::Prometheus::Client::Histogram::DEFAULT_BUCKETS
  registry.histogram(build_name(metric), metric.comment, {}, buckets)
end
registry() click to toggle source
# File lib/evil/metrics/prometheus/adapter.rb, line 12
def registry
  @registry ||= ::Prometheus::Client.registry
end
validate_metric!(metric) click to toggle source
# File lib/evil/metrics/prometheus/adapter.rb, line 48
def validate_metric!(metric)
  return if metric.comment

  raise ArgumentError, "Prometheus require metrics to have comments"
end