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: 1d6428e2597ae949d42c4c296af87a7485d1ebbad75739d541a2138e67a2f79c
4
- data.tar.gz: 2a2a2bcadf07e6833af53227bdda111f34e277da9de2b78d52c17e3540568ee4
3
+ metadata.gz: af49890ee89485b846d5eb108ab427be93ebd46d65529e037fd89f090a729686
4
+ data.tar.gz: f3a0df69adce30eedd04f3ad807f3038d97b8e9e447702c0a49d1f66322b0184
5
5
  SHA512:
6
- metadata.gz: 06a67900625f7d0ce5cb5d06083b57fcb21860bbfcd09c29d12eccfef1b57153cdcd5cdc5c5dd06559d0e648111ff363f5d222999a9f4e845902ff8172b4c9bd
7
- data.tar.gz: 6419352d93f4f6341cee6b429a9ca77e3cd47b0796ccae8962aa9593fb19db4df99969bc38b33bd6b287ea368d8aba879effb224926016d4f1cf436a1b6ba3cc
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.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[@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]]
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.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
- {'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' => 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'}
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[filtered['expected']], filtered['triggerts'])
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.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-22 00:00:00.000000000 Z
11
+ date: 2021-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd