logstash-filter-metrics 3.0.2 → 4.0.0

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: 0b8d5514f0d143b9589a711d713159154cb0ec04
4
- data.tar.gz: abff8e6f3042590dfaffd40db40666c7cf13e7e2
3
+ metadata.gz: 669b8830b869a967bb698f160c6f0a599caa8182
4
+ data.tar.gz: bcc4c55dc48d8be54205c152acf7e69e33db0b76
5
5
  SHA512:
6
- metadata.gz: 088fe7feec3dc422f2eb20e2b1777ccef5ddf02272f4ab0fd128df23fd065cad21b5d742d64685b8833e0dd204093df59a6bc2db5572de1be8534d6e0f815ccc
7
- data.tar.gz: af48f423cebed70d6044d5374f7a8f8e8530e1e61c5292ad1996d35424fe1b91d46ce0afe1e280a59ce05ededfd4875c893bbfd5ffa798a9fca1c0aa51e0dece
6
+ metadata.gz: ad2e3d7e90cfbbfbc367d4a5abfb8fb03f7bbbb4afbad767bb3128df886c243eab71ca5e3d156cad66a14dd378d93b8d6f68a076fe8375c564bf4bbb2da3ee52
7
+ data.tar.gz: eb2463f0ed8663c7fab7af768ae55d91c2a2d93b09269de4713b582846168cc4c43ea2ca0082b0df1c4ef495f7cd116599af63341728c30288059cd173f4da93
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ ## 4.0.0
2
+ - Update the plugin to the version 2.0 of the plugin api, this change is required for Logstash 5.0 compatibility. See https://github.com/elastic/logstash/issues/5141
1
3
  # 3.0.2
2
4
  - Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of logstash
3
5
  # 3.0.1
data/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
1
  source 'https://rubygems.org'
2
- gemspec
2
+
3
+ # Specify your gem's dependencies in logstash-mass_effect.gemspec
4
+ gemspec
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012–2015 Elasticsearch <http://www.elastic.co>
1
+ Copyright (c) 2012–2016 Elasticsearch <http://www.elastic.co>
2
2
 
3
3
  Licensed under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License.
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Logstash Plugin
2
2
 
