fluent-plugin-cloudwatch-logs 0.3.0 → 0.3.1

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: 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