fluent-plugin-cloudwatch-logs 0.4.2 → 0.4.3.pre1

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
- SHA1:
3
- metadata.gz: df90aca722066e72f7e3901d87abc5bbe416798f
4
- data.tar.gz: 39a30c862da3e02461ccd26ff7d33703c3a9ca37
2
+ SHA256:
3
+ metadata.gz: d3fc9af570c6757d34aa84c9205ac2f0b8544d9d583e25bff8cf1722b9130f1f
4
+ data.tar.gz: 627d217aff2db666bd07b23de643b4d1664776840967d14aba7f3e45b517b5e3
5
5
  SHA512:
6
- metadata.gz: 3e60f711c0c5ba080646d1ea2ef22dd31ba3afa453f457147077714f83c90b5107981d6a4aff97ce9a98faff70ec7de2fa889fd49d5342a3713dca6cd57a536b
7
- data.tar.gz: 54d7b1ad8aace95b7f9eeb05dea7426015314a711dd156c2f61c47c829f0168939b061bb01a3575f9c8ca87ce3150fe0c23b391b83bc43a234a43c229ab30251
6
+ metadata.gz: 3714ed8c7a2c8ca44aa7d7843ab21d1dea32b7b136b5416d74c5733e4c1651231ef89581f3775f468381bce415094cc39b0a02ee5a785812687a097d8360276b
7
+ data.tar.gz: 9059d211dc518c7f15009c8f30dcfe514977b26d4d85abf4f439da1751c21ffcb5933e76c3f10adeed50deb7373ffcc655fc377069584039126b9555a4353917
@@ -2,7 +2,7 @@ module Fluent
2
2
  module Plugin
3
3
  module Cloudwatch
4
4
  module Logs
5
- VERSION = "0.4.2"
5
+ VERSION = "0.4.3.pre1"
6
6
  end
7
7
  end
8
8
  end
@@ -191,6 +191,10 @@ module Fluent
191
191
  end
192
192
  end
193
193
 
194
+ def delete_sequence_token(group_name, stream_name)
195
+ @sequence_tokens[group_name].delete(stream_name)
196
+ end
197
+
194
198
  def next_sequence_token(group_name, stream_name)
195
199
  @sequence_tokens[group_name][stream_name]
196
200
  end
@@ -235,16 +239,17 @@ module Fluent
235
239
  end
236
240
 
237
241
  def put_events(group_name, stream_name, events, events_bytesize)
238
- args = {
239
- log_events: events,
240
- log_group_name: group_name,
241
- log_stream_name: stream_name,
242
- }
243
- token = next_sequence_token(group_name, stream_name)
244
-
245
242
  response = nil
246
243
  retry_count = 0
244
+
247
245
  until response
246
+ args = {
247
+ log_events: events,
248
+ log_group_name: group_name,
249
+ log_stream_name: stream_name,
250
+ }
251
+
252
+ token = next_sequence_token(group_name, stream_name)
248
253
  args[:sequence_token] = token if token
249
254
 
250
255
  begin
@@ -262,13 +267,25 @@ module Fluent
262
267
  rescue Aws::CloudWatchLogs::Errors::InvalidSequenceTokenException, Aws::CloudWatchLogs::Errors::DataAlreadyAcceptedException => err
263
268
  sleep 1 # to avoid too many API calls
264
269
  log_stream = find_log_stream(group_name, stream_name)
265
- token = log_stream.upload_sequence_token
270
+ store_next_sequence_token(group_name, stream_name, log_stream.upload_sequence_token)
266
271
  log.warn "updating upload sequence token forcefully because unrecoverable error occured", {
267
272
  "error" => err,
268
273
  "log_group" => group_name,
269
274
  "log_stream" => stream_name,
270
275
  "new_sequence_token" => token,
271
276
  }
277
+ rescue Aws::CloudWatchLogs::Errors::ResourceNotFoundException => err
278
+ if @auto_create_stream && err.message == 'The specified log stream does not exist.'
279
+ log.warn 'Creating log stream because "The specified log stream does not exist." error is got', {
280
+ "error" => err,
281
+ "log_group" => group_name,
282
+ "log_stream" => stream_name,
283
+ }
284
+ create_log_stream(group_name, stream_name)
285
+ delete_sequence_token(group_name, stream_name)
286
+ else
287
+ raise err
288
+ end
272
289
  rescue Aws::CloudWatchLogs::Errors::ThrottlingException => err
273
290
  if !@put_log_events_disable_retry_limit && @put_log_events_retry_limit < retry_count
274
291
  log.error "failed to PutLogEvents and discard logs because retry count exceeded put_log_events_retry_limit", {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-cloudwatch-logs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryota Arai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-10 00:00:00.000000000 Z
11
+ date: 2017-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -144,12 +144,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
144
  version: '0'
145
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - ">="
147
+ - - ">"
148
148
  - !ruby/object:Gem::Version
149
- version: '0'
149
+ version: 1.3.1
150
150
  requirements: []
151
151
  rubyforge_project:
152
- rubygems_version: 2.6.8
152
+ rubygems_version: 2.7.0
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: CloudWatch Logs Plugin for Fluentd