logstash-output-awslogs 0.1.29 → 1.1.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
  SHA256:
3
- metadata.gz: a6d187d9a46e3d3b58b9cc7782499de7de990eca4eb2ba212b03abe8ff29d42e
4
- data.tar.gz: 217c5ae517cfc1333ec150499be174543087a9063374a1a65ae66fcc3525f909
3
+ metadata.gz: 35a2986de71192feddeed31243d6df14b3529466c3d9322247f5636b5d281a37
4
+ data.tar.gz: 54bfbc0840676ec0c6d61d7c55cb6f657af2132d1e7bdee988361db0ebc33758
5
5
  SHA512:
6
- metadata.gz: deccb83b39e6b80517fc1682fd877a385c60c1ff0ff82854dc87f12950a6399a7d9a025cb14602965ea841e7daee35a6be3e0d3eaa62ad8c969e56f26982f2fb
7
- data.tar.gz: eec9cb42b0ffc31a6b7a39ca1d53fb0eea33bc4494b47e2a80dfd1d7efb1dd08fb12ffc3b843476ca9ae3ee06d2a518064d5701f4486fe624c53fc76066ffff6
6
+ metadata.gz: ee764d98dbcb421e69765f516374c574204674a56f3e348f62b3656135ba8509ae3ff10a1550ed60152bb4579e3a959d2474ab6701069f36f9ad5d3385b68fe4
7
+ data.tar.gz: 48b68fbe90554fc9807d9fa3bea6b1504b721729d512df9e2f392fdd70b53ad9c78a69531a62e7fcda9700ae9b7d1e0d34f054d2e0bd8d89005b568c88885679
data/CHANGELOG.md CHANGED
File without changes
data/CONTRIBUTORS CHANGED
File without changes
data/DEVELOPER.md CHANGED
File without changes
data/Gemfile CHANGED
File without changes
data/LICENSE CHANGED
File without changes
data/README.md CHANGED
File without changes
@@ -3,7 +3,7 @@
3
3
  require 'logstash/outputs/base'
4
4
  require 'logstash/namespace'
5
5
  require 'logstash/plugin_mixins/aws_config'
6
- require 'aws-sdk'
6
+ require 'aws-sdk-cloudwatchlogs'
7
7
 
8
8
  Aws.eager_autoload!
9
9
 
@@ -51,42 +51,6 @@ class LogStash::Outputs::Awslogs < LogStash::Outputs::Base
51
51
  end
52
52
  end
53
53
 
54
- group_names = []
55
- to_send.each do |event_log_names, _events|
56
- event_log_group_name = event_log_names[0]
57
- event_log_stream_name = event_log_names[1]
58
- next_sequence_token_key = [event_log_group_name, event_log_stream_name]
59
- next if @next_sequence_tokens.keys.include? next_sequence_token_key
60
- unless group_names.include? event_log_group_name
61
- group_names.push(event_log_group_name)
62
- end
63
- end
64
-
65
- group_names.each do |log_group_name|
66
- unless sequence_tokens.keys.include? log_group_name
67
- sequence_tokens.store(log_group_name, {})
68
- end
69
- begin
70
- @client.describe_log_streams({log_group_name: log_group_name}).each do |response|
71
- response.log_streams.each do |log_stream_data|
72
- unless log_stream_data.upload_sequence_token&.empty?
73
- sequence_tokens[log_group_name][log_stream_data.log_stream_name.to_s] = log_stream_data.upload_sequence_token.to_s
74
- end
75
- end
76
- end
77
- rescue Aws::CloudWatchLogs::Errors::ResourceNotFoundException => e
78
- @logger.info("Will create log group #{log_group_name} and retry")
79
- begin
80
- @client.create_log_group({log_group_name: log_group_name})
81
- rescue Aws::CloudWatchLogs::Errors::ResourceAlreadyExistsException => e
82
- @logger.info("Log group #{log_group_name} already exists")
83
- end
84
- retry
85
- rescue Aws::CloudWatchLogs::Errors::ThrottlingException => e
86
- @logger.info('Describe streams throttling, retry')
87
- retry
88
- end
89
- end
90
54
 
91
55
  to_send.each do |event_log_names, log_events|
92
56
  event_log_group_name = event_log_names[0]
@@ -103,11 +67,9 @@ class LogStash::Outputs::Awslogs < LogStash::Outputs::Base
103
67
 
104
68
  if @next_sequence_tokens.keys.include? next_sequence_token_key
105
69
  send_opts[:sequence_token] = @next_sequence_tokens[next_sequence_token_key]
106
- elsif !sequence_tokens[event_log_group_name][event_log_stream_name]&.empty?
107
- send_opts[:sequence_token] = sequence_tokens[event_log_group_name][event_log_stream_name]
108
- else
109
70
  begin
110
- @client.create_log_stream(ident_opts)
71
+ resp = @client.put_log_events(send_opts)
72
+ @next_sequence_tokens.store(next_sequence_token_key, resp.next_sequence_token)
111
73
  rescue Aws::CloudWatchLogs::Errors::ResourceNotFoundException => e
112
74
  @logger.info('Will create log group/stream and retry')
113
75
  begin
@@ -121,42 +83,13 @@ class LogStash::Outputs::Awslogs < LogStash::Outputs::Base
121
83
  @logger.info("Log stream #{send_opts[:log_stream_name]} already exists")
122
84
  end
123
85
  retry
86
+ rescue Aws::CloudWatchLogs::Errors::InvalidSequenceTokenException => e
87
+ send_opts[:sequence_token] = e.expected_sequence_token
88
+ retry
124
89
  rescue Aws::CloudWatchLogs::Errors::ThrottlingException => e
