fluent-plugin-kube-events-timestamp 0.1.1 → 0.1.2
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: af49890ee89485b846d5eb108ab427be93ebd46d65529e037fd89f090a729686
|
4
|
+
data.tar.gz: f3a0df69adce30eedd04f3ad807f3038d97b8e9e447702c0a49d1f66322b0184
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00e7f370299bf9bb2a7061d4618e5a1afaabf4e5e22b1259dcd148c3adfadaf81fb330fa55be390b4eb12061c9b683861a7e91341ca1e16896d03592c613350e
|
7
|
+
data.tar.gz: e5039bd81d35e0af1105deaa380db1864c4feca93bb09ad8210f4ca1e38561eb7fbe7242ffcc9a49f7e916e8247c032ac340505949e62c962ba6c36e1abaed54
|
@@ -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.2"
|
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}
|
@@ -1,5 +1,13 @@
|
|
1
1
|
require 'fluent/plugin/filter'
|
2
2
|
|
3
|
+
def decomposite_key(key)
|
4
|
+
key.split('.')
|
5
|
+
end
|
6
|
+
|
7
|
+
def getin(hash, key)
|
8
|
+
hash.dig(*decomposite_key(key))
|
9
|
+
end
|
10
|
+
|
3
11
|
module Fluent::Plugin
|
4
12
|
class KubEventsTimestampFilter < Filter
|
5
13
|
|
@@ -26,7 +34,7 @@ module Fluent::Plugin
|
|
26
34
|
|
27
35
|
def filter(tag, time, record)
|
28
36
|
|
29
|
-
record[@mapped_time_key] = (record
|
37
|
+
record[@mapped_time_key] = (getin(record,@timestamp_fields[0]).to_s.empty?) ? (getin(record,@timestamp_fields[1]).to_s.empty?) ? getin(record,@timestamp_fields[2]) : getin(record,@timestamp_fields[1]) : getin(record,@timestamp_fields[0])
|
30
38
|
|
31
39
|
if record[@mapped_time_key].to_s.empty?
|
32
40
|
record[@mapped_time_key] = Time.at(time.is_a?(Fluent::EventTime) ? time.to_int : time).strftime(@strftime_format)
|
@@ -47,7 +47,8 @@ class TestKubEventsTimestampFilter < Test::Unit::TestCase
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def test_notime()
|
50
|
-
data={'event.eventTime' => nil,'event.lastTimestamp' => nil, 'event.firstTimestamp' => nil}
|
50
|
+
# data={'event.eventTime' => nil,'event.lastTimestamp' => nil, 'event.firstTimestamp' => nil}
|
51
|
+
data={'event' => {'eventTime' => nil, 'lastTimestamp' => nil, 'firstTimestamp' => nil}}
|
51
52
|
puts "testcase => " + data.to_s
|
52
53
|
d = create_driver
|
53
54
|
d.run(default_tag: 'test') do
|
@@ -60,13 +61,13 @@ class TestKubEventsTimestampFilter < Test::Unit::TestCase
|
|
60
61
|
|
61
62
|
def test_expected_mappings()
|
62
63
|
data=[
|
63
|
-
{'expected' => 'event.eventTime', 'event
|
64
|
-
{'expected' => 'event.eventTime', 'event
|
65
|
-
{'expected' => 'event.eventTime', 'event
|
66
|
-
{'expected' => 'event.eventTime', 'event
|
67
|
-
{'expected' => 'event.lastTimestamp', 'event
|
68
|
-
{'expected' => 'event.lastTimestamp', 'event
|
69
|
-
{'expected' => 'event.firstTimestamp', 'event
|
64
|
+
{'expected' => 'event.eventTime', 'event'=> {'eventTime' => '2021-09-21T21:39:16.000+0200','lastTimestamp' => nil, 'firstTimestamp' => nil}},
|
65
|
+
{'expected' => 'event.eventTime', 'event'=> {'eventTime' => '2021-09-21T21:39:16.000+0200','lastTimestamp' => 'notempty', 'firstTimestamp' => nil}},
|
66
|
+
{'expected' => 'event.eventTime', 'event'=> {'eventTime' => '2021-09-21T21:39:16.000+0200','lastTimestamp' => 'notempty', 'firstTimestamp' => 'alsonotempty'}},
|
67
|
+
{'expected' => 'event.eventTime', 'event'=> {'eventTime' => '2021-09-21T21:39:16.000+0200','lastTimestamp' => nil, 'firstTimestamp' => 'nonempty'}},
|
68
|
+
{'expected' => 'event.lastTimestamp', 'event'=> {'eventTime' => nil,'lastTimestamp' => 'exists', 'firstTimestamp' => nil}},
|
69
|
+
{'expected' => 'event.lastTimestamp', 'event'=> {'eventTime' => nil,'lastTimestamp' => 'exists', 'firstTimestamp' => 'alsoexists'}},
|
70
|
+
{'expected' => 'event.firstTimestamp', 'event'=> {'eventTime' => nil,'lastTimestamp' => nil, 'firstTimestamp' => 'exists'}}
|
70
71
|
]
|
71
72
|
data.each do |testcase|
|
72
73
|
puts "testcase => " + testcase.to_s
|
@@ -76,7 +77,7 @@ class TestKubEventsTimestampFilter < Test::Unit::TestCase
|
|
76
77
|
end
|
77
78
|
filtered = d.filtered.map {|e| e.last}.first
|
78
79
|
puts "result => " + filtered.to_s
|
79
|
-
assert_equal(filtered
|
80
|
+
assert_equal(getin(filtered, filtered['expected']), filtered['triggerts'])
|
80
81
|
end
|
81
82
|
end
|
82
83
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-kube-events-timestamp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Banzai Cloud
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|