Module: ServiceSkeleton::MetricsMethods

Defined in:
lib/service_skeleton/metrics_methods.rb

Instance Method Summary collapse

Instance Method Details

#counter(name, docstring:, labels: [], preset_labels: {}) ⇒ Object



21
22
23
# File 'lib/service_skeleton/metrics_methods.rb', line 21

def counter(name, docstring:, labels: [], preset_labels: {})
  metric(Prometheus::Client::Counter.new(name, docstring: docstring, labels: labels, preset_labels: preset_labels))
end

#gauge(name, docstring:, labels: [], preset_labels: {}) ⇒ Object



25
26
27
# File 'lib/service_skeleton/metrics_methods.rb', line 25

def gauge(name, docstring:, labels: [], preset_labels: {})
  metric(Prometheus::Client::Gauge.new(name, docstring: docstring, labels: labels, preset_labels: preset_labels))
end

#histogram(name, docstring:, labels: [], preset_labels: {}, buckets: Prometheus::Client::Histogram::DEFAULT_BUCKETS) ⇒ Object



33
34
35
# File 'lib/service_skeleton/metrics_methods.rb', line 33

def histogram(name, docstring:, labels: [], preset_labels: {}, buckets: Prometheus::Client::Histogram::DEFAULT_BUCKETS)
  metric(Prometheus::Client::Histogram.new(name, docstring: docstring, labels: labels, preset_labels: preset_labels, buckets: buckets))
end

#metric(metric) ⇒ Object



15
16
17
18
19
# File 'lib/service_skeleton/metrics_methods.rb', line 15

def metric(metric)
  @registered_metrics ||= []

  @registered_metrics << metric
end

#registered_metricsObject



11
12
13
# File 'lib/service_skeleton/metrics_methods.rb', line 11

def registered_metrics
  @registered_metrics || []
end

#summary(name, docstring:, labels: [], preset_labels: {}) ⇒ Object



29
30
31
# File 'lib/service_skeleton/metrics_methods.rb', line 29

def summary(name, docstring:, labels: [], preset_labels: {})
  metric(Prometheus::Client::Summary.new(name, docstring: docstring, labels: labels, preset_labels: preset_labels))
end