Class: Fluent::Plugin::Prometheus::Metric
- Inherits:
-
Object
- Object
- Fluent::Plugin::Prometheus::Metric
- Defined in:
- lib/fluent/plugin/prometheus.rb
Instance Attribute Summary collapse
-
#desc ⇒ Object
readonly
Returns the value of attribute desc.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(element, registry, labels) ⇒ Metric
constructor
A new instance of Metric.
- #labels(record, expander, placeholders) ⇒ Object
Constructor Details
#initialize(element, registry, labels) ⇒ Metric
Returns a new instance of Metric.
86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/fluent/plugin/prometheus.rb', line 86 def initialize(element, registry, labels) ['name', 'desc'].each do |key| if element[key].nil? raise ConfigError, "metric requires '#{key}' option" end end @type = element['type'] @name = element['name'] @key = element['key'] @desc = element['desc'] @base_labels = Fluent::Plugin::Prometheus.parse_labels_elements(element) @base_labels = labels.merge(@base_labels) end |
Instance Attribute Details
#desc ⇒ Object (readonly)
Returns the value of attribute desc.
84 85 86 |
# File 'lib/fluent/plugin/prometheus.rb', line 84 def desc @desc end |
#key ⇒ Object (readonly)
Returns the value of attribute key.
83 84 85 |
# File 'lib/fluent/plugin/prometheus.rb', line 83 def key @key end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
82 83 84 |
# File 'lib/fluent/plugin/prometheus.rb', line 82 def name @name end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
81 82 83 |
# File 'lib/fluent/plugin/prometheus.rb', line 81 def type @type end |
Class Method Details
.get(registry, name, type, docstring) ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/fluent/plugin/prometheus.rb', line 109 def self.get(registry, name, type, docstring) metric = registry.get(name) # should have same type, docstring if metric.type != type raise AlreadyRegisteredError, "#{name} has already been registered as #{type} type" end if metric.docstring != docstring raise AlreadyRegisteredError, "#{name} has already been registered with different docstring" end metric end |
Instance Method Details
#labels(record, expander, placeholders) ⇒ Object
101 102 103 104 105 106 107 |
# File 'lib/fluent/plugin/prometheus.rb', line 101 def labels(record, , placeholders) label = {} @base_labels.each do |k, v| label[k] = .(v, placeholders) end label end |