fluent-plugin-kubernetes_metadata_filter 0.9.0 → 0.10.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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2e0964802476e178c9905c6e0cbaba9ffadb7c1
|
4
|
+
data.tar.gz: 5ccaeb987a53deacc7c93726804737a459582852
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 641df616bdc5284f88d3e363693de7ff996301aef62397d0f44fce6907b7ca602bb9c4b13451be058e8d47c944bb49c9fc22a994c0688520e4db463749ffd213
|
7
|
+
data.tar.gz: c6054cb7f0184b34ce9c4bee0c665cfda2bfb012e87ac5744eb4664cffe43c2589af046a18de640b86beb2762d05997d1d27a87c0dafce4fb01b291f6e6a6256
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.name = "fluent-plugin-kubernetes_metadata_filter"
|
7
|
-
gem.version = "0.
|
7
|
+
gem.version = "0.10.0"
|
8
8
|
gem.authors = ["Jimmi Dyson"]
|
9
9
|
gem.email = ["jimmidyson@gmail.com"]
|
10
10
|
gem.description = %q{Filter plugin to add Kubernetes metadata}
|
@@ -35,7 +35,7 @@ module Fluent
|
|
35
35
|
config_param :bearer_token_file, :string, default: ''
|
36
36
|
config_param :merge_json_log, :bool, default: true
|
37
37
|
|
38
|
-
def get_metadata(pod_name, container_name
|
38
|
+
def get_metadata(namespace, pod_name, container_name)
|
39
39
|
begin
|
40
40
|
metadata = @client.get_pod(pod_name, namespace)
|
41
41
|
if metadata
|
@@ -125,25 +125,24 @@ module Fluent
|
|
125
125
|
if @kubernetes_url.present?
|
126
126
|
cache_key = "#{metadata[:kubernetes][:namespace]}_#{metadata[:kubernetes][:pod_name]}_#{metadata[:kubernetes][:container_name]}"
|
127
127
|
|
128
|
-
|
129
|
-
|
130
|
-
metadata
|
131
|
-
|
132
|
-
metadata[:kubernetes]
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
end
|
128
|
+
this = self
|
129
|
+
metadata = @cache.getset(cache_key) {
|
130
|
+
if metadata
|
131
|
+
kubernetes_metadata = this.get_metadata(
|
132
|
+
metadata[:kubernetes][:namespace],
|
133
|
+
metadata[:kubernetes][:pod_name],
|
134
|
+
metadata[:kubernetes][:container_name]
|
135
|
+
)
|
136
|
+
metadata[:kubernetes] = kubernetes_metadata if kubernetes_metadata
|
137
|
+
metadata
|
138
|
+
end
|
139
|
+
}
|
141
140
|
end
|
142
141
|
end
|
143
142
|
|
144
143
|
es.each { |time, record|
|
145
144
|
record = merge_json_log(record) if @merge_json_log
|
146
|
-
|
145
|
+
|
147
146
|
record = record.merge(metadata) if metadata
|
148
147
|
|
149
148
|
new_es.add(time, record)
|
@@ -66,7 +66,7 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
66
66
|
test 'invalid API server config' do
|
67
67
|
VCR.use_cassette('invalid_api_server_config') do
|
68
68
|
assert_raise Fluent::ConfigError do
|
69
|
-
|
69
|
+
create_driver('
|
70
70
|
kubernetes_url https://localhost:8443
|
71
71
|
bearer_token_file test/plugin/test.token
|
72
72
|
watch false
|
@@ -165,7 +165,26 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
165
165
|
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
166
166
|
end
|
167
167
|
|
168
|
-
|
168
|
+
test 'with docker & inaccessible kubernetes metadata' do
|
169
|
+
stub_request(:any, 'https://localhost:8443/api').to_return(
|
170
|
+
body: {
|
171
|
+
versions: ['v1beta3', 'v1']
|
172
|
+
}.to_json
|
173
|
+
)
|
174
|
+
stub_request(:any, 'https://localhost:8443/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc').to_timeout
|
175
|
+
es = emit()
|
176
|
+
expected_kube_metadata = {
|
177
|
+
docker: {
|
178
|
+
container_id: '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
|
179
|
+
},
|
180
|
+
kubernetes: {
|
181
|
+
pod_name: 'fabric8-console-controller-98rqc',
|
182
|
+
container_name: 'fabric8-console-container',
|
183
|
+
namespace: 'default'
|
184
|
+
}
|
185
|
+
}
|
186
|
+
assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
|
187
|
+
end
|
169
188
|
|
170
189
|
test 'with docker metadata, non-kubernetes' do
|
171
190
|
es = emit_with_tag('non-kubernetes', {}, '')
|
@@ -183,4 +202,4 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
|
|
183
202
|
assert_equal(json_log, es.instance_variable_get(:@record_array)[0])
|
184
203
|
end
|
185
204
|
end
|
186
|
-
end
|
205
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-kubernetes_metadata_filter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jimmi Dyson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|