fluent-plugin-td 0.10.23 → 0.10.24
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 +4 -4
- data/ChangeLog +7 -0
- data/lib/fluent/plugin/out_tdlog.rb +9 -6
- data/lib/fluent/plugin/td_plugin_version.rb +1 -1
- data/test/plugin/test_out_tdlog.rb +20 -1
- data/test/test_helper.rb +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46404732e76417f2f5110a8f97a219935c3c653c
|
4
|
+
data.tar.gz: ae4a4ba457f7c7bd5097fa37a9cc955bd02914bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9812f2997140c7470641d82666ec59ec4bae779fb435f24fca1a821e0bdcb67184a0151b93e92cd130045b1223a352e96fe4d553e2017a3ea787e963f91c1b6
|
7
|
+
data.tar.gz: e332f546b28efe2446b7d820fe1f1fd9e74dd32bf2661c80640677b963fa194acba041e3597b22ef38fd91c4b14e2e0811f0d280c498fd64c0dd860cd512dc60
|
data/ChangeLog
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
Release 0.10.24 - 2015/02/05
|
2
|
+
|
3
|
+
* Change log level and message when a broken record is skipped to make it clear that it is skipped
|
4
|
+
* Skip non-hash record because plugin can't recover such situation
|
5
|
+
* Use MessagePack::Buffer to improve the performance with msgpack v0.5
|
6
|
+
|
7
|
+
|
1
8
|
Release 0.10.23 - 2014/12/08
|
2
9
|
|
3
10
|
* Relax fluentd version restriction
|
@@ -183,9 +183,12 @@ module Fluent
|
|
183
183
|
end
|
184
184
|
|
185
185
|
def format_stream(tag, es)
|
186
|
-
out = ''
|
187
|
-
off = out.bytesize
|
186
|
+
out = $use_msgpack_5 ? MessagePack::Buffer.new : ''.force_encoding('ASCII-8BIT') # this condition will be removed after removed msgpack v0.4 support
|
187
|
+
off = out.size # size is same as bytesize in ASCII-8BIT string
|
188
188
|
es.each { |time, record|
|
189
|
+
# Applications may send non-hash record or broken chunk may generate non-hash record so such records should be skipped
|
190
|
+
next unless record.is_a?(Hash)
|
191
|
+
|
189
192
|
begin
|
190
193
|
if @anonymizes
|
191
194
|
@anonymizes.each_pair { |key, scr|
|
@@ -205,8 +208,8 @@ module Fluent
|
|
205
208
|
# TODO (a) Remove the transaction mechanism of fluentd
|
206
209
|
# or (b) keep transaction boundaries in in/out_forward.
|
207
210
|
# This code disables the transaction mechanism (a).
|
208
|
-
log.
|
209
|
-
log.
|
211
|
+
log.warn "Skipped a broken record (#{e}): #{summarize_record(record)}"
|
212
|
+
log.warn_backtrace e.backtrace
|
210
213
|
next
|
211
214
|
end
|
212
215
|
|
@@ -216,7 +219,7 @@ module Fluent
|
|
216
219
|
TreasureData::API.normalized_msgpack(record, out)
|
217
220
|
end
|
218
221
|
|
219
|
-
noff = out.
|
222
|
+
noff = out.size
|
220
223
|
sz = noff - off
|
221
224
|
if sz > @record_size_limit
|
222
225
|
# TODO don't raise error
|
@@ -225,7 +228,7 @@ module Fluent
|
|
225
228
|
end
|
226
229
|
off = noff
|
227
230
|
}
|
228
|
-
out
|
231
|
+
out.to_s
|
229
232
|
end
|
230
233
|
|
231
234
|
def summarize_record(record)
|
@@ -56,6 +56,25 @@ class TreasureDataLogOutputTest < Test::Unit::TestCase
|
|
56
56
|
assert_equal('TD1 testkey', @auth_header)
|
57
57
|
end
|
58
58
|
|
59
|
+
def test_emit_with_broken_record
|
60
|
+
d = create_driver
|
61
|
+
time, records = stub_seed_values
|
62
|
+
records[1] = nil
|
63
|
+
records << 'string' # non-hash case
|
64
|
+
database, table = d.instance.instance_variable_get(:@key).split(".", 2)
|
65
|
+
stub_td_table_create_request(database, table)
|
66
|
+
stub_td_import_request(stub_request_body(records, time), database, table)
|
67
|
+
|
68
|
+
records.each { |record|
|
69
|
+
d.emit(record, time)
|
70
|
+
}
|
71
|
+
d.run
|
72
|
+
|
73
|
+
assert !d.instance.log.logs.any? { |line|
|
74
|
+
line =~ /undefined method/
|
75
|
+
}, 'nil record should be skipped'
|
76
|
+
end
|
77
|
+
|
59
78
|
def test_emit_with_time_symbole
|
60
79
|
d = create_driver
|
61
80
|
time, records = stub_seed_values
|
@@ -99,7 +118,7 @@ class TreasureDataLogOutputTest < Test::Unit::TestCase
|
|
99
118
|
|
100
119
|
assert_equal 0, d.emits.size
|
101
120
|
assert d.instance.log.logs.select{ |line|
|
102
|
-
line =~ /
|
121
|
+
line =~ /Too many number of keys/
|
103
122
|
}.size == 1, "too many keys error is not logged"
|
104
123
|
end
|
105
124
|
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-td
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Treasure Data, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|