fluent-plugin-cloudwatch-logs 0.3.2 → 0.3.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: afe6a24bcdd46ff8092270e4d257ca0685831956
4
- data.tar.gz: 321b8cd1212f101edf40cf1ff6c7196aee8a18d9
3
+ metadata.gz: e8dbf3d1910a3b9441394ff31f94fb1ce16813b3
4
+ data.tar.gz: 12284873b4ead473926e40db48a7b356cd82a7e7
5
5
  SHA512:
6
- metadata.gz: 8433c77b1bac37ea1df22c61d77346a1d302d6f314830ec6fd7aa3998b63a71d3d74d61f797b59d0fa2c98a7fd4008d40a80d8b2483acce92d8b19daf014f71d
7
- data.tar.gz: 5de5518728d7cdbe4ca65a0308c7bb6f9634b5701f2f43cca23e370272eb25b62ce7079a04911e4371b908b0352d96a8fce3c2880039e8be0b45cd7daae46fd6
6
+ metadata.gz: 3844ad5b634e937af8843426fada5ff7d7f3dc4ebea0ecd86936862e981ec582373f20108e8013758922340961b4a9e99a591aa049887a9129eee2e994be62e4
7
+ data.tar.gz: c695b70a2e4a2f4ebf14adc0181f667a04e35cf3996405e397ec6d3480f8ad3604cefb4b1f8f38bc2f62364a93e3fdd32e41d1137d70eb339313e0d2bd6319db
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in fluent-plugin-cloudwatch-logs.gemspec
4
+ gem 'fluentd', '~> 0.12.0'
4
5
  gemspec
@@ -2,7 +2,7 @@ module Fluent
2
2
  module Plugin
3
3
  module Cloudwatch
4
4
  module Logs
5
- VERSION = "0.3.2"
5
+ VERSION = "0.3.3"
6
6
  end
7
7
  end
8
8
  end
@@ -126,16 +126,13 @@ module Fluent
126
126
  rs.each do |t, time, record|
127
127
  time_ms = time * 1000
128
128
 
129
+ scrub_record!(record)
129
130
  if @message_keys
130
131
  message = @message_keys.split(',').map {|k| record[k].to_s }.join(' ')
131
132
  else
132
133
  message = record.to_json
133
134
  end
134
135
 
135
- # CloudWatchLogs API only accepts valid UTF-8 strings
136
- # so we should encode the message to UTF-8
137
- message.encode('UTF-8', :invalid => :replace)
138
-
139
136
  if @max_message_length
140
137
  message = message.slice(0, @max_message_length)
141
138
  end
@@ -150,6 +147,17 @@ module Fluent
150
147
  end
151
148
 
152
149
  private
150
+ def scrub_record!(record)
151
+ case record
152
+ when Hash
153
+ record.each_value {|v| scrub_record!(v) }
154
+ when Array
155
+ record.each {|v| scrub_record!(v) }
156
+ when String
157
+ record.scrub!
158
+ end
159
+ end
160
+
153
161
  def next_sequence_token(group_name, stream_name)
154
162
  @sequence_tokens[group_name][stream_name]
155
163
  end
@@ -366,6 +366,25 @@ log_stream_name #{log_stream_name}
366
366
  assert_match(/Log event is discarded because it is too large: 262184 bytes exceeds limit of 262144$/, d.instance.log.logs[0])
367
367
  end
368
368
 
369
+ def test_scrub_record
370
+ record = {
371
+ "hash" => {
372
+ "str" => "\xAE",
373
+ },
374
+ "array" => [
375
+ "\xAE",
376
+ ],
377
+ "str" => "\xAE",
378
+ }
379
+
380
+ d = create_driver
381
+ d.instance.send(:scrub_record!, record)
382
+
383
+ assert_equal("�", record["hash"]["str"])
384
+ assert_equal("�", record["array"][0])
385
+ assert_equal("�", record["str"])
386
+ end
387
+
369
388
  private
370
389
  def default_config
371
390
  <<-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.3.2
4
+ version: 0.3.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: 2016-07-14 00:00:00.000000000 Z
11
+ date: 2016-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd