logstash-output-awslogs 0.1.29 → 1.1.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
  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: []