3
- [![Build
4
- Status](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Filters/job/logstash-plugin-filter-metrics-unit/badge/icon)](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Filters/job/logstash-plugin-filter-metrics-unit/)
3
+ [![Travis Build Status](https://travis-ci.org/logstash-plugins/logstash-filter-metrics.svg)](https://travis-ci.org/logstash-plugins/logstash-filter-metrics)
5
4
 
6
5
  This is a plugin for [Logstash](https://github.com/elastic/logstash).
7
6
 
@@ -56,7 +55,12 @@ gem "logstash-filter-awesome", :path => "/your/local/logstash-filter-awesome"
56
55
  ```
57
56
  - Install plugin
58
57
  ```sh
58
+ # Logstash 2.3 and higher
59
+ bin/logstash-plugin install --no-verify
60
+
61
+ # Prior to Logstash 2.3
59
62
  bin/plugin install --no-verify
63
+
60
64
  ```
61
65
  - Run Logstash with your plugin
62
66
  ```sh
@@ -74,7 +78,12 @@ gem build logstash-filter-awesome.gemspec
74
78
  ```
75
79
  - Install the plugin from the Logstash home
76
80
  ```sh
77
- bin/plugin install /your/local/plugin/logstash-filter-awesome.gem
81
+ # Logstash 2.3 and higher
82
+ bin/logstash-plugin install --no-verify
83
+
84
+ # Prior to Logstash 2.3
85
+ bin/plugin install --no-verify
86
+
78
87
  ```
79
88
  - Start Logstash and proceed to test the plugin
80
89
 
@@ -190,7 +190,7 @@ class LogStash::Filters::Metrics < LogStash::Filters::Base
190
190
  return unless should_flush?
191
191
 
192
192
  event = LogStash::Event.new
193
- event["message"] = Socket.gethostname
193
+ event.set("message", Socket.gethostname)
194
194
  @metric_meters.each_pair do |name, metric|
195
195
  flush_rates event, name, metric
196
196
  metric.clear if should_clear?
@@ -199,14 +199,14 @@ class LogStash::Filters::Metrics < LogStash::Filters::Base
199
199
  @metric_timers.each_pair do |name, metric|
200
200
  flush_rates event, name, metric
201
201
  # These 4 values are not sliding, so they probably are not useful.
202
- event["[#{name}][min]"] = metric.min
203
- event["[#{name}][max]"] = metric.max
202
+ event.set("[#{name}][min]", metric.min)
203
+ event.set("[#{name}][max]", metric.max)
204
204
  # timer's stddev currently returns variance, fix it.
205
- event["[#{name}][stddev]"] = metric.stddev ** 0.5
206
- event["[#{name}][mean]"] = metric.mean
205
+ event.set("[#{name}][stddev]", metric.stddev ** 0.5)
206
+ event.set("[#{name}][mean]", metric.mean)
207
207
 
208
208
  @percentiles.each do |percentile|
209
- event["[#{name}][p#{percentile}]"] = metric.snapshot.value(percentile / 100.0)
209
+ event.set("[#{name}][p#{percentile}]", metric.snapshot.value(percentile / 100.0))
210
210
  end
211
211
  metric.clear if should_clear?
212
212
  end
@@ -237,10 +237,10 @@ class LogStash::Filters::Metrics < LogStash::Filters::Base
237
237
  private
238
238
 
239
239
  def flush_rates(event, name, metric)
240
- event["[#{name}][count]"] = metric.count
241
- event["[#{name}][rate_1m]"] = metric.one_minute_rate if @rates.include? 1
242
- event["[#{name}][rate_5m]"] = metric.five_minute_rate if @rates.include? 5
243
- event["[#{name}][rate_15m]"] = metric.fifteen_minute_rate if @rates.include? 15
240
+ event.set("[#{name}][count]", metric.count)
241
+ event.set("[#{name}][rate_1m]", metric.one_minute_rate) if @rates.include? 1
242
+ event.set("[#{name}][rate_5m]", metric.five_minute_rate) if @rates.include? 5
243
+ event.set("[#{name}][rate_15m]", metric.fifteen_minute_rate) if @rates.include? 15
244
244
  end
245
245
 
246
246
  def metric_key(key)
@@ -1,10 +1,10 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-metrics'
4
- s.version = '3.0.2'
4
+ s.version = '4.0.0'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "The metrics filter is useful for aggregating metrics."
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"
7
+ s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
8
8
  s.authors = ["Elastic"]
9
9
  s.email = 'info@elastic.co'
10
10
  s.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html"
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" }
21
21
 
22
22
  # Gem dependencies
23
- s.add_runtime_dependency "logstash-core-plugin-api", "~> 1.0"
23
+ s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
24
24
  s.add_runtime_dependency "metriks" #(MIT license)
25
25
  s.add_runtime_dependency "thread_safe"
26
26
 
@@ -29,8 +29,8 @@ describe LogStash::Filters::Metrics do
29
29
 
30
30
  it "should flush counts" do
31
31
  insist { subject.length } == 1
32
- insist { subject.first["http_200"]["count"] } == 2
33
- insist { subject.first["http_404"]["count"] } == 1
32
+ insist { subject.first.get("http_200")["count"] } == 2
33
+ insist { subject.first.get("http_404")["count"] } == 1
34
34
  end
35
35
 
36
36
  it "should include rates and percentiles" do
@@ -38,7 +38,7 @@ describe LogStash::Filters::Metrics do
38
38
  rates = [ "rate_1m", "rate_5m", "rate_15m" ]
39
39
  meters.each do |meter|
40
40
  rates.each do |rate|
41
- insist { subject.first[meter] }.include? rate
41
+ insist { subject.first.get(meter) }.include? rate
42
42
  end
43
43
  end
44
44
  end
@@ -56,8 +56,8 @@ describe LogStash::Filters::Metrics do
56
56
  events = filter.flush
57
57
  events = filter.flush
58
58
  insist { events.length } == 1
59
- insist { events.first["http_200"]["count"] } == 2
60
- insist { events.first["http_404"]["count"] } == 1
59
+ insist { events.first.get("http_200")["count"] } == 2
60
+ insist { events.first.get("http_404")["count"] } == 1
61
61
  end
62
62
  end
63
63
  end
@@ -78,7 +78,7 @@ describe LogStash::Filters::Metrics do
78
78
  }
79
79
 
80
80
  it "should include only the requested rates" do
81
- rate_fields = subject.first["http_200"].to_hash.keys.select {|field| field.start_with?("rate") }
81
+ rate_fields = subject.first.get("http_200").to_hash.keys.select {|field| field.start_with?("rate") }
82
82
  insist { rate_fields.length } == 1
83
83
  insist { rate_fields }.include? "rate_1m"
84
84
  end
@@ -114,10 +114,10 @@ describe LogStash::Filters::Metrics do
114
114
  events1 = filter1.flush
115
115
  events2 = filter2.flush
116
116
 
117
- insist { events1.first["http_200"]["count"] } == 1
118
- insist { events2.first["http_200"]["count"] } == 2
119
- insist { events1.first["http_404"]["count"] } == 1
120
- insist { events2.first["http_404"] } == nil
117
+ insist { events1.first.get("http_200")["count"] } == 1
118
+ insist { events2.first.get("http_200")["count"] } == 2
119
+ insist { events1.first.get("http_404")["count"] } == 1
120
+ insist { events2.first.get("http_404") } == nil
121
121
  end
122
122
  end
123
123
 
@@ -135,34 +135,34 @@ describe LogStash::Filters::Metrics do
135
135
 
136
136
  it "should flush counts" do
137
137
  insist { subject.length } == 1
138
- insist { subject.first["http_request_time"]["count"] } == 3
138
+ insist { subject.first.get("http_request_time")["count"] } == 3
139
139
  end
140
140
 
141
141
  it "should include rates and percentiles keys" do
142
142
  metrics = ["rate_1m", "rate_5m", "rate_15m", "p1", "p5", "p10", "p90", "p95", "p99"]
143
143
  metrics.each do |metric|
144
- insist { subject.first["http_request_time"] }.include? metric
144
+ insist { subject.first.get("http_request_time") }.include? metric
145
145
  end
146
146
  end
147
147
 
148
148
  it "should include min value" do
149
- insist { subject.first['http_request_time']['min'] } == 10.0
149
+ insist { subject.first.get("http_request_time")['min'] } == 10.0
150
150
  end
151
151
 
152
152
  it "should include mean value" do
153
- insist { subject.first['http_request_time']['mean'] } == 20.0
153
+ insist { subject.first.get("http_request_time")['mean'] } == 20.0
154
154
  end
155
155
 
156
156
  it "should include stddev value" do
157
- insist { subject.first['http_request_time']['stddev'] } == Math.sqrt(10.0)
157
+ insist { subject.first.get("http_request_time")['stddev'] } == Math.sqrt(10.0)
158
158
  end
159
159
 
160
160
  it "should include max value" do
161
- insist { subject.first['http_request_time']['max'] } == 30.0
161
+ insist { subject.first.get("http_request_time")['max'] } == 30.0
162
162
  end
163
163
 
164
164
  it "should include percentile value" do
165
- insist { subject.first['http_request_time']['p99'] } == 30.0
165
+ insist { subject.first.get("http_request_time")['p99'] } == 30.0
166
166
  end
167
167
  end
168
168
  end
@@ -183,17 +183,17 @@ describe LogStash::Filters::Metrics do
183
183
 
184
184
  it "should flush counts" do
185
185
  insist { subject.length } == 1
186
- insist { subject.first["http_request_time"]["count"] } == 1
186
+ insist { subject.first.get("http_request_time")["count"] } == 1
187
187
  end
188
188
 
189
189
  it "should include only the requested rates" do
190
- rate_fields = subject.first["http_request_time"].to_hash.keys.select {|field| field.start_with?("rate") }
190
+ rate_fields = subject.first.get("http_request_time").to_hash.keys.select {|field| field.start_with?("rate") }
191
191
  insist { rate_fields.length } == 1
192
192
  insist { rate_fields }.include? "rate_1m"
193
193
  end
194
194
 
195
195
  it "should include only the requested percentiles" do
196
- percentile_fields = subject.first["http_request_time"].to_hash.keys.select {|field| field.start_with?("p") }
196
+ percentile_fields = subject.first.get("http_request_time").to_hash.keys.select {|field| field.start_with?("p") }
197
197
  insist { percentile_fields.length } == 2
198
198
  insist { percentile_fields }.include? "p1"
199
199
  insist { percentile_fields }.include? "p2"
@@ -225,9 +225,9 @@ describe LogStash::Filters::Metrics do
225
225
  filter.register
226
226
  filter.filter LogStash::Event.new({"response" => 200})
227
227
 
228
- insist { filter.flush.first["http_200"]["count"] } == 1 # 5s
229
- insist { filter.flush.first["http_200"]["count"] } == 1 # 10s
230
- insist { filter.flush.first["http_200"]["count"] } == 1 # 15s
228
+ insist { filter.flush.first.get("http_200")["count"] } == 1 # 5s
229
+ insist { filter.flush.first.get("http_200")["count"] } == 1 # 10s
230
+ insist { filter.flush.first.get("http_200")["count"] } == 1 # 15s
231
231
  insist { filter.flush }.nil? # 20s
232
232
  end
233
233
  end
metadata CHANGED
@@ -1,72 +1,74 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-24 00:00:00.000000000 Z
11
+ date: 2016-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: logstash-core-plugin-api
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - "~>"
17
18
  - !ruby/object:Gem::Version
18
- version: '1.0'
19
- name: logstash-core-plugin-api
20
- prerelease: false
19
+ version: '2.0'
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
+ name: metriks
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
- name: metriks
34
- prerelease: false
35
34
  type: :runtime
35
+ prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
+ name: thread_safe
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - ">="
45
46
  - !ruby/object:Gem::Version
46
47
  version: '0'
47
- name: thread_safe
48
- prerelease: false
49
48
  type: :runtime
49
+ prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
+ name: logstash-devutils
56
57
  requirement: !ruby/object:Gem::Requirement
57
58
  requirements:
58
59
  - - ">="
59
60
  - !ruby/object:Gem::Version
60
61
  version: '0'
61
- name: logstash-devutils
62
- prerelease: false
63
62
  type: :development
63
+ prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- 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
69
+ description: This gem is a Logstash plugin required to be installed on top of the
70
+ Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This
71
+ gem is not a stand-alone program
70
72
  email: info@elastic.co
71
73
  executables: []
72
74
  extensions: []
@@ -87,7 +89,7 @@ licenses:
87
89
  metadata:
88
90
  logstash_plugin: 'true'
89
91
  logstash_group: filter
90
- post_install_message:
92
+ post_install_message:
91
93
  rdoc_options: []
92
94
  require_paths:
93
95
  - lib
@@ -102,9 +104,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
104
  - !ruby/object:Gem::Version
103
105
  version: '0'
104
106
  requirements: []
105
- rubyforge_project:
106
- rubygems_version: 2.4.8
107
- signing_key:
107
+ rubyforge_project:
108
+ rubygems_version: 2.5.1
109
+ signing_key:
108
110
  specification_version: 4
109
111
  summary: The metrics filter is useful for aggregating metrics.
110
112
  test_files: