riemann-client 0.0.8 → 0.2.0

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.
data/lib/riemann.rb CHANGED
@@ -5,6 +5,7 @@ module Riemann
5
5
  require 'beefcake'
6
6
  require 'riemann/version'
7
7
  require 'riemann/state'
8
+ require 'riemann/attribute'
8
9
  require 'riemann/event'
9
10
  require 'riemann/query'
10
11
  require 'riemann/message'
@@ -0,0 +1,8 @@
1
+ module Riemann
2
+ class Attribute
3
+ include Beefcake::Message
4
+
5
+ required :key, :string, 1
6
+ optional :value, :string, 2
7
+ end
8
+ end
data/lib/riemann/event.rb CHANGED
@@ -9,6 +9,7 @@ module Riemann
9
9
  optional :description, :string, 5
10
10
  repeated :tags, :string, 7
11
11
  optional :ttl, :float, 8
12
+ repeated :attributes, Attribute, 9
12
13
 
13
14
  optional :metric_sint64, :sint64, 13
14
15
  optional :metric_d, :double, 14
@@ -160,6 +161,11 @@ module Riemann
160
161
  else
161
162
  super hash
162
163
  end
164
+
165
+ # Add extra attributes to the event as Attribute instances with values converted to String
166
+ keys = hash.keys.map {|k| k.to_sym } - self.fields.values.map {|f| f.name.to_sym }
167
+ self.attributes = keys.map {|key| Attribute.new(:key => key.to_s, :value => (hash[key] || hash[key.to_sym]).to_s) }
168
+
163
169
  else
164
170
  super()
165
171
  end
@@ -183,5 +189,31 @@ module Riemann
183
189
  self.metric_f = m.to_f
184
190
  end
185
191
  end
192
+
193
+ # Look up attributes
194
+ def [](k)
195
+ if(respond_to? k)
196
+ super
197
+ else
198
+ r = attributes.select {|a| a.key.to_sym == k.to_sym }.map {|a| a.value}
199
+ r.size > 1 ? r : r.first
200
+ end
201
+ end
202
+
203
+ # Set attributes
204
+ def []=(k, v)
205
+ if(respond_to?("#{k}="))
206
+ super
207
+ else
208
+ a = self.attributes.select {|a| a.key.to_sym == k.to_sym }.first
209
+ if(a)
210
+ a.value = v.to_s
211
+ else
212
+ self.attributes << Attribute.new(:key => k.to_s, :value => v.to_s)
213
+ end
214
+ end
215
+ end
216
+
186
217
  end
218
+
187
219
  end
@@ -1,3 +1,3 @@
1
1
  module Riemann
2
- VERSION = '0.0.8'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riemann-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-03 00:00:00.000000000 Z
12
+ date: 2013-04-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: beefcake
16
- requirement: &5515060 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 0.3.5
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *5515060
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.3.5
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: trollop
27
- requirement: &5514260 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 1.16.2
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *5514260
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 1.16.2
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: mtrc
38
- requirement: &5513580 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,25 +53,31 @@ dependencies:
43
53
  version: 0.0.4
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *5513580
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.4
47
62
  description:
48
63
  email: aphyr@aphyr.com
49
64
  executables: []
50
65
  extensions: []
51
66
  extra_rdoc_files: []
52
67
  files:
53
- - lib/riemann/version.rb
54
- - lib/riemann/state.rb
55
- - lib/riemann/repl-port
68
+ - lib/riemann.rb
69
+ - lib/riemann/attribute.rb
56
70
  - lib/riemann/auto_state.rb
57
71
  - lib/riemann/client.rb
58
72
  - lib/riemann/client/tcp.rb
59
73
  - lib/riemann/client/udp.rb
60
74
  - lib/riemann/event.rb
61
- - lib/riemann/query.rb
62
- - lib/riemann/metric_thread.rb
63
75
  - lib/riemann/message.rb
64
- - lib/riemann.rb
76
+ - lib/riemann/metric_thread.rb
77
+ - lib/riemann/query.rb
78
+ - lib/riemann/repl-port
79
+ - lib/riemann/state.rb
80
+ - lib/riemann/version.rb
65
81
  - LICENSE
66
82
  - README.markdown
67
83
  homepage: https://github.com/aphyr/riemann-ruby-client
@@ -84,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
100
  version: '0'
85
101
  requirements: []
86
102
  rubyforge_project: riemann-client
87
- rubygems_version: 1.8.10
103
+ rubygems_version: 1.8.25
88
104
  signing_key:
89
105
  specification_version: 3
90
106
  summary: Client for the distributed event system Riemann.