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: 3692100ccc53b2ec7d4665075b6be69a1c7d842f
4
- data.tar.gz: 04a6184a07bd7964cbfb242787d4933ad1adc12a
3
+ metadata.gz: f2e0964802476e178c9905c6e0cbaba9ffadb7c1
4
+ data.tar.gz: 5ccaeb987a53deacc7c93726804737a459582852
5
5
  SHA512:
6
- metadata.gz: a5e7cf199299a8824218a906fe25c8d32378fab859cfdd7768bd920e7084e0a024b0c7ce07bf6dfdbed1b8cd3a1a02c2b47e3032f4fcc582d8a53c555c58cc1b
7
- data.tar.gz: 91eed13731d61c72dfaa68132a51a74aafacff32427e44e4ee43946a2ea1b8c861a9962ae36aa882321a5f3a07d518d9727e5812894fbea1d826f05614be6c3e
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.9.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, namespace)
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
- if cache_key.present?
129
- this = self
130
- metadata = @cache.getset(cache_key) {
131
- if metadata
132
- metadata[:kubernetes] = this.get_metadata(
133
- metadata[:kubernetes][:pod_name],
134
- metadata[:kubernetes][:container_name],
135
- metadata[:kubernetes][:namespace]
136
- )
137
- metadata
138
- end
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
- d = create_driver('
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.9.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-08-25 00:00:00.000000000 Z
11
+ date: 2015-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd