Class: Traxor::Metric::Line
- Inherits:
-
Object
- Object
- Traxor::Metric::Line
- Defined in:
- lib/traxor/metric/line.rb
Class Method Summary collapse
Instance Method Summary collapse
- #count(name, value, tags = {}) ⇒ Object
- #flush ⇒ Object
-
#initialize ⇒ Line
constructor
A new instance of Line.
- #log(string) ⇒ Object
- #logger ⇒ Object
- #measure(name, value, tags = {}) ⇒ Object
- #normalize_values(value) ⇒ Object
- #sample(name, value, tags = {}) ⇒ Object
- #tag_string(tags) ⇒ Object
Constructor Details
#initialize ⇒ Line
Returns a new instance of Line.
14 15 16 17 18 19 |
# File 'lib/traxor/metric/line.rb', line 14 def initialize @counts = [] @measures = [] @samples = [] = {} end |
Class Method Details
.record {|line| ... } ⇒ Object
8 9 10 11 12 |
# File 'lib/traxor/metric/line.rb', line 8 def self.record line = new yield line line.flush end |
Instance Method Details
#count(name, value, tags = {}) ⇒ Object
21 22 23 24 |
# File 'lib/traxor/metric/line.rb', line 21 def count(name, value, = {}) @counts << [name, value] .merge!() end |
#flush ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/traxor/metric/line.rb', line 36 def flush line = '' @counts.each { |name, value| line += " count##{name}=#{value}" } @measures.each { |name, value| line += " measure##{name}=#{value}" } @samples.each { |name, value| line += " sample##{name}=#{value}" } log("#{line} #{tag_string(@tags)}") end |
#log(string) ⇒ Object
56 57 58 59 60 |
# File 'lib/traxor/metric/line.rb', line 56 def log(string) return unless Traxor.enabled? logger.info(normalize_values(string)) end |
#logger ⇒ Object
62 63 64 |
# File 'lib/traxor/metric/line.rb', line 62 def logger Traxor.logger end |
#measure(name, value, tags = {}) ⇒ Object
26 27 28 29 |
# File 'lib/traxor/metric/line.rb', line 26 def measure(name, value, = {}) @measures << [name, value] .merge!() end |
#normalize_values(value) ⇒ Object
52 53 54 |
# File 'lib/traxor/metric/line.rb', line 52 def normalize_values(value) value.to_s.gsub(/::/, '.').underscore.strip end |
#sample(name, value, tags = {}) ⇒ Object
31 32 33 34 |
# File 'lib/traxor/metric/line.rb', line 31 def sample(name, value, = {}) @samples << [name, value] .merge!() end |
#tag_string(tags) ⇒ Object
46 47 48 49 50 |
# File 'lib/traxor/metric/line.rb', line 46 def tag_string() Hash().merge(Traxor::Tags.all).map do |tag_name, tag_value| "tag##{tag_name}=#{tag_value}" end.join(' ') end |