fluentd 0.12.4 → 0.12.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6767a4f2dc914fc96e7d5f0118632a48727316d3
4
- data.tar.gz: 631b3ffc84b275449c26ceff0fe3d26bb0cc8171
3
+ metadata.gz: 4727ad0adaf19638e4635a9cc2d4a701c15a51b6
4
+ data.tar.gz: c81e2d9a52fee23f6906e7e5e06b8c4f47e08a3b
5
5
  SHA512:
6
- metadata.gz: f3bfce72a5da88d1698c8820cd3b84452962a8505e3736e9e27ccbe55877e5774cc427bbbd30ed50dfca74bb5d6c2aca4f2a259562aadccb43218300bb15d4d6
7
- data.tar.gz: d96782300d9d439b35e836e765a4079d256df8bbce494c63309152416283826fe829ec8384fbab1dc658c9cad2643be0b737307743760e5a86ee455c15236e74
6
+ metadata.gz: b2e986a0d83076e2ea2a17dc1ff5e7c0eafb8c53d82a3d94b043428e0f73a8c28adb2ea02fc3dc8221a561335097a4d7f41c4df2ab902c54d693ccbe92ab30f1
7
+ data.tar.gz: ec22f2fab0a771bd55f71ff7240149ca99708641e8108bb2595a26980af6b6ee054791692f71c8976f394f44fb451f65db3b6f5309d14ec804fed8f9144fdcff
data/ChangeLog CHANGED
@@ -1,5 +1,20 @@
1
1
  # v0.12
2
2
 
3
+ ## Release 0.12.5 - 2014/02/09
4
+
5
+ ### New features / Enhancement
6
+
7
+ * in_tail: Enable multiline mode if format contains 'multiline'
8
+ https://github.com/fluent/fluentd/pull/545
9
+ * event: Improve EventStream#to_msgpack_stream performance
10
+ https://github.com/fluent/fluentd/pull/549
11
+ * engine: Add tag information emit log
12
+
13
+ ### Bug fixes
14
+
15
+ * Update msgpack dependency to avoid incompatible encoding problem
16
+ https://github.com/fluent/fluentd/pull/550
17
+
3
18
  ## Release 0.12.4 - 2015/01/23
4
19
 
5
20
  ### New features / Enhancement
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
18
18
 
19
19
  gem.required_ruby_version = '>= 1.9.3'
20
20
 
21
- gem.add_runtime_dependency("msgpack", [">= 0.5.4", "< 0.6.0"])
21
+ gem.add_runtime_dependency("msgpack", [">= 0.5.11", "< 0.6.0"])
22
22
  gem.add_runtime_dependency("json", [">= 1.4.3"])
23
23
  gem.add_runtime_dependency("yajl-ruby", ["~> 1.0"])
24
24
  gem.add_runtime_dependency("cool.io", [">= 1.2.2", "< 2.0.0"])
@@ -27,11 +27,11 @@ module Fluent
27
27
  end
28
28
 
29
29
  def to_msgpack_stream
30
- out = ''
30
+ out = MessagePack::Packer.new # MessagePack::Packer is fastest way to serialize events
31
31
  each {|time,record|
32
- [time,record].to_msgpack(out)
32
+ out.write([time,record])
33
33
  }
34
- out
34
+ out.to_s
35
35
  end
36
36
  end
37
37
 
@@ -66,7 +66,7 @@ module Fluent
66
66
  end
67
67
 
68
68
  def dup
69
- entries = @entries.map(:dup)
69
+ entries = @entries.map { |entry| entry.dup } # @entries.map(:dup) doesn't work by ArgumentError
70
70
  ArrayEventStream.new(entries)
71
71
  end
72
72
 
@@ -49,7 +49,7 @@ module Fluent
49
49
  configure_parser(conf)
50
50
  configure_tag
51
51
 
52
- @multiline_mode = conf['format'] == 'multiline'
52
+ @multiline_mode = conf['format'] =~ /multiline/
53
53
  @receive_handler = if @multiline_mode
54
54
  method(:parse_multilines)
55
55
  else
@@ -215,7 +215,7 @@ module Fluent
215
215
  def handle_emits_error(tag, es, e)
216
216
  now = Engine.now
217
217
  if @suppress_emit_error_log_interval.zero? || now > @next_emit_error_log_time
218
- log.warn "emit transaction failed in @ERROR:", :error_class => e.class, :error => e
218
+ log.warn "emit transaction failed in @ERROR:", :error_class => e.class, :error => e, :tag => tag
219
219
  log.warn_backtrace
220
220
  @next_emit_error_log_time = now + @suppress_emit_error_log_interval
221
221
  end
@@ -16,6 +16,6 @@
16
16
 
17
17
  module Fluent
18
18
 
19
- VERSION = '0.12.4'
19
+ VERSION = '0.12.5'
20
20
 
21
21
  end
