fluent-plugin-kubernetes_metadata_filter 2.11.1 → 2.12.0
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: 484948269b12c47d5337c47437f7ed4649e5efdc288c6538492fda2782117eae
|
4
|
+
data.tar.gz: 867ad0c315370f75a396e7e116bee284dd71caa7d8c44914ddc31ab5727a29d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
5
|
-
fluentd (>= 0.14.0, < 1.
|
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.
|
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.
|
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.
|
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.
|
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 (
|
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.
|
76
|
+
msgpack (1.5.3)
|
77
77
|
multi_json (1.15.0)
|
78
78
|
netrc (0.11.0)
|
79
|
-
parallel (1.
|
80
|
-
parser (3.
|
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.
|
84
|
-
rainbow (3.
|
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.
|
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.
|
95
|
-
rubocop (1.
|
94
|
+
rr (3.0.9)
|
95
|
+
rubocop (1.28.2)
|
96
96
|
parallel (~> 1.10)
|
97
|
-
parser (>= 3.
|
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.
|
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.
|
105
|
-
parser (>= 3.
|
104
|
+
rubocop-ast (1.17.0)
|
105
|
+
parser (>= 3.1.1.0)
|
106
106
|
ruby-progressbar (1.11.0)
|
107
|
-
rugged (1.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|
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
|
-
|
365
|
-
if tag_match_data &&
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
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
|
-
|
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.
|
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
|
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.
|
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.
|
33
|
+
version: '1.16'
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: kubeclient
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|