fluent-plugin-kubernetes_metadata_filter 2.11.1 → 2.12.0

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: f8ed17c405e64607d3fee4b581345f32388a7b1f52db9633d83e6863f6da5358
4
- data.tar.gz: e5d6002813b1ffb266b43eda059a2f7a6b050bb69162b52a48cf68e5bf116e7d
3
+ metadata.gz: 484948269b12c47d5337c47437f7ed4649e5efdc288c6538492fda2782117eae
4
+ data.tar.gz: 867ad0c315370f75a396e7e116bee284dd71caa7d8c44914ddc31ab5727a29d9
5
5
  SHA512:
6
- metadata.gz: c39196e160ffbf56e328f1b4baf2ce61cafbb3152e1c1bfc109a445a78083ed4bd25f28f81356472dffb975a2905cd90ef951f33ba1777572e1b3c86810323cd
7
- data.tar.gz: 99377e8dbf5b6f95259b02ea923d22c1195fb582ac89ede2734fe29200305543e6916113ee49ec7c1fe6a4a839882038925925c724d662d27b5ef34f7bdeaf9e
6
+ metadata.gz: 27189d2cdeb44f378a5912a952aa23ef616a927f77062df4dacb40a7c4441c96cfe6d85c8e47fc965381db6b8b89e62c3d843517d431f7d94a53c56289dd17db
7
+ data.tar.gz: 4d0f83b0639593a3a914871ec3829289b61d7398697e257692961bfd46d38512e4c7d2f39bab5ad89c29fb858f8071afbd197560f4725b1eb642b8ef6738d889
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fluent-plugin-kubernetes_metadata_filter (2.11.1)
5
- fluentd (>= 0.14.0, < 1.15)
4
+ fluent-plugin-kubernetes_metadata_filter (2.12.0)
5
+ fluentd (>= 0.14.0, < 1.16)
6
6
  kubeclient (>= 4.0.0, < 5.0.0)
7
7
  lru_redux
8
8
 
@@ -25,28 +25,28 @@ GEM
25
25
  docile (1.4.0)
26
26
  domain_name (0.5.20190701)
27
27
  unf (>= 0.0.5, < 1.0.0)
28
- escape_utils (1.2.1)
28
+ escape_utils (1.2.2)
29
29
  ffi (1.15.5)
30
30
  ffi-compiler (1.0.1)
31
31
  ffi (>= 1.0.0)
32
32
  rake
33
- fluentd (1.14.6)
33
+ fluentd (1.15.0)
34
34
  bundler
35
35
  cool.io (>= 1.4.5, < 2.0.0)
36
36
  http_parser.rb (>= 0.5.1, < 0.9.0)
37
37
  msgpack (>= 1.3.1, < 2.0.0)
38
- serverengine (>= 2.2.5, < 3.0.0)
38
+ serverengine (>= 2.3.0, < 3.0.0)
39
39
  sigdump (~> 0.2.2)
40
40
  strptime (>= 0.2.4, < 1.0.0)
41
41
  tzinfo (>= 1.0, < 3.0)
42
42
  tzinfo-data (~> 1.0)
43
43
  webrick (>= 1.4.2, < 1.8.0)
44
44
  yajl-ruby (~> 1.0)
45
- github-linguist (7.17.0)
45
+ github-linguist (7.21.0)
46
46
  charlock_holmes (~> 0.7.7)
47
47
  escape_utils (~> 1.2.0)
48
48
  mini_mime (~> 1.0)
49
- rugged (>= 0.25.1)
49
+ rugged (~> 1.0)
50
50
  hashdiff (1.0.1)
51
51
  http (4.4.1)
52
52
  addressable (~> 2.3)
@@ -73,38 +73,38 @@ GEM
73
73
  mime-types-data (3.2022.0105)
74
74
  mini_mime (1.1.2)
75
75
  minitest (4.7.5)
76
- msgpack (1.5.2)
76
+ msgpack (1.5.3)
77
77
  multi_json (1.15.0)
78
78
  netrc (0.11.0)
79
- parallel (1.21.0)
80
- parser (3.0.2.0)
79
+ parallel (1.22.1)
80
+ parser (3.1.2.0)
81
81
  ast (~> 2.4.1)
82
82
  power_assert (2.0.1)
83
- public_suffix (4.0.6)
84
- rainbow (3.0.0)
83
+ public_suffix (4.0.7)
84
+ rainbow (3.1.1)
85
85
  rake (13.0.6)
86
86
  recursive-open-struct (1.1.3)
87
- regexp_parser (2.1.1)
87
+ regexp_parser (2.5.0)
88
88
  rest-client (2.1.0)
