reacter 0.0.18 → 0.0.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/reacter/parsers/kairosdb.rb +47 -0
  2. metadata +17 -51
@@ -0,0 +1,47 @@
1
+ require 'reacter/parser'
2
+
3
+ class Reacter
4
+ class Message
5
+ class KairosdbParser < Parser
6
+ class<<self
7
+ require 'multi_json'
8
+ require 'oj'
9
+
10
+ def detected?(message)
11
+ (message[0] == '{' or message[0] == '[')
12
+ end
13
+
14
+ def parse(message)
15
+ [*MultiJson.load(message)].collect{|i|
16
+ {
17
+ :metric => i['name'],
18
+ :time => i['timestamp'].to_i,
19
+ :value => i['value'],
20
+ :attributes => i['tags']
21
+ }
22
+ }
23
+ end
24
+
25
+ def dump(message)
26
+ message = message.to_h if message.is_a?(Message)
27
+ return nil unless message.is_a?(Hash)
28
+ return nil unless message[:source]
29
+ return nil unless message[:metric]
30
+ return nil unless message[:value]
31
+ return nil unless message[:time]
32
+
33
+ attributes = {
34
+ :host => message[:source]
35
+ }.merge(message[:attributes] || {})
36
+
37
+ MultiJson.dump({
38
+ :name => message[:metric],
39
+ :timestamp => message[:time].to_i,
40
+ :value => message[:value],
41
+ :tags => attributes
42
+ })
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reacter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.18
4
+ version: 0.0.19
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2013-03-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &10277620 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
24
+ version_requirements: *10277620
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: em-http-server
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &10277180 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ! '>='
@@ -37,15 +32,10 @@ dependencies:
37
32
  version: '0'
38
33
  type: :runtime
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
35
+ version_requirements: *10277180
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: deep_merge
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &10276520 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ! '>='
@@ -53,15 +43,10 @@ dependencies:
53
43
  version: '0'
54
44
  type: :runtime
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
46
+ version_requirements: *10276520
62
47
  - !ruby/object:Gem::Dependency
63
48
  name: hashlib
64
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &10275600 !ruby/object:Gem::Requirement
65
50
  none: false
66
51
  requirements:
67
52
  - - ! '>='
@@ -69,15 +54,10 @@ dependencies:
69
54
  version: '0'
70
55
  type: :runtime
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
57
+ version_requirements: *10275600
78
58
  - !ruby/object:Gem::Dependency
79
59
  name: hiredis
80
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &10274860 !ruby/object:Gem::Requirement
81
61
  none: false
82
62
  requirements:
83
63
  - - ! '>='
@@ -85,15 +65,10 @@ dependencies:
85
65
  version: '0'
86
66
  type: :runtime
87
67
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
68
+ version_requirements: *10274860
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: multi_json
96
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &10273860 !ruby/object:Gem::Requirement
97
72
  none: false
98
73
  requirements:
99
74
  - - ! '>='
@@ -101,15 +76,10 @@ dependencies:
101
76
  version: '0'
102
77
  type: :runtime
103
78
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
79
+ version_requirements: *10273860
110
80
  - !ruby/object:Gem::Dependency
111
81
  name: oj
112
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &10272700 !ruby/object:Gem::Requirement
113
83
  none: false
114
84
  requirements:
115
85
  - - ! '>='
@@ -117,12 +87,7 @@ dependencies:
117
87
  version: '0'
118
88
  type: :runtime
119
89
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
90
+ version_requirements: *10272700
126
91
  description: A utility for consuming, transforming, and routing monitoring data from
127
92
  various sources
128
93
  email: ghetzel@outbrain.com
@@ -151,6 +116,7 @@ files:
151
116
  - lib/reacter/parsers/graphite.rb
152
117
  - lib/reacter/parsers/json.rb
153
118
  - lib/reacter/parsers/tsdb.rb
119
+ - lib/reacter/parsers/kairosdb.rb
154
120
  - lib/reacter/util.rb
155
121
  - bin/reacter
156
122
  homepage: http://outbrain.github.com/reacter/
@@ -173,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
139
  version: '0'
174
140
  requirements: []
175
141
  rubyforge_project:
176
- rubygems_version: 1.8.23
142
+ rubygems_version: 1.8.11
177
143
  signing_key:
178
144
  specification_version: 3
179
145
  summary: Reacter monitoring processor