logstash-codec-collectd 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 306984fc22301cf93451ae1ddf80f9936865882a
4
- data.tar.gz: f95fd0dec216ad3d3944b5fdca7844f4b0f2bc5a
3
+ metadata.gz: 203b89f4f6e554a81c36f4d452ee2fae6941ce3a
4
+ data.tar.gz: 776de9ef6513114401342ccdc7cc5bd039966463
5
5
  SHA512:
6
- metadata.gz: 050c27df3b32328cd26ad46b61f22c2241cde4e536b2164ba1901ad7475ef0a45cd347a34fb6ec9f527275e42437f5a14d0d08b7355b2a7d15a4258b10c55f42
7
- data.tar.gz: f4a7b1e7a3f9ee1873065c6a983682abf4610edc527ee5732f785474403b4bb930cb003bab02a344baf3ce8b7b47c6f6bda1ba35eba7b22535dedc8bce518c9d
6
+ metadata.gz: 256fb0ec5cc4546881b820ff61970fa9c2db4b4b83e642f631b3552e730c6d47a99b68d59cd316c0df7aad035e4e8b0043ba6bd4105cd3ff993cd1f3f81831d7
7
+ data.tar.gz: af4de700cfc0c1fc1853dbfa2aab50645603f17d0ef18ffd9ae7aa58d9451181188c728353c63db90a1cfb1a218e022b35d91f6c282b549736058bf66fde6800
data/CHANGELOG.md ADDED
@@ -0,0 +1,2 @@
1
+ # 0.1.10
2
+ * Ensure that notifications make it through. Reported in #10
@@ -73,6 +73,7 @@ class LogStash::Codecs::Collectd < LogStash::Codecs::Base
73
73
  'host' => true,
74
74
  '@timestamp' => true,
75
75
  'type_instance' => true,
76
+ 'severity' => true,
76
77
  }
77
78
 
78
79
  COLLECTD_TYPE_FIELDS = {
@@ -81,11 +82,13 @@ class LogStash::Codecs::Collectd < LogStash::Codecs::Base
81
82
  'plugin' => true,
82
83
  'plugin_instance' => true,
83
84
  'type_instance' => true,
85
+ 'severity' => true,
84
86
  }
85
87
 
86
88
  INTERVAL_VALUES_FIELDS = {
87
89
  "interval" => true,
88
90
  "values" => true,
91
+ "message" => true,
89
92
  }
90
93
 
91
94
  INTERVAL_BASE_FIELDS = {
@@ -273,7 +276,7 @@ class LogStash::Codecs::Collectd < LogStash::Codecs::Base
273
276
  8 => hirestime_decoder,
274
277
  9 => hiresinterval_decoder,
275
278
  256 => string_decoder,
276
- 257 => numeric_decoder,
279
+ 257 => counter_decoder,
277
280
  512 => signature_decoder,
278
281
  528 => encryption_decoder
279
282
  }
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-codec-collectd'
4
- s.version = '0.1.9'
4
+ s.version = '0.1.10'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Read events from the collectd binary protocol"
7
7
  s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
@@ -5,7 +5,7 @@ require "insist"
5
5
  require "tempfile"
6
6
 
7
7
  describe LogStash::Codecs::Collectd do
8
- context "None" do
8
+ context "Normal message handling" do
9
9
  subject do
10
10
  next LogStash::Codecs::Collectd.new({})
11
11
  end
@@ -17,45 +17,63 @@ describe LogStash::Codecs::Collectd do
17
17
  subject.decode(payload) do |event|
18
18
  case counter
19
19
  when 0
20
- insist { event['host'] } == "lieters-klaptop.prot.plexis.eu"
21
- insist { event['plugin'] } == "interface"
22
- insist { event['plugin_instance'] } == "wlan0"
23
- insist { event['collectd_type'] } == "if_errors"
24
- insist { event['rx'] } == 0
25
- insist { event['tx'] } == 0
20
+ expect(event['host']).to eq("lieters-klaptop.prot.plexis.eu")
21
+ expect(event['plugin']).to eq("interface")
22
+ expect(event['plugin_instance']).to eq("wlan0")
23
+ expect(event['collectd_type']).to eq("if_errors")
24
+ expect(event['rx']).to eq(0)
25
+ expect(event['tx']).to eq(0)
26
26
  when 2