89
89
  http-accept (>= 1.7.0, < 2.0)
90
90
  http-cookie (>= 1.0.2, < 2.0)
91
91
  mime-types (>= 1.16, < 4.0)
92
92
  netrc (~> 0.8)
93
93
  rexml (3.2.5)
94
- rr (3.0.8)
95
- rubocop (1.22.3)
94
+ rr (3.0.9)
95
+ rubocop (1.28.2)
96
96
  parallel (~> 1.10)
97
- parser (>= 3.0.0.0)
97
+ parser (>= 3.1.0.0)
98
98
  rainbow (>= 2.2.2, < 4.0)
99
99
  regexp_parser (>= 1.8, < 3.0)
100
100
  rexml
101
- rubocop-ast (>= 1.12.0, < 2.0)
101
+ rubocop-ast (>= 1.17.0, < 2.0)
102
102
  ruby-progressbar (~> 1.7)
103
103
  unicode-display_width (>= 1.4.0, < 3.0)
104
- rubocop-ast (1.12.0)
105
- parser (>= 3.0.1.1)
104
+ rubocop-ast (1.17.0)
105
+ parser (>= 3.1.1.0)
106
106
  ruby-progressbar (1.11.0)
107
- rugged (1.2.0)
107
+ rugged (1.4.3)
108
108
  serverengine (2.3.0)
109
109
  sigdump (~> 0.2.2)
110
110
  sigdump (0.2.4)
@@ -113,7 +113,7 @@ GEM
113
113
  simplecov-html (~> 0.11)
114
114
  simplecov_json_formatter (~> 0.1)
115
115
  simplecov-html (0.12.3)
116
- simplecov_json_formatter (0.1.3)
116
+ simplecov_json_formatter (0.1.4)
117
117
  strptime (0.2.5)
118
118
  test-unit (3.0.9)
119
119
  power_assert
@@ -127,14 +127,14 @@ GEM
127
127
  unf (0.1.4)
128
128
  unf_ext
129
129
  unf_ext (0.0.8.2)
130
- unicode-display_width (2.1.0)
130
+ unicode-display_width (2.2.0)
131
131
  vcr (6.0.0)
132
132
  webmock (3.14.0)
133
133
  addressable (>= 2.8.0)
134
134
  crack (>= 0.3.2)
135
135
  hashdiff (>= 0.4.0, < 2.0.0)
136
136
  webrick (1.7.0)
137
- yajl-ruby (1.4.3)
137
+ yajl-ruby (1.4.1)
138
138
 
139
139
  PLATFORMS
140
140
  ruby
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = 'fluent-plugin-kubernetes_metadata_filter'
8
- gem.version = '2.11.1'
8
+ gem.version = '2.12.0'
9
9
  gem.authors = ['OpenShift Cluster Logging','Jimmi Dyson']
10
10
  gem.email = ['team-logging@redhat.com','jimmidyson@gmail.com']
11
11
  gem.description = 'Filter plugin to add Kubernetes metadata'
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
 
18
18
  gem.required_ruby_version = '>= 2.5.0'
19
19
 
20
- gem.add_runtime_dependency 'fluentd', ['>= 0.14.0', '< 1.15']
20
+ gem.add_runtime_dependency 'fluentd', ['>= 0.14.0', '< 1.16']
21
21
  gem.add_runtime_dependency 'kubeclient', ['>= 4.0.0', '< 5.0.0']
22
22
  gem.add_runtime_dependency 'lru_redux'
23
23
 
@@ -355,44 +355,36 @@ module Fluent::Plugin
355
355
  metadata
356
356
  end
357
357
 
358
- def filter_stream(tag, es)
359
- return es if (es.respond_to?(:empty?) && es.empty?) || !es.is_a?(Fluent::EventStream)
360
- new_es = Fluent::MultiEventStream.new
358
+ def filter(tag, time, record)
361
359
  tag_match_data = tag.match(@tag_to_kubernetes_name_regexp_compiled) unless @use_journal
362
- tag_metadata = nil
363
360
  batch_miss_cache = {}
