Class: Evil::Metrics::Prometheus::Adapter
- Inherits:
-
BaseAdapter
- Object
- BaseAdapter
- Evil::Metrics::Prometheus::Adapter
- Defined in:
- lib/evil/metrics/prometheus/adapter.rb
Instance Method Summary collapse
- #build_name(metric) ⇒ Object
- #perform_counter_increment! ⇒ Object
- #perform_gauge_set! ⇒ Object
- #perform_histogram_measure!(metric, tags, value) ⇒ Object
- #register_counter!(metric) ⇒ Object
- #register_gauge!(metric) ⇒ Object
- #register_histogram!(metric) ⇒ Object
- #registry ⇒ Object
- #validate_metric!(metric) ⇒ Object
Instance Method Details
#build_name(metric) ⇒ Object
44 45 46 |
# 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! ⇒ Object
21 22 23 |
# 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! ⇒ Object
30 31 32 |
# 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) ⇒ Object
40 41 42 |
# File 'lib/evil/metrics/prometheus/adapter.rb', line 40 def perform_histogram_measure!(metric, , value) registry.get(build_name(metric)).observe(, value) end |
#register_counter!(metric) ⇒ Object
16 17 18 19 |
# 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) ⇒ Object
25 26 27 28 |
# 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) ⇒ Object
34 35 36 37 38 |
# 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 ⇒ Object
12 13 14 |
# File 'lib/evil/metrics/prometheus/adapter.rb', line 12 def registry @registry ||= ::Prometheus::Client.registry end |
#validate_metric!(metric) ⇒ Object
48 49 50 51 52 |
# 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 |