fluent-plugin-unit-time-filter 0.1.2 → 0.1.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f1bd07a1afac7e72f3568f45e2de855ad7327ba
|
4
|
+
data.tar.gz: 6e84001ccb9b650ec8d826ba8dcd6840d88d02fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09ae3f0a588e3e71059097efe7e3c98b39ffdcf78743c4acaa5bd9089f264295948332f0773cc664dd3803b80d2c8d0036ae36baf562f2f65c827b18aeece6c2
|
7
|
+
data.tar.gz: f7c99021e342a03d7d412b9069e3cd4b353ed65d41ef64d583c0312aa3cc77019dd86d4f8f0c9d485b217f02a7ba6639e12eb55fb5b998891b1544a34c2165b2
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
Gem::Specification.new do |spec|
|
3
3
|
spec.name = "fluent-plugin-unit-time-filter"
|
4
|
-
spec.version = "0.1.
|
4
|
+
spec.version = "0.1.3"
|
5
5
|
spec.authors = ["Genki Sugawara"]
|
6
6
|
spec.email = ["sgwr_dts@yahoo.co.jp"]
|
7
7
|
spec.description = %q{Plug-in to aggregate by unit time}
|
@@ -30,8 +30,8 @@ class Fluent::UnitTimeFilterOutput < Fluent::Output
|
|
30
30
|
raise Fluent::ConfigError, "Invalid filter: #{@filter_path}: #{e}"
|
31
31
|
end
|
32
32
|
|
33
|
-
unless @filter.
|
34
|
-
raise Fluent::ConfigError, "
|
33
|
+
unless @filter.respond_to?(:call)
|
34
|
+
raise Fluent::ConfigError, "`call` method not implemented in filter: #{@filter_path}: Filter must be Proc"
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -3,18 +3,19 @@ class Fluent::UnitTimeFilterOutput < Fluent::Output
|
|
3
3
|
include Enumerable
|
4
4
|
|
5
5
|
def initialize(options)
|
6
|
-
@init_queue = []
|
7
6
|
@log = options[:log]
|
8
7
|
|
9
|
-
@fiber = Fiber.new do
|
10
|
-
@init_queue << [tag, es]
|
8
|
+
@fiber = Fiber.new do
|
11
9
|
run(options)
|
12
10
|
end
|
11
|
+
|
12
|
+
# Step to `yield`
|
13
|
+
@fiber.resume
|
13
14
|
end
|
14
15
|
|
15
16
|
def each
|
16
17
|
loop do
|
17
|
-
tag, es =
|
18
|
+
tag, es = Fiber.yield
|
18
19
|
break unless (tag && es)
|
19
20
|
|
20
21
|
es.each do |time, record|
|
@@ -362,4 +362,37 @@ describe Fluent::UnitTimeFilterOutput do
|
|
362
362
|
end
|
363
363
|
end
|
364
364
|
end
|
365
|
+
|
366
|
+
describe 'when the non-Proc filter passed' do
|
367
|
+
it 'should be filtered' do
|
368
|
+
filter = <<-EOS
|
369
|
+
class Filter
|
370
|
+
def call(records)
|
371
|
+
@total_count ||= 0
|
372
|
+
@total_count += records.count
|
373
|
+
{'total_count' => @total_count}
|
374
|
+
end
|
375
|
+
end
|
376
|
+
Filter.new
|
377
|
+
EOS
|
378
|
+
|
379
|
+
run_driver(:filter => filter) do |d|
|
380
|
+
(0...10).each do |i|
|
381
|
+
d.emit({"key#{i}" => "val#{i}"}, time + i)
|
382
|
+
d.emit({"key#{i}_" => "val#{i}_"}, time + i)
|
383
|
+
end
|
384
|
+
|
385
|
+
expect(d.emits).to eq(
|
386
|
+
[["filtered.test.default", 1391832855, {"total_count"=>2}],
|
387
|
+
["filtered.test.default", 1391832856, {"total_count"=>4}],
|
388
|
+
["filtered.test.default", 1391832857, {"total_count"=>6}],
|
389
|
+
["filtered.test.default", 1391832858, {"total_count"=>8}],
|
390
|
+
["filtered.test.default", 1391832859, {"total_count"=>10}],
|
391
|
+
["filtered.test.default", 1391832860, {"total_count"=>12}],
|
392
|
+
["filtered.test.default", 1391832861, {"total_count"=>14}],
|
393
|
+
["filtered.test.default", 1391832862, {"total_count"=>16}]]
|
394
|
+
)
|
395
|
+
end
|
396
|
+
end
|
397
|
+
end
|
365
398
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-unit-time-filter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|