logstash-output-cloudwatch 2.0.4 → 3.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: f9b99359143e52c73c4281fc2c5cb73f970db373
4
- data.tar.gz: a4fbc533066d1aca97771a4809a87f1342c3a084
3
+ metadata.gz: c0b13f472d66ba03bb414067b32c83a9eb758cc1
4
+ data.tar.gz: 72a7d4d9002a372fc59984ffb4d6cc55212c6177
5
5
  SHA512:
6
- metadata.gz: 9bc29d5820e6ddbe42e61f0c28b3aaabe8e9ec0c4abbc13e7e85edef61877ceb2b574e867753129ae8bb6d0e678818129b9831a76441cdfb70d7d41d98d2a3c2
7
- data.tar.gz: c9789d19bb8916b9081fee675d8ae4618558c20322d8c7f3d3356a383d5de32af828dfd83e1a3ba743fa60fdaece742c557fdaf744460e7c0a291b10c1525e4b
6
+ metadata.gz: 9ecb2fb1ba1d3816fead3ae4c813002190fa174bfcde1ad4f238b2e7d573a3985f0a0cedfc78ded803319fb3343f91d4527e10f5b0d1ae88996e0acbcf019861
7
+ data.tar.gz: cb8e7f4d1ca48a1b202923b7077f51324182664b7bdd8bd078e2f0f3544c72a31f27f447b65e2083ccb8968a486a5f26762082ca22e9b94459913afdcb4b637a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ ## 3.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
  # 2.0.4
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
  # 2.0.3
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%20Outputs/job/logstash-plugin-output-cloudwatch-unit/badge/icon)](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Outputs/job/logstash-plugin-output-cloudwatch-unit/)
3
+ [![Travis Build Status](https://travis-ci.org/logstash-plugins/logstash-output-cloudwatch.svg)](https://travis-ci.org/logstash-plugins/logstash-output-cloudwatch)
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
 
@@ -61,8 +61,8 @@ require "logstash/plugin_mixins/aws_config"
61
61
  # and the specific of API endpoint this output uses,
62
62
  # http://docs.amazonwebservices.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html[PutMetricData]
63
63
  class LogStash::Outputs::CloudWatch < LogStash::Outputs::Base
64
- include LogStash::PluginMixins::AwsConfig
65
-
64
+ include LogStash::PluginMixins::AwsConfig::V2
65
+
66
66
  config_name "cloudwatch"
67
67
 
68
68
  # Constants
@@ -92,6 +92,9 @@ class LogStash::Outputs::CloudWatch < LogStash::Outputs::Base
92
92
  # Set this to the number of events-per-timeframe you will be sending to CloudWatch to avoid extra API calls
93
93
  config :queue_size, :validate => :number, :default => 10000
94
94
 
95
+ # How many data points can be given in one call to the CloudWatch API
96
+ config :batch_size, :validate => :number, :default => 20
97
+
95
98
  # The default namespace to use for events which do not have a `CW_namespace` field
96
99
  config :namespace, :validate => :string, :default => "Logstash"
97
100
 
@@ -151,20 +154,13 @@ class LogStash::Outputs::CloudWatch < LogStash::Outputs::Base
151
154
  # `add_field => [ "CW_dimensions", "prod" ]`
152
155
  config :field_dimensions, :validate => :string, :default => "CW_dimensions"
153
156
 
154
- public
155
- def aws_service_endpoint(region)
156
- return {
157
- :cloud_watch_endpoint => "monitoring.#{region}.amazonaws.com"
158
- }
159
- end
160
-
161
157
  public
162
158
  def register
163
159
  require "thread"
164
160
  require "rufus/scheduler"
165
- require "aws"
161
+ require "aws-sdk"
166
162
 
167
- @cw = AWS::CloudWatch.new(aws_options_hash)
163
+ @cw = Aws::CloudWatch::Client.new(aws_options_hash)
168
164
 
169
165
  @event_queue = SizedQueue.new(@queue_size)
170
166
  @scheduler = Rufus::Scheduler.new
@@ -185,7 +181,7 @@ class LogStash::Outputs::CloudWatch < LogStash::Outputs::Base
185
181
  return
186
182
  end
187
183
 
188
- return unless (event[@field_metricname] || @metricname)
184
+ return unless (event.get(@field_metricname) || @metricname)
189
185
 
190
186
  if (@event_queue.length >= @event_queue.max)
191
187
  @job.trigger
@@ -225,15 +221,17 @@ class LogStash::Outputs::CloudWatch < LogStash::Outputs::Base
225
221
  metric_data << new_data
226
222
  end # data.each
227
223
 
228
- begin
229
- @cw.put_metric_data(
230
- :namespace => namespace,
231
- :metric_data => metric_data
232
- )
233
- @logger.info("Sent data to AWS CloudWatch OK", :namespace => namespace, :metric_data => metric_data)
234
- rescue Exception => e
235
- @logger.warn("Failed to send to AWS CloudWatch", :exception => e, :namespace => namespace, :metric_data => metric_data)
236
- break
224
+ metric_data.each_slice(@batch_size) do |batch|
225
+ begin
226
+ @cw.put_metric_data(
227
+ :namespace => namespace,
228
+ :metric_data => batch
229
+ )
230
+ @logger.info("Sent data to AWS CloudWatch OK", :namespace => namespace, :metric_data => batch)
231
+ rescue Exception => e
232
+ @logger.warn("Failed to send to AWS CloudWatch", :exception => e, :namespace => namespace, :metric_data => batch)
233
+ break
234
+ end
237
235
  end
238
236
  end # aggregates.each
239
237
  return aggregates
@@ -1,10 +1,10 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-output-cloudwatch'
4
- s.version = '2.0.4'
4
+ s.version = '3.0.0'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "This output lets you aggregate and send metric data to AWS CloudWatch"
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,10 +20,9 @@ Gem::Specification.new do |s|
20
20
  s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
21
21
 
22
22
  # Gem dependencies
23
- s.add_runtime_dependency "logstash-core-plugin-api", "~> 1.0"
24
- s.add_runtime_dependency 'logstash-mixin-aws'
23
+ s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
24
+ s.add_runtime_dependency 'logstash-mixin-aws', '>= 1.0.0'
25
25
  s.add_runtime_dependency 'rufus-scheduler', [ '~> 3.0.9' ]
26
- s.add_runtime_dependency 'aws-sdk'
27
26
 
28
27
  s.add_development_dependency 'logstash-devutils'
29
28
  end
metadata CHANGED
@@ -1,86 +1,74 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-cloudwatch
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 3.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: logstash-mixin-aws
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ">="
31
32
  - !ruby/object:Gem::Version
32
- version: '0'
33
- name: logstash-mixin-aws
34
- prerelease: false
33
+ version: 1.0.0
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
- version: '0'
40
+ version: 1.0.0
41
41
  - !ruby/object:Gem::Dependency
42
+ name: rufus-scheduler
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - "~>"
45
46
  - !ruby/object:Gem::Version
46
47
  version: 3.0.9
47
- name: rufus-scheduler
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: 3.0.9
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: aws-sdk
62
- prerelease: false
63
- type: :runtime
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- requirement: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: '0'
75
- name: logstash-devutils
76
- prerelease: false
77
62
  type: :development
63
+ prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
- 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
84
72
  email: info@elastic.co
85
73
  executables: []
86
74
  extensions: []
@@ -101,7 +89,7 @@ licenses:
101
89
  metadata:
102
90
  logstash_plugin: 'true'
103
91
  logstash_group: output
104
- post_install_message:
92
+ post_install_message:
105
93
  rdoc_options: []
106
94
  require_paths:
107
95
  - lib
@@ -116,9 +104,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
104
  - !ruby/object:Gem::Version
117
105
  version: '0'
118
106
  requirements: []
119
- rubyforge_project:
120
- rubygems_version: 2.4.8
121
- signing_key:
107
+ rubyforge_project:
108
+ rubygems_version: 2.5.1
109
+ signing_key:
122
110
  specification_version: 4
123
111
  summary: This output lets you aggregate and send metric data to AWS CloudWatch
124
112
  test_files: