fluent-plugin-kube-events-timestamp 0.1.0 → 0.1.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d6428e2597ae949d42c4c296af87a7485d1ebbad75739d541a2138e67a2f79c
|
4
|
+
data.tar.gz: 2a2a2bcadf07e6833af53227bdda111f34e277da9de2b78d52c17e3540568ee4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06a67900625f7d0ce5cb5d06083b57fcb21860bbfcd09c29d12eccfef1b57153cdcd5cdc5c5dd06559d0e648111ff363f5d222999a9f4e845902ff8172b4c9bd
|
7
|
+
data.tar.gz: 6419352d93f4f6341cee6b429a9ca77e3cd47b0796ccae8962aa9593fb19db4df99969bc38b33bd6b287ea368d8aba879effb224926016d4f1cf436a1b6ba3cc
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "fluent-plugin-kube-events-timestamp"
|
3
|
-
spec.version = "0.1.
|
3
|
+
spec.version = "0.1.1"
|
4
4
|
spec.authors = ["Banzai Cloud"]
|
5
5
|
spec.email = ["info@banzaicloud.com"]
|
6
6
|
spec.description = %q{fluent filter plugin to map multiple timestamps into an additional one}
|
@@ -12,7 +12,7 @@ module Fluent::Plugin
|
|
12
12
|
super
|
13
13
|
require 'date'
|
14
14
|
@strftime_format = "%Y-%m-%dT%H:%M:%S.%3N%z".freeze
|
15
|
-
raise Fluent::ConfigError, "mapped_time_key can not be empty" if mapped_time_key
|
15
|
+
raise Fluent::ConfigError, "mapped_time_key can not be empty" if mapped_time_key.to_s.empty?
|
16
16
|
raise Fluent::ConfigError, "timestamp_fields must have 3 items" if timestamp_fields.length != 3
|
17
17
|
end
|
18
18
|
|
@@ -26,18 +26,12 @@ module Fluent::Plugin
|
|
26
26
|
|
27
27
|
def filter(tag, time, record)
|
28
28
|
|
29
|
-
@timestamp_fields.
|
30
|
-
record[field]
|
31
|
-
end.compact.each do |timestamp|
|
32
|
-
begin
|
33
|
-
record[@mapped_time_key] = record[timestamp_fields[0]] == "" ? record[timestamp_fields[1]] == "" ? record[timestamp_fields[2]] : record[timestamp_fields[1]] : record[timestamp_fields[0]]
|
34
|
-
end
|
35
|
-
end
|
29
|
+
record[@mapped_time_key] = (record[@timestamp_fields[0]].to_s.empty?) ? (record[@timestamp_fields[1]].to_s.empty?) ? record[@timestamp_fields[2]] : record[@timestamp_fields[1]] : record[@timestamp_fields[0]]
|
36
30
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
31
|
+
if record[@mapped_time_key].to_s.empty?
|
32
|
+
record[@mapped_time_key] = Time.at(time.is_a?(Fluent::EventTime) ? time.to_int : time).strftime(@strftime_format)
|
33
|
+
end
|
34
|
+
$log.debug("Timestamp added: #{@mapped_time_key}:#{record[@mapped_time_key]}")
|
41
35
|
|
42
36
|
record
|
43
37
|
end
|
@@ -25,18 +25,18 @@ class TestKubEventsTimestampFilter < Test::Unit::TestCase
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_config_mapped_time_key()
|
28
|
-
data={'event.eventTime' =>
|
28
|
+
data={'event.eventTime' => nil, 'event.lastTimestamp' => nil, 'event.firstTimestamp' => nil}
|
29
29
|
d = create_driver('mapped_time_key "foobar"')
|
30
30
|
d.run(default_tag: 'test') do
|
31
31
|
d.feed({'test' => 'config_mapped_time_key'}.merge(data))
|
32
32
|
end
|
33
33
|
filtered = d.filtered.map {|e| e.last}.first
|
34
34
|
puts "result => " + filtered.to_s
|
35
|
-
|
35
|
+
assert_false(filtered['foobar'].to_s.empty?)
|
36
36
|
end
|
37
37
|
|
38
38
|
def test_config_timestamp_fields()
|
39
|
-
data={'event.eventTime' => 'also set','event.lastTimestamp' =>
|
39
|
+
data={'event.eventTime' => 'also set','event.lastTimestamp' => nil, 'event.firstTimestamp' => nil, 'foo' => 'SET', 'bar' => nil, 'baz' => nil}
|
40
40
|
d = create_driver('timestamp_fields ["foo","bar","baz"]')
|
41
41
|
d.run(default_tag: 'test') do
|
42
42
|
d.feed({'test' => 'timestamp_fields'}.merge(data))
|
@@ -47,7 +47,7 @@ class TestKubEventsTimestampFilter < Test::Unit::TestCase
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def test_notime()
|
50
|
-
data={'event.eventTime' =>
|
50
|
+
data={'event.eventTime' => nil,'event.lastTimestamp' => nil, 'event.firstTimestamp' => nil}
|
51
51
|
puts "testcase => " + data.to_s
|
52
52
|
d = create_driver
|
53
53
|
d.run(default_tag: 'test') do
|
@@ -55,18 +55,18 @@ class TestKubEventsTimestampFilter < Test::Unit::TestCase
|
|
55
55
|
end
|
56
56
|
filtered = d.filtered.map {|e| e.last}.first
|
57
57
|
puts "result => " + filtered.to_s
|
58
|
-
|
58
|
+
assert_false(filtered['triggerts'].to_s.empty?)
|
59
59
|
end
|
60
60
|
|
61
61
|
def test_expected_mappings()
|
62
62
|
data=[
|
63
|
-
{'expected' => 'event.eventTime', 'event.eventTime' => '2021-09-21T21:39:16.000+0200','event.lastTimestamp' =>
|
64
|
-
{'expected' => 'event.eventTime', 'event.eventTime' => '2021-09-21T21:39:16.000+0200','event.lastTimestamp' => 'notempty', 'event.firstTimestamp' =>
|
63
|
+
{'expected' => 'event.eventTime', 'event.eventTime' => '2021-09-21T21:39:16.000+0200','event.lastTimestamp' => nil, 'event.firstTimestamp' => nil},
|
64
|
+
{'expected' => 'event.eventTime', 'event.eventTime' => '2021-09-21T21:39:16.000+0200','event.lastTimestamp' => 'notempty', 'event.firstTimestamp' => nil},
|
65
65
|
{'expected' => 'event.eventTime', 'event.eventTime' => '2021-09-21T21:39:16.000+0200','event.lastTimestamp' => 'notempty', 'event.firstTimestamp' => 'alsonotempty'},
|
66
|
-
{'expected' => 'event.eventTime', 'event.eventTime' => '2021-09-21T21:39:16.000+0200','event.lastTimestamp' =>
|
67
|
-
{'expected' => 'event.lastTimestamp', 'event.eventTime' =>
|
68
|
-
{'expected' => 'event.lastTimestamp', 'event.eventTime' =>
|
69
|
-
{'expected' => 'event.firstTimestamp', 'event.eventTime' =>
|
66
|
+
{'expected' => 'event.eventTime', 'event.eventTime' => '2021-09-21T21:39:16.000+0200','event.lastTimestamp' => nil, 'event.firstTimestamp' => 'nonempty'},
|
67
|
+
{'expected' => 'event.lastTimestamp', 'event.eventTime' => nil,'event.lastTimestamp' => 'exists', 'event.firstTimestamp' => nil},
|
68
|
+
{'expected' => 'event.lastTimestamp', 'event.eventTime' => nil,'event.lastTimestamp' => 'exists', 'event.firstTimestamp' => 'alsoexists'},
|
69
|
+
{'expected' => 'event.firstTimestamp', 'event.eventTime' => nil,'event.lastTimestamp' => nil, 'event.firstTimestamp' => 'exists'}
|
70
70
|
]
|
71
71
|
data.each do |testcase|
|
72
72
|
puts "testcase => " + testcase.to_s
|
@@ -76,7 +76,7 @@ class TestKubEventsTimestampFilter < Test::Unit::TestCase
|
|
76
76
|
end
|
77
77
|
filtered = d.filtered.map {|e| e.last}.first
|
78
78
|
puts "result => " + filtered.to_s
|
79
|
-
assert_equal(filtered['
|
79
|
+
assert_equal(filtered[filtered['expected']], filtered['triggerts'])
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|