fluent-plugin-kubernetes_metadata_filter 0.25.3 → 0.26.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: 2c5b658648ff5e0a6159c0c0a43a27f301348d7e
4
- data.tar.gz: 565623ba233360be5200675b1a4dd693bc764307
3
+ metadata.gz: f1ae65aac8285479f1ba55639b4c9440809fcb56
4
+ data.tar.gz: aed7b25905c55ba8d06c478cb3793012d40ff148
5
5
  SHA512:
6
- metadata.gz: 24ffbf410894611d7826bed477768552ea6e439e2534fcfbaa253d0453530a7bb8f04744896ecf1c5240711038c9ea7719796f005e613bb4412afa64172d1a10
7
- data.tar.gz: 53f0da93d8f7341eca79ec4a5c2f7b00e895af756d7377c8bdd3217aaa1a769b7d05d5c257c6f0b3f5020dfc989d13405bafa702a60e0dfcb64c55131947c7ba
6
+ metadata.gz: abcb46a6d6fc693c0dc315e53dfe353a20f562b80ce353462d7f944180349051c1216be9ef038037411f8744c0ee421aed00e508b5a5ebff388038966f465b6c
7
+ data.tar.gz: f6b5ecfeb93078c26d18f1d0f3ba01333546f8533b05e1bcb18062a1ce142ef5e4431b9741f3c5afdcd1f1b088683182c1f97f24a54e3e30e4a6630e538b9be7
@@ -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.25.3"
7
+ gem.version = "0.26.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}
@@ -71,7 +71,7 @@ module Fluent
71
71
  newhsh
72
72
  end
73
73
 
74
- def get_metadata(namespace_name, pod_name, container_name)
74
+ def get_metadata(namespace_name, pod_name)
75
75
  begin
76
76
  metadata = @client.get_pod(pod_name, namespace_name)
77
77
  return if !metadata
@@ -79,12 +79,12 @@ module Fluent
79
79
  annotations = match_annotations(syms_to_strs(metadata['metadata']['annotations'].to_h))
80
80
  if @de_dot
81
81
  self.de_dot!(labels)
82
+ self.de_dot!(annotations)
82
83
  end
83
84
  kubernetes_metadata = {
84
85
  'namespace_name' => namespace_name,
85
86
  'pod_id' => metadata['metadata']['uid'],
86
87
  'pod_name' => pod_name,
87
- 'container_name' => container_name,
88
88
  'labels' => labels,
89
89
  'host' => metadata['spec']['nodeName']
90
90
  }
@@ -214,20 +214,18 @@ module Fluent
214
214
  'kubernetes' => {
215
215
  'namespace_name' => match_data['namespace'],
216
216
  'pod_name' => match_data['pod_name'],
217
- 'container_name' => match_data['container_name']
218
217
  }
219
218
  }
220
219
 
221
220
  if @kubernetes_url.present?
222
- cache_key = "#{metadata['kubernetes']['namespace_name']}_#{metadata['kubernetes']['pod_name']}_#{metadata['kubernetes']['container_name']}"
221
+ cache_key = "#{metadata['kubernetes']['namespace_name']}_#{metadata['kubernetes']['pod_name']}"
223
222
 
224
223
  this = self
225
224
  metadata = @cache.getset(cache_key) {
226
225
  if metadata
227
226
  kubernetes_metadata = this.get_metadata(
228
227
  metadata['kubernetes']['namespace_name'],
229
- metadata['kubernetes']['pod_name'],
230
- metadata['kubernetes']['container_name']
228
+ metadata['kubernetes']['pod_name']
231
229
  )
232
230
  metadata['kubernetes'] = kubernetes_metadata if kubernetes_metadata
233
231
  metadata
@@ -244,6 +242,8 @@ module Fluent
244
242
  end
245
243
  end
246
244
 
245
+ metadata['kubernetes']['container_name'] = match_data['container_name'] if match_data
246
+
247
247
  es.each { |time, record|
248
248
  record = merge_json_log(record) if @merge_json_log
249
249
 
@@ -270,20 +270,18 @@ module Fluent
270
270
  },
271
271
  'kubernetes' => {
272
272
  'namespace_name' => match_data['namespace'],
273
- 'pod_name' => match_data['pod_name'],
274
- 'container_name' => match_data['container_name']
273
+ 'pod_name' => match_data['pod_name']
275
274
  }
276
275
  }
