fluent-plugin-cloudwatch-logs 0.0.2 → 0.0.3

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: 9ba82ca82f0ebbaf1df3fb81e42606433d99b520
4
- data.tar.gz: e29e78f866b41a7623d27c3d1af5428fd23b00ce
3
+ metadata.gz: 78f1db9d7f30ff9acd63810f0591d7ef63a6d198
4
+ data.tar.gz: 6e8686feb438687d1b14abdeb090e25ba96f4b4c
5
5
  SHA512:
6
- metadata.gz: 12e1b6c8596c9da1fa8945ca8cee1e553b0b5019812c55d2c082c11df74332683f61f7d07d9d99e8a0a51448ae8c92070343d37740f80cb0f1c1279dd66b3dfc
7
- data.tar.gz: db5edcaa122522537ad34ec72dbeb49e9f420dc6f29ef02b7f47a24180abde671f0643904710d930e1c415d3c991d2fbf3e12b867589343e186fb9e178700c92
6
+ metadata.gz: d4fbe6d504e7b827d086ee786b57db5c0448fda0eb6714e23185ff485529b1dff2abbbdb4ec9b1a26f6165465aab8f9bf91fb88870d4296af1f8c0ceb72df1a2
7
+ data.tar.gz: b29e60c61e6b27548e18512841da8fee0332087351f015ab53e3af9ebbe76ab447b0ea84e1e6059365347a798e5fc17ba1be205c09c0ed9f7d5dec30b0ed5b3c
@@ -2,7 +2,7 @@ module Fluent
2
2
  module Plugin
3
3
  module Cloudwatch
4
4
  module Logs
5
- VERSION = "0.0.2"
5
+ VERSION = "0.0.3"
6
6
  end
7
7
  end
8
8
  end
@@ -9,6 +9,8 @@ module Fluent
9
9
  config_param :log_stream_name, :string
10
10
  config_param :sequence_token_file, :string
11
11
  config_param :auto_create_stream, :bool, default: false
12
+ config_param :message_keys, :string, :default => nil
13
+ config_param :max_message_length, :integer, :default => nil
12
14
 
13
15
  unless method_defined?(:log)
14
16
  define_method(:log) { $log }
@@ -39,7 +41,19 @@ module Fluent
39
41
  events = []
40
42
  chunk.msgpack_each do |tag, time, record|
41
43
  time_ms = time * 1000
42
- events << {timestamp: time_ms, message: record.to_json}
44
+
45
+ if @message_keys
46
+ message = @message_keys.split(',').map {|k| record[k].to_s }.join(' ')
47
+ else
48
+ message = record.to_json
49
+ end
50
+
51
+ if @max_message_length
52
+ message.force_encoding('ASCII-8BIT')
53
+ message = message.slice(0, @max_message_length)
54
+ end
55
+
56
+ events << {timestamp: time_ms, message: message}
43
57
  end
44
58
  put_events(events)
45
59
  end
@@ -56,6 +56,53 @@ class CloudwatchLogsOutputTest < Test::Unit::TestCase
56
56
  assert_equal('{"cloudwatch":"logs2"}', events[1].message)
57
57
  end
58
58
 
59
+ def test_write_with_message_keys
60
+ new_log_stream
61
+
62
+ d = create_driver(<<-EOC)
63
+ #{default_config}
64
+ message_keys message,cloudwatch
65
+ EOC
66
+
67
+ time = Time.now
68
+ d.emit({'cloudwatch' => 'logs1', 'message' => 'message1'}, time.to_i)
69
+ d.emit({'cloudwatch' => 'logs2', 'message' => 'message2'}, time.to_i + 1)
70
+ d.run
71
+
72
+ sleep 20
73
+
74
+ events = get_log_events
75
+ assert_equal(2, events.size)
76
+ assert_equal(time.to_i * 1000, events[0].timestamp)
77
+ assert_equal('message1 logs1', events[0].message)
78
+ assert_equal((time.to_i + 1) * 1000, events[1].timestamp)
79
+ assert_equal('message2 logs2', events[1].message)
80
+ end
81
+
82
+ def test_write_with_max_message_length
83
+ new_log_stream
84
+
85
+ d = create_driver(<<-EOC)
86
+ #{default_config}
87
+ message_keys message,cloudwatch
88
+ max_message_length 10
89
+ EOC
90
+
91
+ time = Time.now
92
+ d.emit({'cloudwatch' => 'logs1', 'message' => 'message1'}, time.to_i)
93
+ d.emit({'cloudwatch' => 'logs2', 'message' => 'message2'}, time.to_i + 1)
94
+ d.run
95
+
96
+ sleep 20
97
+
98
+ events = get_log_events
99
+ assert_equal(2, events.size)
100
+ assert_equal(time.to_i * 1000, events[0].timestamp)
101
+ assert_equal('message1 l', events[0].message)
102
+ assert_equal((time.to_i + 1) * 1000, events[1].timestamp)
103
+ assert_equal('message2 l', events[1].message)
104
+ end
105
+
59
106
  private
60
107
  def default_config
61
108
  <<-EOC
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.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryota Arai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-22 00:00:00.000000000 Z
11
+ date: 2014-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd