fluent-plugin-eventlastvalue 0.0.3 → 0.0.5
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/README.md
CHANGED
@@ -32,10 +32,10 @@ With a conf like
|
|
32
32
|
You would get
|
33
33
|
|
34
34
|
```
|
35
|
-
output.lastvalue { 'id': 12345, 'count': 6 }
|
36
|
-
output.lastvalue { 'id': 1337, 'count': 28 }
|
37
|
-
output.lastvalue { 'id': 33864, 'count': 24 }
|
38
|
-
output.lastvalue { 'id': 40555, 'count': 18 }
|
35
|
+
output.lastvalue { 'id': 12345, 'count': 6, 'time': 1413544860 }
|
36
|
+
output.lastvalue { 'id': 1337, 'count': 28, 'time': 1413544890 }
|
37
|
+
output.lastvalue { 'id': 33864, 'count': 24, 'time': 1413544830 }
|
38
|
+
output.lastvalue { 'id': 40555, 'count': 18, 'time': 1413544890 }
|
39
39
|
```
|
40
40
|
|
41
41
|
##Installation
|
@@ -55,11 +55,11 @@ or
|
|
55
55
|
|
56
56
|
#### Basic
|
57
57
|
|
58
|
-
- **id_key** (**
|
58
|
+
- **id_key** (**default**:id)
|
59
59
|
- The key within the record that identifies a group of events to select from.
|
60
60
|
|
61
|
-
- **last_value_key** (
|
62
|
-
- the key from whose values we want to record the last
|
61
|
+
- **last_value_key** (optional)
|
62
|
+
- the key from whose values we want to record the last, if present records sent that do not contain the key will be excluded.
|
63
63
|
|
64
64
|
- **emit_to** (optional) - *string*
|
65
65
|
- Tag to re-emit with
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |gem|
|
3
3
|
gem.name = "fluent-plugin-eventlastvalue"
|
4
|
-
gem.version = "0.0.
|
5
|
-
gem.authors = ["Michael Arick", "Change.org"]
|
6
|
-
gem.email = ["marick@change.org"]
|
4
|
+
gem.version = "0.0.5"
|
5
|
+
gem.authors = ["Michael Arick", "Sean Dick", "Change.org"]
|
6
|
+
gem.email = ["marick@change.org", "sean@change.org"]
|
7
7
|
gem.homepage = "https://github.com/change/fluent-plugin-eventlastvalue"
|
8
|
-
gem.summary = %q{Fluentd plugin to find the last value in a time-period of a field and emit it
|
9
|
-
gem.description = %q{Fluentd plugin to find the last value in a time-period of a field and emit it
|
8
|
+
gem.summary = %q{Fluentd plugin to find the last value in a time-period of a field and emit it}
|
9
|
+
gem.description = %q{Fluentd plugin to find the last value in a time-period of a field and emit it}
|
10
10
|
gem.license = "MIT"
|
11
11
|
|
12
12
|
gem.files = `git ls-files`.split("\n")
|
@@ -6,7 +6,7 @@ class Fluent::EventLastValueOutput < Fluent::BufferedOutput
|
|
6
6
|
|
7
7
|
config_param :emit_to, :string, :default => 'debug.events'
|
8
8
|
config_param :id_key, :string, :default => 'id'
|
9
|
-
config_param :last_value_key, :string
|
9
|
+
config_param :last_value_key, :string, :default => nil
|
10
10
|
config_param :comparator_key, :string, :default => nil
|
11
11
|
|
12
12
|
attr_accessor :last_values
|
@@ -20,8 +20,8 @@ class Fluent::EventLastValueOutput < Fluent::BufferedOutput
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def format(tag, time, record)
|
23
|
-
return '' unless record[@last_value_key]
|
24
|
-
[record[@id_key], record
|
23
|
+
return '' unless @last_value_key && record[@last_value_key]
|
24
|
+
[record[@id_key], record, (record[@comparator_key] || 0).to_f].to_json + "\n"
|
25
25
|
end
|
26
26
|
|
27
27
|
def write(chunk)
|
@@ -38,8 +38,8 @@ class Fluent::EventLastValueOutput < Fluent::BufferedOutput
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
last_values.each do |key,
|
42
|
-
Fluent::Engine.emit(@emit_to, Time.now.to_i,
|
41
|
+
last_values.each do |key, last_record|
|
42
|
+
Fluent::Engine.emit(@emit_to, Time.now.to_i, last_record)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
@@ -16,9 +16,11 @@ describe Fluent::EventLastValueOutput do
|
|
16
16
|
let (:eventlastvalue) { Fluent::Test::BufferedOutputTestDriver.new(Fluent::EventLastValueOutput.new).configure(conf) }
|
17
17
|
context 'the input contains the last_value key' do
|
18
18
|
it 'produces the expected output' do
|
19
|
+
record = { 'id' => '4444', 'timestamp' => 123456789, 'count' => 12345 }
|
20
|
+
|
19
21
|
eventlastvalue.tag = 'something'
|
20
|
-
eventlastvalue.emit(
|
21
|
-
eventlastvalue.expect_format ["4444",
|
22
|
+
eventlastvalue.emit( record, Time.now )
|
23
|
+
eventlastvalue.expect_format ["4444", record, record['timestamp'].to_f].to_json + "\n"
|
22
24
|
eventlastvalue.run
|
23
25
|
end
|
24
26
|
end
|
@@ -58,7 +60,7 @@ describe Fluent::EventLastValueOutput do
|
|
58
60
|
data = JSON.parse line
|
59
61
|
eventlastvalue.emit data, Time.now
|
60
62
|
output = eventlastvalue.run
|
61
|
-
expect(output['1234']).to eq
|
63
|
+
expect(output['1234']).to eq data
|
62
64
|
end
|
63
65
|
|
64
66
|
it "returns the latest count given the comparator key" do
|
@@ -66,9 +68,9 @@ describe Fluent::EventLastValueOutput do
|
|
66
68
|
data = JSON.parse line
|
67
69
|
eventlastvalue.emit data, Time.now
|
68
70
|
end
|
69
|
-
|
71
|
+
expected = {"email" => "john.doe@example.com", "count" => 12340, "timestamp" => "6", "input_id" => "1234"}
|
70
72
|
output = eventlastvalue.run
|
71
|
-
expect(output['1234']).to eq
|
73
|
+
expect(output['1234']).to eq expected
|
72
74
|
end
|
73
75
|
end
|
74
76
|
|
@@ -87,9 +89,9 @@ describe Fluent::EventLastValueOutput do
|
|
87
89
|
data = JSON.parse line
|
88
90
|
eventlastvalue.emit data, Time.now
|
89
91
|
end
|
90
|
-
|
92
|
+
expected = {"email"=>"john.doe@example.com", "count"=>12349, "timestamp"=>"5", "input_id"=>"1234"}
|
91
93
|
output = eventlastvalue.run
|
92
|
-
expect(output['1234']).to eq
|
94
|
+
expect(output['1234']).to eq expected
|
93
95
|
end
|
94
96
|
end
|
95
97
|
end
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-eventlastvalue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Michael Arick
|
9
|
+
- Sean Dick
|
9
10
|
- Change.org
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date: 2015-
|
14
|
+
date: 2015-07-15 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: fluentd
|
@@ -93,9 +94,10 @@ dependencies:
|
|
93
94
|
- !ruby/object:Gem::Version
|
94
95
|
version: '0'
|
95
96
|
description: Fluentd plugin to find the last value in a time-period of a field and
|
96
|
-
emit it
|
97
|
+
emit it
|
97
98
|
email:
|
98
99
|
- marick@change.org
|
100
|
+
- sean@change.org
|
99
101
|
executables: []
|
100
102
|
extensions: []
|
101
103
|
extra_rdoc_files: []
|
@@ -133,7 +135,7 @@ rubygems_version: 1.8.23
|
|
133
135
|
signing_key:
|
134
136
|
specification_version: 3
|
135
137
|
summary: Fluentd plugin to find the last value in a time-period of a field and emit
|
136
|
-
it
|
138
|
+
it
|
137
139
|
test_files:
|
138
140
|
- spec/out_eventlastvalue_spec.rb
|
139
141
|
- spec/spec_helper.rb
|