logstash-codec-collectd 0.1.9 → 0.1.10

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.
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