fluent-plugin-cloudwatch-logs 0.0.2 → 0.0.3

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