fluent-plugin-cloudwatch-logs 0.8.1.1 → 0.8.2
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa86963bdf4ec3faf83caed90ad1ab437ea2991d97e793d50a2e507e9ff0c1af
|
4
|
+
data.tar.gz: 4add147b77a03c2296469b21b188882a105d7736f5a576a6331aac9d266e4e34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7372c750e2947bf4b872b1f3f53c19494ed136274d0b9443f21ae32c8595e9d30968aae30a82a375a48ce6e7d0ce6429106b4ebe2c68bcdace4fd7801bc1648d
|
7
|
+
data.tar.gz: 1bc6416f7dc38a2479e01a4847bf4241e0c29cbd7ac531e05faa9d4da2cec2cc7cc428b76f2a726c9fda173e4d6d2c51a24cb03b70b0db05fc032e12088c7245
|
@@ -219,15 +219,22 @@ module Fluent::Plugin
|
|
219
219
|
|
220
220
|
events = []
|
221
221
|
rs.each do |t, time, record|
|
222
|
+
record = drop_empty_record(record)
|
223
|
+
|
222
224
|
time_ms = (time.to_f * 1000).floor
|
223
225
|
|
224
226
|
scrub_record!(record)
|
225
227
|
unless @message_keys.empty?
|
226
|
-
message = @message_keys.map
|
228
|
+
message = @message_keys.map{|k| record[k].to_s }.reject{|e| e.empty? }.join(' ')
|
227
229
|
else
|
228
230
|
message = @json_handler.dump(record)
|
229
231
|
end
|
230
232
|
|
233
|
+
if message.empty?
|
234
|
+
log.warn "Within specified message_key(s): (#{@message_keys.join(',')}) do not have non-empty record. Skip."
|
235
|
+
next
|
236
|
+
end
|
237
|
+
|
231
238
|
if @max_message_length
|
232
239
|
message = message.slice(0, @max_message_length)
|
233
240
|
end
|
@@ -256,6 +263,17 @@ module Fluent::Plugin
|
|
256
263
|
end
|
257
264
|
|
258
265
|
private
|
266
|
+
|
267
|
+
def drop_empty_record(record)
|
268
|
+
new_record = record.dup
|
269
|
+
new_record.each_key do |k|
|
270
|
+
if new_record[k] == ""
|
271
|
+
new_record.delete(k)
|
272
|
+
end
|
273
|
+
end
|
274
|
+
new_record
|
275
|
+
end
|
276
|
+
|
259
277
|
def scrub_record!(record)
|
260
278
|
case record
|
261
279
|
when Hash
|
@@ -714,6 +714,36 @@ class CloudwatchLogsOutputTest < Test::Unit::TestCase
|
|
714
714
|
logs = d.logs
|
715
715
|
assert(logs.any?{|log| log =~ /Log event in .* discarded because it is too large: 262184 bytes exceeds limit of 262144/})
|
716
716
|
end
|
717
|
+
|
718
|
+
def test_do_not_emit_empty_record
|
719
|
+
new_log_stream
|
720
|
+
|
721
|
+
d = create_driver(<<-EOC)
|
722
|
+
#{default_config}
|
723
|
+
message_keys cloudwatch,message
|
724
|
+
log_group_name #{log_group_name}
|
725
|
+
log_stream_name #{log_stream_name}
|
726
|
+
EOC
|
727
|
+
|
728
|
+
time = event_time
|
729
|
+
d.run(default_tag: fluentd_tag) do
|
730
|
+
d.feed(time, {'cloudwatch' => 'logs1', 'message' => ''})
|
731
|
+
d.feed(time + 1, {'cloudwatch' => '', 'message' => 'message2'})
|
732
|
+
d.feed(time + 2, {'cloudwatch' => '', 'message' => ''})
|
733
|
+
end
|
734
|
+
|
735
|
+
sleep 10
|
736
|
+
|
737
|
+
events = get_log_events
|
738
|
+
assert_equal(2, events.size)
|
739
|
+
assert_equal((time.to_f * 1000).floor, events[0].timestamp)
|
740
|
+
assert_equal('logs1', events[0].message)
|
741
|
+
assert_equal((time.to_i + 1) * 1000, events[1].timestamp)
|
742
|
+
assert_equal('message2', events[1].message)
|
743
|
+
|
744
|
+
logs = d.logs
|
745
|
+
assert(logs.any?{|log| log =~ /Within specified message_key\(s\): \(cloudwatch,message\) do not have non-empty record. Skip./})
|
746
|
+
end
|
717
747
|
end
|
718
748
|
|
719
749
|
def test_scrub_record
|
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.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryota Arai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|