364
- es.each do |time, record|
365
- if tag_match_data && tag_metadata.nil?
366
- cache_key = if tag_match_data.names.include?('pod_uuid') && !tag_match_data['pod_uuid'].nil?
367
- tag_match_data['pod_uuid']
368
- else
369
- tag_match_data['docker_id']
370
- end
371
- docker_id = tag_match_data.names.include?('docker_id') ? tag_match_data['docker_id'] : nil
372
- tag_metadata = get_metadata_for_record(tag_match_data['namespace'], tag_match_data['pod_name'], tag_match_data['container_name'],
373
- cache_key, create_time_from_record(record, time), batch_miss_cache, docker_id)
374
- end
375
- metadata = Marshal.load(Marshal.dump(tag_metadata)) if tag_metadata
376
- if (@use_journal || @use_journal.nil?) &&
377
- (j_metadata = get_metadata_for_journal_record(record, time, batch_miss_cache))
378
- metadata = j_metadata
379
- end
380
- if @lookup_from_k8s_field && record.key?('kubernetes') && record.key?('docker') &&
381
- record['kubernetes'].respond_to?(:has_key?) && record['docker'].respond_to?(:has_key?) &&
382
- record['kubernetes'].key?('namespace_name') &&
383
- record['kubernetes'].key?('pod_name') &&
384
- record['kubernetes'].key?('container_name') &&
385
- record['docker'].key?('container_id') &&
386
- (k_metadata = get_metadata_for_record(record['kubernetes']['namespace_name'], record['kubernetes']['pod_name'],
387
- record['kubernetes']['container_name'], record['docker']['container_id'],
388
- create_time_from_record(record, time), batch_miss_cache, record['docker']['container_id']))
389
- metadata = k_metadata
390
- end
391
- record = record.merge(metadata) if metadata
392
- new_es.add(time, record)
361
+ if tag_match_data
362
+ cache_key = if tag_match_data.names.include?('pod_uuid') && !tag_match_data['pod_uuid'].nil?
363
+ tag_match_data['pod_uuid']
364
+ else
365
+ tag_match_data['docker_id']
366
+ end
367
+ docker_id = tag_match_data.names.include?('docker_id') ? tag_match_data['docker_id'] : nil
368
+ tag_metadata = get_metadata_for_record(tag_match_data['namespace'], tag_match_data['pod_name'], tag_match_data['container_name'],
369
+ cache_key, create_time_from_record(record, time), batch_miss_cache, docker_id)
370
+ end
371
+ metadata = Marshal.load(Marshal.dump(tag_metadata)) if tag_metadata
372
+ if (@use_journal || @use_journal.nil?) &&
373
+ (j_metadata = get_metadata_for_journal_record(record, time, batch_miss_cache))
374
+ metadata = j_metadata
375
+ end
376
+ if @lookup_from_k8s_field && record.key?('kubernetes') && record.key?('docker') &&
377
+ record['kubernetes'].respond_to?(:has_key?) && record['docker'].respond_to?(:has_key?) &&
378
+ record['kubernetes'].key?('namespace_name') &&
379
+ record['kubernetes'].key?('pod_name') &&
380
+ record['kubernetes'].key?('container_name') &&
381
+ record['docker'].key?('container_id') &&
382
+ (k_metadata = get_metadata_for_record(record['kubernetes']['namespace_name'], record['kubernetes']['pod_name'],
383
+ record['kubernetes']['container_name'], record['docker']['container_id'],
384
+ create_time_from_record(record, time), batch_miss_cache, record['docker']['container_id']))
385
+ metadata = k_metadata
393
386
  end
394
- dump_stats
395
- new_es
387
+ metadata ? record.merge(metadata) : record
396
388
  end
397
389
 
398
390
  def get_metadata_for_journal_record(record, time, batch_miss_cache)
@@ -156,15 +156,6 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
156
156
  d.filtered.map(&:last)
157
157
  end
158
158
 
159
- test 'nil event stream' do
160
- # not certain how this is possible but adding test to properly
161
- # guard against this condition we have seen - test for nil,
162
- # empty, no empty method, not an event stream
163
- plugin = create_driver.instance
164
- plugin.filter_stream('tag', nil)
165
- plugin.filter_stream('tag', Fluent::MultiEventStream.new)
166
- end
167
-
168
159
  sub_test_case 'parsing_pod_metadata when container_status is missing from the pod status' do
169
160
  test 'using the tag_to_kubernetes_name_regexp for /var/log/containers ' do
170
161
  VCR.use_cassettes(
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-kubernetes_metadata_filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.1
4
+ version: 2.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenShift Cluster Logging
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-06-24 00:00:00.000000000 Z
12
+ date: 2022-07-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd
@@ -20,7 +20,7 @@ dependencies:
20
20
  version: 0.14.0
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '1.15'
23
+ version: '1.16'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -30,7 +30,7 @@ dependencies:
30
30
  version: 0.14.0
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.15'
33
+ version: '1.16'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: kubeclient
36
36
  requirement: !ruby/object:Gem::Requirement