fluent-plugin-td 0.10.3 → 0.10.4

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.
data/ChangeLog CHANGED
@@ -1,4 +1,10 @@
1
1
 
2
+ Release 0.10.4 - 2012/02/09
3
+
4
+ * Disable Fluentd's transaction mechanism
5
+ * Include summary of invalid records in error messages
6
+
7
+
2
8
  Release 0.10.3 - 2012/02/02
3
9
 
4
10
  * Support use_ssl parameter
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.10.3
1
+ 0.10.4
@@ -120,10 +120,20 @@ class TreasureDataLogOutput < BufferedOutput
120
120
  out = ''
121
121
  off = out.bytesize
122
122
  es.each {|time,record|
123
- record['time'] = time
123
+ begin
124
+ record['time'] = time
125
+
126
+ if record.size > @key_num_limit
127
+ raise "Too many number of keys (#{record.size} keys)" # TODO include summary of the record
128
+ end
124
129
 
125
- if record.size > @key_num_limit
126
- raise "Too many number of keys (#{record.size} keys)" # TODO include summary of the record
130
+ rescue
131
+ # TODO (a) Remove the transaction mechanism of fluentd
132
+ # or (b) keep transaction boundaries in in/out_forward.
133
+ # This code disables the transaction mechanism (a).
134
+ $log.error "#{$!}: #{summarize_record(record)}"
135
+ $log.error_backtrace $!.backtrace
136
+ next
127
137
  end
128
138
 
129
139
  record.to_msgpack(out)
@@ -131,13 +141,24 @@ class TreasureDataLogOutput < BufferedOutput
131
141
  noff = out.bytesize
132
142
  sz = noff - off
133
143
  if sz > @record_size_limit
134
- raise "Size of a record too large (#{sz} bytes)" # TODO include summary of the record
144
+ # TODO don't raise error
145
+ #raise "Size of a record too large (#{sz} bytes)" # TODO include summary of the record
146
+ $log.warn "Size of a record too large (#{sz} bytes): #{summarize_record(record)}"
135
147
  end
136
148
  off = noff
137
149
  }
138
150
  out
139
151
  end
140
152
 
153
+ def summarize_record(record)
154
+ json = record.to_json
155
+ if json.size > 100
156
+ json[0..97]+"..."
157
+ else
158
+ json
159
+ end
160
+ end
161
+
141
162
  def write(chunk)
142
163
  database, table = chunk.key.split('.',2)
143
164
 
data/test/out_tdlog.rb CHANGED
@@ -50,5 +50,16 @@ class TreasureDataLogOutputTest < Test::Unit::TestCase
50
50
  d.instance.emit("", es, chain)
51
51
  end
52
52
  end
53
+
54
+ def test_invalid_data
55
+ d = create_driver
56
+ d.instance.start
57
+
58
+ es = Fluent::OneEventStream.new(Time.now.to_i, "invalid")
59
+ chain = Fluent::NullOutputChain.instance
60
+ assert_nothing_raised do
61
+ d.instance.emit("test.name", es, chain)
62
+ end
63
+ end
53
64
  end
54
65
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-td
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.3
4
+ version: 0.10.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-02 00:00:00.000000000Z
12
+ date: 2012-02-09 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd
16
- requirement: &70353352558660 !ruby/object:Gem::Requirement
16
+ requirement: &70147059008180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.10.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70353352558660
24
+ version_requirements: *70147059008180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: td-client
27
- requirement: &70353352555300 !ruby/object:Gem::Requirement
27
+ requirement: &70147059007240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.8.7
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70353352555300
35
+ version_requirements: *70147059007240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70353352553920 !ruby/object:Gem::Requirement
38
+ requirement: &70147059006560 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 0.9.2
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70353352553920
46
+ version_requirements: *70147059006560
47
47
  description: Treasure Data output plugin for Fluent event collector
48
48
  email:
49
49
  executables: []