125
- @logger.info('Creating log streams throttling, retry')
90
+ @logger.info('Logs throttling, retry')
126
91
  retry
127
- rescue Aws::CloudWatchLogs::Errors::ResourceAlreadyExistsException => e
128
- @logger.info("Log stream #{send_opts[:log_stream_name]} already exists")
129
- end
130
- end
131
- begin
132
- resp = @client.put_log_events(send_opts)
133
- @next_sequence_tokens.store(next_sequence_token_key, resp.next_sequence_token)
134
- rescue Aws::CloudWatchLogs::Errors::ResourceNotFoundException => e
135
- @logger.info('Will create log group/stream and retry')
136
- begin
137
- @client.create_log_group({log_group_name: send_opts[:log_group_name]})
138
- rescue Aws::CloudWatchLogs::Errors::ResourceAlreadyExistsException => e
139
- @logger.info("Log group #{send_opts[:log_group_name]} already exists")
140
- end
141
- begin
142
- @client.create_log_stream({log_group_name: send_opts[:log_group_name], log_stream_name: send_opts[:log_stream_name]})
143
- rescue Aws::CloudWatchLogs::Errors::ResourceAlreadyExistsException => e
144
- @logger.info("Log stream #{send_opts[:log_stream_name]} already exists")
145
- end
146
- retry
147
- rescue Aws::CloudWatchLogs::Errors::InvalidSequenceTokenException => e
148
- @logger.info(e.code)
149
- response = @client.describe_log_streams({log_group_name: send_opts[:log_group_name], log_stream_name_prefix: send_opts[:log_stream_name]})
150
- response.log_streams.each do |stream_data|
151
- if stream_data.log_stream_name == send_opts[:log_stream_name]
152
- send_opts[:sequence_token] = stream_data.upload_sequence_token
153
- break
154
- end
155
92
  end
156
- retry
157
- rescue Aws::CloudWatchLogs::Errors::ThrottlingException => e
158
- @logger.info('Logs throttling, retry')
159
- retry
160
93
  end
161
94
  end
162
95
  end # def multi_receive_encodeds
@@ -1,9 +1,9 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-awslogs'
3
- s.version = '0.1.29'
3
+ s.version = '1.1.0'
4
4
  s.licenses = ['Apache-2.0']
5
5
  s.summary = 'Writes events to AWS CloudWatch logs.'
6
- s.homepage = 'https://github.com/rickycook/logstash-output-awslogs'
6
+ s.homepage = 'https://github.com/Anarhyst266/logstash-output-awslogs'
7
7
  s.authors = ['Anton Klyba']
8
8
  s.email = 'anarhyst266+gems@gmail.com'
9
9
  s.require_paths = ['lib']
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  # Gem dependencies
20
20
  s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
21
21
  s.add_runtime_dependency "logstash-codec-plain"
22
- s.add_runtime_dependency 'logstash-mixin-aws', '>= 4.3.0'
22
+ s.add_runtime_dependency "aws-sdk-cloudwatchlogs", '~> 1'
23
+ s.add_runtime_dependency "logstash-integration-aws"
23
24
  s.add_development_dependency "logstash-devutils"
24
- s.add_development_dependency "aws-sdk-cloudwatchlogs"
25
25
  end
metadata CHANGED
@@ -1,86 +1,86 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-awslogs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.29
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Klyba
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-18 00:00:00.000000000 Z
11
+ date: 2022-06-17 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
19
  version: '2.0'
19
- name: logstash-core-plugin-api
20
- prerelease: false
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
26
  version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
+ name: logstash-codec-plain
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
- name: logstash-codec-plain
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: aws-sdk-cloudwatchlogs
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
- - - ">="
45
+ - - "~>"
45
46
  - !ruby/object:Gem::Version
46
- version: 4.3.0
47
- name: logstash-mixin-aws
48
- prerelease: false
47
+ version: '1'
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
- version: 4.3.0
54
+ version: '1'
55
55
  - !ruby/object:Gem::Dependency
56
+ name: logstash-integration-aws
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
+ type: :runtime
62
63
  prerelease: false
63
- type: :development
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
+ name: logstash-devutils
70
71
  requirement: !ruby/object:Gem::Requirement
71
72
  requirements:
72
73
  - - ">="
73
74
  - !ruby/object:Gem::Version
74
75
  version: '0'
75
- name: aws-sdk-cloudwatchlogs
76
- prerelease: false
77
76
  type: :development
77
+ prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- description:
83
+ description:
84
84
  email: anarhyst266+gems@gmail.com
85
85
  executables: []
86
86
  extensions: []
@@ -94,13 +94,13 @@ files:
94
94
  - README.md
95
95
  - lib/logstash/outputs/awslogs.rb
96
96
  - logstash-output-awslogs.gemspec
97
- homepage: https://github.com/rickycook/logstash-output-awslogs
97
+ homepage: https://github.com/Anarhyst266/logstash-output-awslogs
98
98
  licenses:
99
99
  - Apache-2.0
100
100
  metadata:
101
101
  logstash_plugin: 'true'
102
102
  logstash_group: output
103
- post_install_message:
103
+ post_install_message:
104
104
  rdoc_options: []
105
105
  require_paths:
106
106
  - lib
@@ -115,9 +115,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  requirements: []
118
- rubyforge_project:
119
- rubygems_version: 2.6.11
120
- signing_key:
118
+ rubygems_version: 3.0.3.1
119
+ signing_key:
121
120
  specification_version: 4
122
121
  summary: Writes events to AWS CloudWatch logs.
123
122
  test_files: []