27
- insist { event['host'] } == "lieters-klaptop.prot.plexis.eu"
28
- insist { event['plugin'] } == "entropy"
29
- insist { event['collectd_type'] } == "entropy"
30
- insist { event['value'] } == 157.0
27
+ expect(event['host']).to eq("lieters-klaptop.prot.plexis.eu")
28
+ expect(event['plugin']).to eq("entropy")
29
+ expect(event['collectd_type']).to eq("entropy")
30
+ expect(event['value']).to eq(157.0)
31
31
  end
32
32
  counter += 1
33
33
  end
34
- insist { counter } == 28
34
+ expect(counter).to eq(28)
35
35
  end # it "should parse a normal packet"
36
36
 
37
+ it "should parse a packet with a message and a severity" do
38
+ payload = ["000000236c6965746572732d6b6c6170746f702e70726f742e706c657869732e6575000008000c14b0a645f3eb73c30009000c00000002800000000002000e696e74657266616365000003000a776c616e30000004000e69665f6572726f7273000006001800020202000000000000000000000000000000000008000c14b0a645f3eb525e000300076c6f000004000f69665f7061636b6574730000060018000202020000000000001cd80000000000001cd80008000c14b0a645f3ebf8c10002000c656e74726f70790000030005000004000c656e74726f7079000006000f0001010000000000a063400008000c14b0a645f3eb6c700002000e696e74657266616365000003000a776c616e30000004000f69665f7061636b657473000006001800020202000000000002d233000000000001c3b10008000c14b0a645f3eb59b1000300076c6f000004000e69665f6572726f7273000006001800020202000000000000000000000000000000000008000c14b0a645f425380b00020009737761700000030005000004000973776170000005000975736564000006000f00010100000000000000000008000c14b0a645f4254c8d0005000966726565000006000f00010100000000fcffdf410008000c14b0a645f4255ae70005000b636163686564000006000f00010100000000000000000008000c14b0a645f426f09f0004000c737761705f696f0000050007696e000006000f00010200000000000000000008000c14b0a645f42701e7000500086f7574000006000f00010200000000000000000008000c14b0a645f42a0edf0002000a7573657273000004000a75736572730000050005000006000f00010100000000000022400008000c14b0a645f5967c8b0002000e70726f636573736573000004000d70735f7374617465000005000c72756e6e696e67000006000f00010100000000000000000008000c14b0a645f624706c0005000d736c656570696e67000006000f0001010000000000c067400008000c14b0a645f624861a0005000c7a6f6d62696573000006000f00010100000000000000000008000c14b0a645f62494740005000c73746f70706564000006000f00010100000000000010400008000c14b0a645f6254aa90005000b706167696e67000006000f00010100000000000000000008000c14b0a645f6255b110005000c626c6f636b6564000006000f00010100000000000000000008000c14b0a645f62763060004000e666f726b5f726174650000050005000006000f00010200000000000025390008000c14b0a64873bf8f47000200086370750000030006300000040008637075000005000975736572000006000f0001020000000000023caa0008000c14b0a64873bfc9dd000500096e696365000006000f00010200000000000000030008000c14b0a64873bfe9350005000b73797374656d000006000f00010200000000000078bc0008000c14b0a64873c004290005000969646c65000006000f00010200000000000941fe0008000c14b0a64873c020920005000977616974000006000f00010200000000000002050008000c14b0a64873c03e280005000e696e74657272757074000006000f00010200000000000000140008000c14b0a64873c04ba20005000c736f6674697271000006000f00010200000000000001890008000c14b0a64873c058860005000a737465616c000006000f00010200000000000000000008000c14b0a64873c071b80003000631000005000975736572000006000f000102000000000002440e0008000c14b0a64873c07f31000500096e696365000006000f00010200000000000000070001000c00000000556dd2fa0101000c000000000000000200000015746573742e6578616d706c652e636f6d00000200096c6f616400000400096c6f6164000100001154657374204d65737361676500"].pack('H*')
39
+
40
+ counter = 0
41
+ subject.decode(payload) do |event|
42
+ case counter
43
+ when 29
44
+ expect(event['host']).to eq("test.example.com")
45
+ expect(event['plugin']).to eq("load")
46
+ expect(event['collectd_type']).to eq("load")
47
+ expect(event['message']).to eq("Test Message")
48
+ expect(event['severity']).to eq(2)
49
+ end
50
+ counter += 1
51
+ end
52
+ expect(counter).to eq(29)
53
+ end # it "should parse a packet with a message and a severity"
54
+
37
55
  it "should drop a part with an header length" do
