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: 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