class Yabeda::Prometheus::Mmap::Adapter

Prometheus metrics collecion adapter

Public Instance Methods

build_name(metric) click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 62
def build_name(metric)
  [metric.group, metric.name, metric.unit].compact.join('_').to_sym
end
build_tags(tags) click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 66
def build_tags(tags)
  Array(tags).each_with_object({}) do |tag, hash|
    hash[tag] = nil
  end
end
debug!() click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 78
def debug!
  Yabeda.configure do
    group :yabeda_prometheus_mmap

    histogram :render_duration,
              tags: %i[], unit: :seconds,
              buckets: [0.001, 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10],
              comment: 'Time required to render all metrics in Prometheus format'
  end
end
perform_counter_increment!(metric, tags, value) click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 28
def perform_counter_increment!(metric, tags, value)
  registry.get(build_name(metric)).increment(tags, value)
end
perform_gauge_set!(metric, tags, value) click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 42
def perform_gauge_set!(metric, tags, value)
  registry.get(build_name(metric)).set(tags, value)
end
perform_histogram_measure!(metric, tags, value) click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 58
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/yabeda/prometheus/mmap/adapter.rb, line 18
def register_counter!(metric)
  validate_metric!(metric)

  registry.counter(
    build_name(metric),
    metric.comment,
    build_tags(metric.tags)
  )
end
register_gauge!(metric) click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 32
def register_gauge!(metric)
  validate_metric!(metric)

  registry.gauge(
    build_name(metric),
    metric.comment,
    build_tags(metric.tags)
  )
end
register_histogram!(metric) click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 46
def register_histogram!(metric)
  buckets = metric.buckets ||
            ::Prometheus::Client::Histogram::DEFAULT_BUCKETS

  registry.histogram(
    build_name(metric),
    metric.comment,
    build_tags(metric.tags),
    buckets
  )
end
registry() click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 14
def registry
  @registry ||= ::Yabeda::Prometheus::Mmap.registry
end
validate_metric!(metric) click to toggle source
# File lib/yabeda/prometheus/mmap/adapter.rb, line 72
def validate_metric!(metric)
  return if metric.comment

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