fluent-plugin-kube-events-timestamp 0.1.0 → 0.1.1
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
|
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
|
|