38
56
  payload = ["000000236c6965746572732d6b6c6170746f702e70726f742e706c657869732e6575000008000c14b0a645f3eb73c30009000c00000002800000000002000e696e74657266616365000003000a776c616e30000004000e69665f6572726f7273000006001800020202000000000000000000000000000000000008000c14b0a645f3eb525e000300076c6f000004000f69665f7061636b6574730000060018000202020000000000001cd80000000000001cd80008000c14b0a645f3ebf8c10002000c656e74726f70790000030005000004000c656e74726f7079000006000f0001010000000000a063400008000c14b0a645f3eb6c700002000e696e74657266616365000003000a776c616e30000004000f69665f7061636b657473000006001800020202000000000002d233000000000001c3b10008000c14b0a645f3eb59b1000300076c6f000004000e69665f6572726f7273000006001800020202000000000000000000000000000000000008000c14b0a645f425380b00020009737761700000030005000004000973776170000005000975736564000006000f00010100000000000000000008000c14b0a645f4254c8d0005000966726565000006000f00010100000000fcffdf410008000c14b0a645f4255ae70005000b636163686564000006000f00010100000000000000000008000c14b0a645f426f09f0004000c737761705f696f0000050007696e000006000f00010200000000000000000008000c14b0a645f42701e7000500086f7574000006000f00010200000000000000000008000c14b0a645f42a0edf0002000a7573657273000004000a75736572730000050005000006000f00010100000000000022400008000c14b0a645f5967c8b0002000e70726f636573736573000004000d70735f7374617465000005000c72756e6e696e67000006000f00010100000000000000000008000c14b0a645f624706c0005000d736c656570696e67000006000f0001010000000000c067400008000c14b0a645f624861a0005000c7a6f6d62696573000006000f00010100000000000000000008000c14b0a645f62494740005000c73746f70706564000006000f00010100000000000010400008000c14b0a645f6254aa90005000b706167696e67000006000f00010100000000000000000008000c14b0a645f6255b110005000c626c6f636b6564000006000f00010100000000000000000008000c14b0a645f62763060004000e666f726b5f726174650000050005000006000f00010200000000000025390008000c14b0a64873bf8f47000200086370750000030006300000040008637075000005000975736572000006000f0001020000000000023caa0008000c14b0a64873bfc9dd000500096e696365000006000f00010200000000000000030008000c14b0a64873bfe9350005000b73797374656d000006000f00010200000000000078bc0008000c14b0a64873c004290005000969646c65000006000f00010200000000000941fe0008000c14b0a64873c020920005000977616974000006000f00010200000000000002050008000c14b0a64873c03e280005000e696e74657272757074000006000f00010200000000000000140008000c14b0a64873c04ba20005000c736f6674697271000006000f00010200000000000001890008000c14b0a64873c058860005000a737465616c000006000f00010200000000000000000008000c14b0a64873c071b80003000631000005000975736572000006000f000102000000000002440e0008000c14b0a64873c07f31000500316e696365000006000f0001020000000000000007"].pack('H*')
39
57
  counter = 0
40
58
  subject.decode(payload) do |event|
41
59
  case counter
42
60
  when 0
43
- insist { event['host'] } == "lieters-klaptop.prot.plexis.eu"
44
- insist { event['plugin'] } == "interface"
45
- insist { event['plugin_instance'] } == "wlan0"
46
- insist { event['collectd_type'] } == "if_errors"
47
- insist { event['rx'] } == 0
48
- insist { event['tx'] } == 0
61
+ expect(event['host']).to eq("lieters-klaptop.prot.plexis.eu")
62
+ expect(event['plugin']).to eq("interface")
63
+ expect(event['plugin_instance']).to eq("wlan0")
64
+ expect(event['collectd_type']).to eq("if_errors")
65
+ expect(event['rx']).to eq(0)
66
+ expect(event['tx']).to eq(0)
49
67
  when 2
50
- insist { event['host'] } == "lieters-klaptop.prot.plexis.eu"
51
- insist { event['plugin'] } == "entropy"
52
- insist { event['collectd_type'] } == "entropy"
53
- insist { event['value'] } == 157.0
68
+ expect(event['host']).to eq("lieters-klaptop.prot.plexis.eu")
69
+ expect(event['plugin']).to eq("entropy")
70
+ expect(event['collectd_type']).to eq("entropy")
71
+ expect(event['value']).to eq(157.0)
54
72
  end
