Class: Evil::Metrics::Prometheus::MetricWrapper

Inherits:
Prometheus::Client::Metric
  • Object
show all
Defined in:
lib/evil/metrics/prometheus/metric_wrapper.rb

Direct Known Subclasses

CounterWrapper, GaugeWrapper

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(metric, base_labels = {}) ⇒ MetricWrapper

Returns a new instance of MetricWrapper.



10
11
12
13
14
15
16
17
18
19
# File 'lib/evil/metrics/prometheus/metric_wrapper.rb', line 10

def initialize(metric, base_labels = {})
  @metric = metric

  @validator = ::Prometheus::Client::LabelSetValidator.new
  @base_labels = base_labels

  validate_name(self.name)
  validate_docstring(self.docstring)
  @validator.valid?(base_labels)
end

Instance Attribute Details

#metricObject (readonly)

Returns the value of attribute metric.



8
9
10
# File 'lib/evil/metrics/prometheus/metric_wrapper.rb', line 8

def metric
  @metric
end

Instance Method Details

#docstringObject



26
27
28
# File 'lib/evil/metrics/prometheus/metric_wrapper.rb', line 26

def docstring
  metric.comment
end

#get(labels = {}) ⇒ Object



30
31
32
33
34
# File 'lib/evil/metrics/prometheus/metric_wrapper.rb', line 30

def get(labels = {})
  @validator.valid?(labels)

  metric.get(labels)
end

#nameObject



21
22
23
24
# File 'lib/evil/metrics/prometheus/metric_wrapper.rb', line 21

def name
  @name ||=
    [metric.group, metric.name, metric.unit].compact.join("_").to_sym
end

#valuesObject



36
37
38
# File 'lib/evil/metrics/prometheus/metric_wrapper.rb', line 36

def values
  metric.values
end