logstash-filter-metrics 3.0.2 → 4.0.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.
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: