ruby-metrics-opentsdb 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,10 +17,15 @@ module Metrics
17
17
  @hostname = options[:hostname]
18
18
  @port = options[:port]
19
19
  @client = OpenTSDB::Client.new({:hostname => @hostname, :port => @port})
20
- @tags = options[:tags] || {:units => 'none'}
20
+ @tags = options[:tags]
21
21
  end
22
22
 
23
- def send_data(name, value, units = nil)
23
+ def send_data(opts = {})
24
+ name = opts[:name]
25
+ value = opts[:value]
26
+ units = opts[:units]
27
+ extra_tags = opts[:tags]
28
+
24
29
  tsdb_data = {
25
30
  :metric => name,
26
31
  :timestamp => Time.now.to_i,
@@ -30,6 +35,12 @@ module Metrics
30
35
 
31
36
  if units
32
37
  tsdb_data[:tags][:units] = units
38
+ else
39
+ tsdb_data[:tags][:units] = 'none'
40
+ end
41
+
42
+ if extra_tags
43
+ tsdb_data[:tags].merge!(extra_tags)
33
44
  end
34
45
 
35
46
  @client.put(tsdb_data)
@@ -39,32 +50,59 @@ module Metrics
39
50
  agent.instruments.clone.each do |name, instrument|
40
51
  case instrument
41
52
  when Metrics::Instruments::Counter
42
- value = instrument.to_i
43
- send_data name, value
53
+ send_data :name => "#{name}",
54
+ :value => instrument.to_i,
55
+ :tags => instrument.tags,
56
+ :units => instrument.units
57
+
44
58
  when Metrics::Instruments::Gauge
45
59
  if instrument.get.is_a? Hash
46
60
  instrument.get.each do |key, value|
47
- send_data "#{name}.#{key}", value
61
+ send_data :name => "#{name}.#{key}",
62
+ :value => value,
63
+ :tags => instrument.tags,
64
+ :units => instrument.units
48
65
  end
49
66
  else
50
- send_data name, instrument.get, instrument.units
67
+ send_data :name => "#{name}",
68
+ :value => instrument.get,
69
+ :tags => instrument.tags,
70
+ :units => instrument.units
51
71
  end
52
72
  when Metrics::Instruments::Timer
53
73
  rate_units = "#{instrument.units}/sec"
54
74
  time_units = "sec/#{instrument.units}"
55
- send_data "#{name}.count", instrument.count, instrument.units
75
+
76
+ send_data :name => "#{name}.count",
77
+ :value => instrument.count,
78
+ :tags => instrument.tags,
79
+ :units => instrument.units
80
+
56
81
  [:fifteen_minute_rate, :five_minute_rate, :one_minute_rate].each do |attribute|
57
- send_data "#{name}.#{attribute}", instrument.send(attribute), rate_units
82
+ send_data :name => "#{name}.#{attribute}",
83
+ :value => instrument.send(attribute),
84
+ :tags => instrument.tags,
85
+ :units => rate_units
58
86
  end
59
87
 
60
88
  [:min, :max, :mean].each do |attribute|
61
- send_data "#{name}.#{attribute}", instrument.send(attribute), time_units
89
+ send_data :name => "#{name}.#{attribute}",
90
+ :value => instrument.send(attribute),
91
+ :tags => instrument.tags,
92
+ :units => time_units
62
93
  end
63
94
  when Metrics::Instruments::Meter
95
+ send_data :name => "#{name}.count",
96
+ :value => instrument.counted,
97
+ :tags => instrument.tags,
98
+ :units => instrument.units
99
+
64
100
  rate_units = "#{instrument.units}/sec"
65
- send_data "#{name}.count", instrument.count, instrument.units
66
101
  [:fifteen_minute_rate, :five_minute_rate, :one_minute_rate, :mean_rate].each do |attribute|
67
- send_data "#{name}.#{attribute}", instrument.send(attribute), rate_units
102
+ send_data :name => "#{name}.#{attribute}",
103
+ :value => instrument.send(attribute),
104
+ :tags => instrument.tags,
105
+ :units => rate_units
68
106
  end
69
107
  else
70
108
  puts 'Unhandled instrument'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-metrics-opentsdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-08 00:00:00.000000000 Z
12
+ date: 2014-05-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: opentsdb
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - '='
36
36
  - !ruby/object:Gem::Version
37
- version: 0.9.0
37
+ version: 0.9.1
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - '='
44
44
  - !ruby/object:Gem::Version
45
- version: 0.9.0
45
+ version: 0.9.1
46
46
  description: A reporter that uses OpenTSDB to stash metric data
47
47
  email:
48
48
  - john@johnewart.net