55
73
  counter += 1
56
74
  end
57
75
  # One of these will fail because I altered the payload from the normal packet
58
- insist { counter } == 27
76
+ expect(counter).to eq(27)
59
77
  end # it "should drop a part with an header length"
60
78
 
61
79
  # This payload contains a NaN value
@@ -65,16 +83,16 @@ describe LogStash::Codecs::Collectd do
65
83
  subject.decode(payload) do |event|
66
84
  case counter
67
85
  when 0
68
- insist { event['host'] } == "test.example.com"
69
- insist { event['plugin'] } == "ping"
70
- insist { event['type_instance'] } == "ping-target.example.com"
71
- insist { event['collectd_type'] } == "ping"
72
- insist { event['value'] } == 0 # Not a NaN
73
- insist { event['tags'] } == ["_collectdNaN"]
86
+ expect(event['host']).to eq("test.example.com")
87
+ expect(event['plugin']).to eq("ping")
88
+ expect(event['type_instance']).to eq("ping-target.example.com")
89
+ expect(event['collectd_type']).to eq("ping")
90
+ expect(event['value']).to eq(0) # Not a NaN
91
+ expect(event['tags']).to eq(["_collectdNaN"])
74
92
  end
75
93
  counter += 1
76
94
  end
77
- insist { counter } == 1
95
+ expect(counter).to eq(1)
78
96
  end # it "should replace a NaN with a zero and add tag '_collectdNaN' by default"
79
97
  end # context "None"
80
98
 
@@ -90,16 +108,16 @@ describe LogStash::Codecs::Collectd do
90
108
  subject.decode(payload) do |event|
91
109
  case counter
92
110
  when 0
93
- insist { event['host'] } == "test.example.com"
94
- insist { event['plugin'] } == "ping"
95
- insist { event['type_instance'] } == "ping-target.example.com"
96
- insist { event['collectd_type'] } == "ping"
97
- insist { event['value'] } == 1 # Not a NaN
98
- insist { event['tags'] } == ["NaN_encountered"]
111
+ expect(event['host']).to eq("test.example.com")
112
+ expect(event['plugin']).to eq("ping")
113
+ expect(event['type_instance']).to eq("ping-target.example.com")
114
+ expect(event['collectd_type']).to eq("ping")
115
+ expect(event['value']).to eq(1) # Not a NaN
116
+ expect(event['tags']).to eq(["NaN_encountered"])
99
117
  end
100
118
  counter += 1
101
119
  end
102
- insist { counter } == 1
120
+ expect(counter).to eq(1)
103
121
  end # it "should replace a NaN with the specified value and tag 'NaN_encountered'"
104
122
  end # context "Replace nan_value and nan_tag with non-default values"
105
123
 
@@ -115,15 +133,15 @@ describe LogStash::Codecs::Collectd do
115
133
  subject.decode(payload) do |event|
116
134
  case counter
117
135
  when 0
118
- insist { event['host'] } == "test.example.com"
119
- insist { event['plugin'] } == "ping"
120
- insist { event['type_instance'] } == "ping-target.example.com"
121
- insist { event['collectd_type'] } == "ping"
122
- insist { event['value'] } == 0 # Not a NaN
136
+ expect(event['host']).to eq("test.example.com")
137
+ expect(event['plugin']).to eq("ping")
138
+ expect(event['type_instance']).to eq("ping-target.example.com")
139
+ expect(event['collectd_type']).to eq("ping")
140
+ expect(event['value']).to eq(0) # Not a NaN
123
141
  end
124
142
  counter += 1
125
143
  end
126
- insist { counter } == 1
144
+ expect(counter).to eq(1)
127
145
  end # it "should replace a NaN with a zero and receive a warning when 'nan_handling' set to warn"
128
146
  end # context "Warn on NaN event"
129
147
 
@@ -138,15 +156,15 @@ describe LogStash::Codecs::Collectd do
138
156
  subject.decode(payload) do |event|
139
157
  case counter
140
158
  when 0
