Class: Yabeda::Gauge
Overview
Arbitrary value, can be changed in both sides
Instance Attribute Summary
Attributes inherited from Metric
#adapter, #aggregation, #comment, #group, #name, #per, #tags, #unit, #values
Instance Method Summary collapse
-
#decrement(tags = {}, by: 1) ⇒ Object
Convenience method to decrement current gauge value for given set of tags by the given decrement value.
-
#increment(tags = {}, by: 1) ⇒ Object
Convenience method to increment current gauge value for given set of tags by the given increment value.
- #set(tags, value) ⇒ Object
Methods inherited from Metric
#adapters, #get, #increment_value, #initialize, #inspect
Constructor Details
This class inherits a constructor from Yabeda::Metric
Instance Method Details
#decrement(tags = {}, by: 1) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/yabeda/gauge.rb', line 36 def decrement(*args) , by = Counter.parse_args(*args) = ::Yabeda::Tags.build(, group) next_value = increment_value(, by: -by) adapters.each_value do |adapter| if adapter.perform_gauge_increment!(self, , -by).nil? adapter.perform_gauge_set!(self, , next_value) end end next_value end |
#increment(tags = {}, by: 1) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/yabeda/gauge.rb', line 20 def increment(*args) , by = Counter.parse_args(*args) = ::Yabeda::Tags.build(, group) next_value = increment_value(, by: by) adapters.each_value do |adapter| if adapter.perform_gauge_increment!(self, , by).nil? adapter.perform_gauge_set!(self, , next_value) end end next_value end |
#set(tags, value) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/yabeda/gauge.rb', line 6 def set(, value) = ::Yabeda::Tags.build(, group) atomic_value = values[] ||= Concurrent::Atom.new(0) atomic_value.swap { |_| value } adapters.each_value do |adapter| adapter.perform_gauge_set!(self, , value) end value end |