@@ -0,0 +1,168 @@
1
+ require_relative 'helper'
2
+ require 'fluent/test'
3
+ require 'fluent/event'
4
+
5
+ module EventTest
6
+ class OneEventStreamTest < ::Test::Unit::TestCase
7
+ include Fluent
8
+
9
+ def setup
10
+ @time = Engine.now
11
+ @record = {'k' => 'v', 'n' => 1}
12
+ @es = OneEventStream.new(@time, @record)
13
+ end
14
+
15
+ test 'repeatable?' do
16
+ assert_true @es.repeatable?
17
+ end
18
+
19
+ test 'dup' do
20
+ dupped = @es.dup
21
+ assert_kind_of OneEventStream, dupped
22
+ assert_not_equal @es.object_id, dupped.object_id
23
+ end
24
+
25
+ test 'each' do
26
+ @es.each { |time, record|
27
+ assert_equal @time, time
28
+ assert_equal @record, record
29
+ }
30
+ end
31
+
32
+ test 'to_msgpack_stream' do
33
+ stream = @es.to_msgpack_stream
34
+ MessagePack::Unpacker.new.feed_each(stream) { |time, record|
35
+ assert_equal @time, time
36
+ assert_equal @record, record
37
+ }
38
+ end
39
+ end
40
+
41
+ class ArrayEventStreamTest < ::Test::Unit::TestCase
42
+ include Fluent
43
+
44
+ def setup
45
+ @times = [Engine.now, Engine.now + 1]
46
+ @records = [{'k' => 'v1', 'n' => 1}, {'k' => 'v2', 'n' => 2}]
47
+ @es = ArrayEventStream.new(@times.zip(@records))
48
+ end
49
+
50
+ test 'repeatable?' do
51
+ assert_true @es.repeatable?
52
+ end
53
+
54
+ test 'dup' do
55
+ dupped = @es.dup
56
+ assert_kind_of ArrayEventStream, dupped
57
+ assert_not_equal @es.object_id, dupped.object_id
58
+ end
59
+
60
+ test 'empty?' do
61
+ assert_not_empty @es
62
+ assert_true ArrayEventStream.new([]).empty?
63
+ end
64
+
65
+ test 'each' do
66
+ i = 0
67
+ @es.each { |time, record|
68
+ assert_equal @times[i], time
69
+ assert_equal @records[i], record
70
+ i += 1
71
+ }
72
+ end
73
+
74
+ test 'to_msgpack_stream' do
75
+ i = 0
76
+ stream = @es.to_msgpack_stream
77
+ MessagePack::Unpacker.new.feed_each(stream) { |time, record|
78
+ assert_equal @times[i], time
79
+ assert_equal @records[i], record
80
+ i += 1
81
+ }
82
+ end
83
+ end
84
+
85
+ class MultiEventStreamTest < ::Test::Unit::TestCase
86
+ include Fluent
87
+
88
+ def setup
89
+ @times = [Engine.now, Engine.now + 1]
90
+ @records = [{'k' => 'v1', 'n' => 1}, {'k' => 'v2', 'n' => 2}]
91
+ @es = MultiEventStream.new
92
+ @times.zip(@records).each { |time, record|
93
+ @es.add(time, record)
94
+ }
95
+ end
96
+
97
+ test 'repeatable?' do
98
+ assert_true @es.repeatable?
99
+ end
100
+
101
+ test 'dup' do
102
+ dupped = @es.dup
103
+ assert_kind_of MultiEventStream, dupped
104
+ assert_not_equal @es.object_id, dupped.object_id
105
+ end
106
+
107
+ test 'empty?' do
108
+ assert_not_empty @es
109
+ assert_true MultiEventStream.new.empty?
110
+ end
111
+
112
+ test 'each' do
113
+ i = 0
114
+ @es.each { |time, record|
115
+ assert_equal @times[i], time
116
+ assert_equal @records[i], record
117
+ i += 1
118
+ }
119
+ end
120
+
121
+ test 'to_msgpack_stream' do
122
+ i = 0
123
+ stream = @es.to_msgpack_stream
124
+ MessagePack::Unpacker.new.feed_each(stream) { |time, record|
125
+ assert_equal @times[i], time
126
+ assert_equal @records[i], record
127
+ i += 1
128
+ }
129
+ end
130
+ end
131
+
132
+ class MessagePackEventStreamTest < ::Test::Unit::TestCase
133
+ include Fluent
134
+
135
+ def setup
136
+ pk = MessagePack::Packer.new
137
+ @times = [Engine.now, Engine.now + 1]
138
+ @records = [{'k' => 'v1', 'n' => 1}, {'k' => 'v2', 'n' => 2}]
139
+ @times.zip(@records).each { |time, record|
140
+ pk.write([time, record])
141
+ }
142
+ @es = MessagePackEventStream.new(pk.to_s)
143
+ end
144
+
145
+ test 'repeatable?' do
146
+ assert_true @es.repeatable?
147
+ end
148
+
149
+ test 'each' do
150
+ i = 0
151
+ @es.each { |time, record|
152
+ assert_equal @times[i], time
153
+ assert_equal @records[i], record
154
+ i += 1
155
+ }
156
+ end
157
+
158
+ test 'to_msgpack_stream' do
159
+ i = 0
160
+ stream = @es.to_msgpack_stream
161
+ MessagePack::Unpacker.new.feed_each(stream) { |time, record|
162
+ assert_equal @times[i], time
163
+ assert_equal @records[i], record
164
+ i += 1
165
+ }
166
+ end
167
+ end
168
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluentd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.4
4
+ version: 0.12.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-23 00:00:00.000000000 Z
11
+ date: 2015-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.4
19
+ version: 0.5.11
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 0.6.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.5.4
29
+ version: 0.5.11
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.6.0
@@ -428,6 +428,7 @@ files:
428
428
  - test/test_buffer.rb
429
429
  - test/test_config.rb
430
430
  - test/test_configdsl.rb
431
+ - test/test_event.rb
431
432
  - test/test_event_router.rb
432
433
  - test/test_filter.rb
433
434
  - test/test_formatter.rb
@@ -511,6 +512,7 @@ test_files:
511
512
  - test/test_buffer.rb
512
513
  - test/test_config.rb
513
514
  - test/test_configdsl.rb
515
+ - test/test_event.rb
514
516
  - test/test_event_router.rb
515
517
  - test/test_filter.rb
516
518
  - test/test_formatter.rb