141
- insist { event['host'] } == "test.example.com"
142
- insist { event['plugin'] } == "ping"
143
- insist { event['type_instance'] } == "ping-target.example.com"
144
- insist { event['collectd_type'] } == "ping"
145
- insist { event['value'] } == NaN # NaN
159
+ expect(event['host']).to eq("test.example.com")
160
+ expect(event['plugin']).to eq("ping")
161
+ expect(event['type_instance']).to eq("ping-target.example.com")
162
+ expect(event['collectd_type']).to eq("ping")
163
+ expect(event['value']).to eq(NaN) # NaN
146
164
  end
147
165
  counter += 1 # Because we're dropping this, it should not increment
148
166
  end
149
- insist { counter } == 0 # We expect no increment
167
+ expect(counter).to eq(0) # We expect no increment
150
168
  end # it "should drop an event with a NaN value when 'nan_handling' set to drop"
151
169
  end # context "Drop NaN event"
152
170
 
@@ -168,7 +186,7 @@ describe LogStash::Codecs::Collectd do
168
186
  counter += 1
169
187
  end
170
188
 
171
- insist { counter } == 24
189
+ expect(counter).to eq(24)
172
190
  end # it "should parse a correctly signed packet"
173
191
 
174
192
  it "should not parse an incorrectly signed packet" do
@@ -178,7 +196,7 @@ describe LogStash::Codecs::Collectd do
178
196
  counter += 1
179
197
  end
180
198
 
181
- insist { counter } == 0
199
+ expect(counter).to eq(0)
182
200
  end # it "should not parse and incorrectly signed packet"
183
201
  end # context "Sign"
184
202
 
@@ -195,7 +213,7 @@ describe LogStash::Codecs::Collectd do
195
213
  counter += 1
196
214
  end
197
215
 
198
- insist { counter } == 24
216
+ expect(counter).to eq(24)
199
217
  end # it "should parse an encrypted packet"
200
218
 
201
219
  it "should not parse unencrypted packets when encrypt is configured" do
@@ -205,7 +223,7 @@ describe LogStash::Codecs::Collectd do
205
223
  counter += 1
206
224
  end
207
225
 
208
- insist { counter } == 0
226
+ expect(counter).to eq(0)
209
227
  end # it "should not parse unencrypted packets when encrypt is configured"
210
228
  end # context "Encrypt"
211
229
  end # describe LogStash::Codecs::Collectd
metadata CHANGED
@@ -1,17 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-codec-collectd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-20 00:00:00.000000000 Z
11
+ date: 2015-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- requirement: !ruby/object:Gem::Requirement
14
+ name: logstash-core
15
+ version_requirements: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - '>='
17
18
  - !ruby/object:Gem::Version
@@ -19,10 +20,7 @@ dependencies:
19
20
  - - <
20
21
  - !ruby/object:Gem::Version
21
22
  version: 2.0.0
22
- name: logstash-core
23
- prerelease: false
24
- type: :runtime
25
- version_requirements: !ruby/object:Gem::Requirement
23
+ requirement: !ruby/object:Gem::Requirement
26
24
  requirements:
27
25
  - - '>='
28
26
  - !ruby/object:Gem::Version
@@ -30,20 +28,22 @@ dependencies:
30
28
  - - <
31
29
  - !ruby/object:Gem::Version
32
30
  version: 2.0.0
31
+ prerelease: false
32
+ type: :runtime
33
33
  - !ruby/object:Gem::Dependency
34
- requirement: !ruby/object:Gem::Requirement
34
+ name: logstash-devutils
35
+ version_requirements: !ruby/object:Gem::Requirement
35
36
  requirements:
36
37
  - - '>='
37
38
  - !ruby/object:Gem::Version
38
39
  version: '0'
39
- name: logstash-devutils
40
- prerelease: false
41
- type: :development
42
- version_requirements: !ruby/object:Gem::Requirement
40
+ requirement: !ruby/object:Gem::Requirement
43
41
  requirements:
44
42
  - - '>='
45
43
  - !ruby/object:Gem::Version
46
44
  version: '0'
45
+ prerelease: false
46
+ type: :development
47
47
  description: This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program
48
48
  email: info@elastic.co
49
49
  executables: []
@@ -51,6 +51,7 @@ extensions: []
51
51
  extra_rdoc_files: []
52
52
  files:
53
53
  - .gitignore
54
+ - CHANGELOG.md
54
55
  - CONTRIBUTORS
55
56
  - Gemfile
56
57
  - LICENSE