fluent-plugin-cloudwatch-logs 0.3.0 → 0.3.1

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: d4238d9fd741cabef203f35c414b70d13955314f
4
- data.tar.gz: d8f44326e2452d24b3f33c0cf2950a09187ec664
3
+ metadata.gz: 0be185ba203d55277c9024589f74259047cd13e3
4
+ data.tar.gz: 9c0bba21fc70063e684e40c26b588e22d7c3461b
5
5
  SHA512:
6
- metadata.gz: 4cfa93793297b5cd39addae8ec7b6b18c641cebe06a54392558811a292086c78f22edd4e9ca5676750b9d290dc671b3a087723570571579b344f410518a0dd5d
7
- data.tar.gz: 3e7ab5bd33f70a58e086772bb92c39106ecec63471799559f6e12211f4e9536b5543c8d1b4afa987bc93f4f7ebe230eea4e17b0a3d12e2840f21ca268bd046a4
6
+ metadata.gz: c6bc8ee217b1ed4d753e60c6a5a0e3826b5d9c044e9d2e410317e80368411f94b2351207e186f9e321daa4a8e01c6d2166bd50a902385a7f763c7f0105ab50a0
7
+ data.tar.gz: 50bb725b9af13a521756d9d0e94e02dfc9338039e2a66f2b990a5bf60ede7910dd3486d68bd19ee1ea7451ee512d8d3d256a21524383173a400055724ef99f46
@@ -2,7 +2,7 @@ module Fluent
2
2
  module Plugin
3
3
  module Cloudwatch
4
4
  module Logs
5
- VERSION = "0.3.0"
5
+ VERSION = "0.3.1"
6
6
  end
7
7
  end
8
8
  end
@@ -73,8 +73,7 @@ module Fluent
73
73
  end
74
74
 
75
75
  def write(chunk)
76
- events = []
77
- chunk.enum_for(:msgpack_each).chunk {|tag, time, record|
76
+ chunk.enum_for(:msgpack_each).group_by {|tag, time, record|
78
77
  group = case
79
78
  when @use_tag_as_group
80
79
  tag
@@ -123,6 +122,7 @@ module Fluent
123
122
  end
124
123
  end
125
124
 
125
+ events = []
126
126
  rs.each do |t, time, record|
127
127
  time_ms = time * 1000
128
128
 
@@ -254,18 +254,37 @@ class CloudwatchLogsOutputTest < Test::Unit::TestCase
254
254
  log_stream_name_key stream_name_key
255
255
  EOC
256
256
 
257
- record = {'cloudwatch' => 'logs1', 'message' => 'message1', 'group_name_key' => log_group_name, 'stream_name_key' => log_stream_name}
257
+ stream1 = new_log_stream
258
+ stream2 = new_log_stream
259
+
260
+ records = [
261
+ {'cloudwatch' => 'logs1', 'message' => 'message1', 'group_name_key' => log_group_name, 'stream_name_key' => stream1},
262
+ {'cloudwatch' => 'logs2', 'message' => 'message1', 'group_name_key' => log_group_name, 'stream_name_key' => stream2},
263
+ {'cloudwatch' => 'logs3', 'message' => 'message1', 'group_name_key' => log_group_name, 'stream_name_key' => stream1},
264
+ ]
258
265
 
259
266
  time = Time.now
260
- d.emit(record, time.to_i)
267
+ records.each_with_index do |record, i|
268
+ d.emit(record, time.to_i + i)
269
+ end
261
270
  d.run
262
271
 
272
+ # Call API once for each stream
273
+ assert_equal(2, d.instance.log.logs.select {|l| l =~ /Calling PutLogEvents API/ }.size)
274
+
263
275
  sleep 10
264
276
 
265
- events = get_log_events(log_group_name, log_stream_name)
266
- assert_equal(1, events.size)
277
+ events = get_log_events(log_group_name, stream1)
278
+ assert_equal(2, events.size)
267
279
  assert_equal(time.to_i * 1000, events[0].timestamp)
268
- assert_equal(record, JSON.parse(events[0].message))
280
+ assert_equal((time.to_i + 2) * 1000, events[1].timestamp)
281
+ assert_equal(records[0], JSON.parse(events[0].message))
282
+ assert_equal(records[2], JSON.parse(events[1].message))
283
+
284
+ events = get_log_events(log_group_name, stream2)
285
+ assert_equal(1, events.size)
286
+ assert_equal((time.to_i + 1) * 1000, events[0].timestamp)
287
+ assert_equal(records[1], JSON.parse(events[0].message))
269
288
  end
270
289
 
271
290
  def test_remove_log_group_name_key_and_remove_log_stream_name_key
@@ -1,6 +1,7 @@
1
1
  require 'test/unit'
2
2
  require 'mocha/test_unit'
3
3
  require 'fluent/test'
4
+ require 'securerandom'
4
5
 
5
6
  require 'aws-sdk-core'
6
7
 
@@ -38,7 +39,8 @@ module CloudwatchLogsTestHelper
38
39
  end
39
40
 
40
41
  def new_log_stream(log_stream_name_prefix = nil)
41
- @log_stream_name = log_stream_name_prefix ? log_stream_name_prefix + Time.now.to_f.to_s : Time.now.to_f.to_s
42
+ uuid = SecureRandom.uuid
43
+ @log_stream_name = log_stream_name_prefix ? log_stream_name_prefix + uuid : uuid
42
44
  end
43
45
 
44
46
  def clear_log_group
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-cloudwatch-logs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryota Arai