277
276
  if @kubernetes_url.present?
278
- cache_key = "#{metadata['kubernetes']['namespace_name']}_#{metadata['kubernetes']['pod_name']}_#{metadata['kubernetes']['container_name']}"
277
+ cache_key = "#{metadata['kubernetes']['namespace_name']}_#{metadata['kubernetes']['pod_name']}"
279
278
 
280
279
  this = self
281
280
  metadata = @cache.getset(cache_key) {
282
281
  if metadata
283
282
  kubernetes_metadata = this.get_metadata(
284
283
  metadata['kubernetes']['namespace_name'],
285
- metadata['kubernetes']['pod_name'],
286
- metadata['kubernetes']['container_name']
284
+ metadata['kubernetes']['pod_name']
287
285
  )
288
286
  metadata['kubernetes'] = kubernetes_metadata if kubernetes_metadata
289
287
  metadata
@@ -298,6 +296,7 @@ module Fluent
298
296
  metadata['kubernetes']['namespace_id'] = namespace_id if namespace_id
299
297
  end
300
298
  end
299
+ metadata['kubernetes']['container_name'] = match_data['container_name']
301
300
  metadata
302
301
  end
303
302
  unless metadata
@@ -366,32 +365,27 @@ module Fluent
366
365
  watcher.each do |notice|
367
366
  case notice.type
368
367
  when 'MODIFIED'
369
- if notice.object.status.containerStatuses
370
- pod_cache_key = "#{notice.object['metadata']['namespace']}_#{notice.object['metadata']['name']}"
371
- notice.object.status.containerStatuses.each { |container_status|
372
- cache_key = "#{pod_cache_key}_#{container_status['name']}"
373
- cached = @cache[cache_key]
374
- if cached
375
- # Only thing that can be modified is labels and (possibly) annotations
376
- labels = syms_to_strs(notice.object.metadata.labels.to_h)
377
- annotations = match_annotations(syms_to_strs(notice.object.metadata.annotations.to_h))
378
- if @de_dot
379
- self.de_dot!(labels)
380
- end
381
- cached['kubernetes']['labels'] = labels
382
- cached['kubernetes']['annotations'] = annotations unless annotations.empty?
383
- @cache[cache_key] = cached
384
- end
385
- }
368
+ cache_key = "#{notice.object['metadata']['namespace']}_#{notice.object['metadata']['name']}"
369
+ cached = @cache[cache_key]
370
+ if cached
371
+ # Only thing that can be modified is labels and (possibly) annotations
372
+ labels = syms_to_strs(notice.object.metadata.labels.to_h)
373
+ annotations = match_annotations(syms_to_strs(notice.object.metadata.annotations.to_h))
374
+ if @de_dot
375
+ self.de_dot!(labels)
376
+ self.de_dot!(annotations)
377
+ end
378
+ cached['kubernetes']['labels'] = labels
379
+ if annotations.empty?
380
+ delete(cached['kubernetes']['annotations'])
381
+ else
382
+ cached['kubernetes']['annotations'] = annotations
383
+ end
384
+ @cache[cache_key] = cached
386
385
  end
387
386
  when 'DELETED'
388
- if notice.object.status.containerStatuses
389
- pod_cache_key = "#{notice.object['metadata']['namespace']}_#{notice.object['metadata']['name']}"
390
- notice.object.status.containerStatuses.each { |container_status|
391
- cache_key = "#{pod_cache_key}_#{container_status['name']}"
392
- @cache.delete(cache_key)
393
- }
394
- end
387
+ cache_key = "#{notice.object['metadata']['namespace']}_#{notice.object['metadata']['name']}"
388
+ @cache.delete(cache_key)
395
389
  else
396
390
  # Don't pay attention to creations, since the created pod may not
397
391
  # end up on this node.
@@ -524,8 +524,8 @@ use_journal true
524
524
  'component' => 'fabric8Console'
525
525
  },
526
526
  'annotations' => {
527
- 'custom.field1' => 'hello_kitty',
528
- 'field.two' => 'value'
527
+ 'custom_field1' => 'hello_kitty',
528
+ 'field_two' => 'value'
529
529
  }
530
530
  }
531
531
  }
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.25.3
4
+ version: 0.26.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: 2016-09-09 00:00:00.000000000 Z
11
+ date: 2016-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd