fluent-plugin-kubernetes_metadata_filter 0.9.0 → 0.10.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
  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