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