fluent-plugin-kubernetes_metadata_filter 1.2.0 → 1.2.1

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.
@@ -153,42 +153,13 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
153
153
  }.filtered
154
154
  end
155
155
 
156
- test 'nil event stream from journal' do
156
+ test 'nil event stream' do
157
157
  #not certain how this is possible but adding test to properly
158
158
  #guard against this condition we have seen - test for nil,
159
159
  #empty, no empty method, not an event stream
160
160
  plugin = create_driver.instance
161
- [nil, Fluent::MultiEventStream.new, 1, [1]].each do |es|
162
- assert_equal es, plugin.filter_stream_from_journal('tag', es)
163
- end
164
- # and make sure OneEventStream works
165
- ts = Time.now()
166
- rec = {"message"=>"hello"}
167
- es = Fluent::OneEventStream.new(ts, rec)
168
- newes = plugin.filter_stream_from_journal('tag', es)
169
- newes.each do |newts, newrec|
170
- assert_equal ts, newts
171
- assert_equal rec, newrec
172
- end
173
- end
174
-
175
- test 'nil event stream from files' do
176
- #not certain how this is possible but adding test to properly
177
- #guard against this condition we have seen
178
-
179
- plugin = create_driver.instance
180
- [nil, Fluent::MultiEventStream.new, 1, [1]].each do |es|
181
- assert_equal es, plugin.filter_stream_from_files('tag', es)
182
- end
183
- # and make sure OneEventStream works
184
- ts = Time.now()
185
- rec = {"message"=>"hello"}
186
- es = Fluent::OneEventStream.new(ts, rec)
187
- newes = plugin.filter_stream_from_journal('tag', es)
188
- newes.each do |newts, newrec|
189
- assert_equal ts, newts
190
- assert_equal rec, newrec
191
- end
161
+ plugin.filter_stream('tag', nil)
162
+ plugin.filter_stream('tag', Fluent::MultiEventStream.new)
192
163
  end
193
164
 
194
165
  test 'inability to connect to the api server handles exception and doensnt block pipeline' do
@@ -239,14 +210,14 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
239
210
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
240
211
  },
241
212
  'kubernetes' => {
242
- 'pod_name' => 'fabric8-console-controller-98rqc',
243
- 'container_name' => 'fabric8-console-container',
244
- 'namespace_name' => 'default',
245
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
246
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
213
+ 'pod_name' => 'fabric8-console-controller-98rqc',
214
+ 'container_name' => 'fabric8-console-container',
215
+ 'namespace_name' => 'default',
216
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
217
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
247
218
  }
248
219
  }
249
-
220
+
250
221
  assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
251
222
  end
252
223
  end
@@ -270,19 +241,21 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
270
241
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
271
242
  },
272
243
  'kubernetes' => {
273
- 'host' => 'jimmi-redhat.localnet',
274
- 'pod_name' => 'fabric8-console-controller-98rqc',
275
- 'container_name' => 'fabric8-console-container',
276
- 'namespace_name' => 'default',
277
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
278
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
279
- 'master_url' => 'https://localhost:8443',
244
+ 'host' => 'jimmi-redhat.localnet',
245
+ 'pod_name' => 'fabric8-console-controller-98rqc',
246
+ 'container_name' => 'fabric8-console-container',
247
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
248
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
249
+ 'namespace_name' => 'default',
250
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
251
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
252
+ 'master_url' => 'https://localhost:8443',
280
253
  'labels' => {
281
254
  'component' => 'fabric8Console'
282
255
  }
283
256
  }
284
257
  }
285
-
258
+
286
259
  assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
287
260
  end
288
261
  end
@@ -296,19 +269,21 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
296
269
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
297
270
  },
298
271
  'kubernetes' => {
299
- 'host' => 'jimmi-redhat.localnet',
300
- 'pod_name' => 'fabric8-console-controller-98rqc',
301
- 'container_name' => 'fabric8-console-container',
302
- 'namespace_name' => 'default',
303
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
304
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
305
- 'master_url' => 'https://localhost:8443',
272
+ 'host' => 'jimmi-redhat.localnet',
273
+ 'pod_name' => 'fabric8-console-controller-98rqc',
274
+ 'container_name' => 'fabric8-console-container',
275
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
276
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
277
+ 'namespace_name' => 'default',
278
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
279
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
280
+ 'master_url' => 'https://localhost:8443',
306
281
  'labels' => {
307
282
  'component' => 'fabric8Console'
308
283
  }
309
284
  }
310
285
  }
311
-
286
+
312
287
  assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
313
288
  end
314
289
  end
@@ -325,13 +300,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
325
300
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
326
301
  },
327
302
  'kubernetes' => {
328
- 'host' => 'jimmi-redhat.localnet',
329
- 'pod_name' => 'fabric8-console-controller-98rqc',
330
- 'container_name' => 'fabric8-console-container',
331
- 'namespace_name' => 'default',
332
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
333
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
334
- 'master_url' => 'https://localhost:8443',
303
+ 'host' => 'jimmi-redhat.localnet',
304
+ 'pod_name' => 'fabric8-console-controller-98rqc',
305
+ 'container_name' => 'fabric8-console-container',
306
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
307
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
308
+ 'namespace_name' => 'default',
309
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
310
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
311
+ 'master_url' => 'https://localhost:8443',
335
312
  'labels' => {
336
313
  'component' => 'fabric8Console'
337
314
  }
@@ -354,13 +331,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
354
331
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
355
332
  },
356
333
  'kubernetes' => {
357
- 'host' => 'jimmi-redhat.localnet',
358
- 'pod_name' => 'fabric8-console-controller-98rqc',
359
- 'container_name' => 'fabric8-console-container',
360
- 'namespace_name' => 'default',
361
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
362
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
363
- 'master_url' => 'https://localhost:8443',
334
+ 'host' => 'jimmi-redhat.localnet',
335
+ 'pod_name' => 'fabric8-console-controller-98rqc',
336
+ 'container_name' => 'fabric8-console-container',
337
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
338
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
339
+ 'namespace_name' => 'default',
340
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
341
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
342
+ 'master_url' => 'https://localhost:8443',
364
343
  'labels' => {
365
344
  'component' => 'fabric8Console'
366
345
  }
@@ -377,9 +356,9 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
377
356
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
378
357
  },
379
358
  'kubernetes' => {
380
- 'pod_name' => 'fabric8-console-controller-98rqc',
381
- 'container_name' => 'fabric8-console-container',
382
- 'namespace_name' => 'default',
359
+ 'pod_name' => 'fabric8-console-controller-98rqc',
360
+ 'container_name' => 'fabric8-console-container',
361
+ 'namespace_name' => 'default',
383
362
  }
384
363
  }
385
364
  assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
@@ -399,11 +378,11 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
399
378
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
400
379
  },
401
380
  'kubernetes' => {
402
- 'pod_name' => 'fabric8-console-controller-98rqc',
403
- 'container_name' => 'fabric8-console-container',
404
- 'namespace_name' => '.orphaned',
381
+ 'pod_name' => 'fabric8-console-controller-98rqc',
382
+ 'container_name' => 'fabric8-console-container',
383
+ 'namespace_name' => '.orphaned',
405
384
  'orphaned_namespace' => 'default',
406
- 'namespace_id' => 'orphaned'
385
+ 'namespace_id' => 'orphaned'
407
386
  }
408
387
  }
409
388
  assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
@@ -422,9 +401,9 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
422
401
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
423
402
  },
424
403
  'kubernetes' => {
425
- 'pod_name' => 'fabric8-console-controller.98rqc',
426
- 'container_name' => 'fabric8-console-container',
427
- 'namespace_name' => 'default'
404
+ 'pod_name' => 'fabric8-console-controller.98rqc',
405
+ 'container_name' => 'fabric8-console-container',
406
+ 'namespace_name' => 'default'
428
407
  }
429
408
  }
430
409
  assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
@@ -456,16 +435,18 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
456
435
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
457
436
  },
458
437
  'kubernetes' => {
459
- 'host' => 'jimmi-redhat.localnet',
460
- 'pod_name' => 'fabric8-console-controller-98rqc',
461
- 'container_name' => 'fabric8-console-container',
462
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
463
- 'namespace_labels' => {
438
+ 'host' => 'jimmi-redhat.localnet',
439
+ 'pod_name' => 'fabric8-console-controller-98rqc',
440
+ 'container_name' => 'fabric8-console-container',
441
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
442
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
443
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
444
+ 'namespace_labels' => {
464
445
  'kubernetes_io/namespacetest' => 'somevalue'
465
446
  },
466
- 'namespace_name' => 'default',
467
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
468
- 'master_url' => 'https://localhost:8443',
447
+ 'namespace_name' => 'default',
448
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
449
+ 'master_url' => 'https://localhost:8443',
469
450
  'labels' => {
470
451
  'kubernetes_io/test' => 'somevalue'
471
452
  }
@@ -488,16 +469,18 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
488
469
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
489
470
  },
490
471
  'kubernetes' => {
491
- 'host' => 'jimmi-redhat.localnet',
492
- 'pod_name' => 'fabric8-console-controller-98rqc',
493
- 'container_name' => 'fabric8-console-container',
494
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
495
- 'namespace_labels' => {
472
+ 'host' => 'jimmi-redhat.localnet',
473
+ 'pod_name' => 'fabric8-console-controller-98rqc',
474
+ 'container_name' => 'fabric8-console-container',
475
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
476
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
477
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
478
+ 'namespace_labels' => {
496
479
  'kubernetes.io/namespacetest' => 'somevalue'
497
480
  },
498
- 'namespace_name' => 'default',
499
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
500
- 'master_url' => 'https://localhost:8443',
481
+ 'namespace_name' => 'default',
482
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
483
+ 'master_url' => 'https://localhost:8443',
501
484
  'labels' => {
502
485
  'kubernetes.io/test' => 'somevalue'
503
486
  }
@@ -535,13 +518,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
535
518
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
536
519
  },
537
520
  'kubernetes' => {
538
- 'host' => 'jimmi-redhat.localnet',
539
- 'pod_name' => 'fabric8-console-controller-98rqc',
540
- 'container_name' => 'fabric8-console-container',
541
- 'namespace_name' => 'default',
542
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
543
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
544
- 'master_url' => 'https://localhost:8443',
521
+ 'host' => 'jimmi-redhat.localnet',
522
+ 'pod_name' => 'fabric8-console-controller-98rqc',
523
+ 'container_name' => 'fabric8-console-container',
524
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
525
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
526
+ 'namespace_name' => 'default',
527
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
528
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
529
+ 'master_url' => 'https://localhost:8443',
545
530
  'labels' => {
546
531
  'component' => 'fabric8Console'
547
532
  }
@@ -571,13 +556,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
571
556
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
572
557
  },
573
558
  'kubernetes' => {
574
- 'host' => 'jimmi-redhat.localnet',
575
- 'pod_name' => 'fabric8-console-controller-98rqc',
576
- 'container_name' => 'fabric8-console-container',
577
- 'namespace_name' => 'default',
578
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
579
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
580
- 'master_url' => 'https://localhost:8443',
559
+ 'host' => 'jimmi-redhat.localnet',
560
+ 'pod_name' => 'fabric8-console-controller-98rqc',
561
+ 'container_name' => 'fabric8-console-container',
562
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
563
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
564
+ 'namespace_name' => 'default',
565
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
566
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
567
+ 'master_url' => 'https://localhost:8443',
581
568
  'labels' => {
582
569
  'component' => 'fabric8Console'
583
570
  }
@@ -587,6 +574,138 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
587
574
  end
588
575
  end
589
576
 
577
+ test 'with records from journald and docker & kubernetes metadata with use_journal unset' do
578
+ # with use_journal unset, should still use the journal fields instead of tag fields
579
+ tag = 'var.log.containers.fabric8-console-controller-98rqc_default_fabric8-console-container-49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459.log'
580
+ msg = {
581
+ 'CONTAINER_NAME' => 'k8s_journald-container-name.db89db89_journald-pod-name_journald-namespace-name_c76927af-f563-11e4-b32d-54ee7527188d_89db89db',
582
+ 'CONTAINER_ID_FULL' => '838350c64bacba968d39a30a50789b2795291fceca6ccbff55298671d46b0e3b',
583
+ 'kubernetes' => {
584
+ 'namespace_name' => 'k8s-namespace-name',
585
+ 'pod_name' => 'k8s-pod-name',
586
+ 'container_name' => 'k8s-container-name'
587
+ },
588
+ 'docker' => {'container_id' => 'e463bc0d3ae38f5c89d92dca49b30e049e899799920b79d4d5f705acbe82ba95'},
589
+ 'randomfield' => 'randomvalue'
590
+ }
591
+ VCR.use_cassette('metadata_from_tag_journald_and_kubernetes_fields') do
592
+ es = emit_with_tag(tag, msg, '
593
+ kubernetes_url https://localhost:8443
594
+ watch false
595
+ cache_size 1
596
+ ')
597
+ expected_kube_metadata = {
598
+ 'docker' => {
599
+ 'container_id' => 'e463bc0d3ae38f5c89d92dca49b30e049e899799920b79d4d5f705acbe82ba95'
600
+ },
601
+ 'kubernetes' => {
602
+ 'host' => 'jimmi-redhat.localnet',
603
+ 'pod_name' => 'k8s-pod-name',
604
+ 'container_name' => 'k8s-container-name',
605
+ 'container_image' => 'k8s-container-image:latest',
606
+ 'container_image_id' => 'docker://d78c5217c41e9af08d37d9ae2cb070afa1fe3da6bc77bfb18879a8b4bfdf8a34',
607
+ 'namespace_name' => 'k8s-namespace-name',
608
+ 'namespace_id' => '8e0dc8fc-59f2-49f7-a3e2-ed0913e19d9f',
609
+ 'pod_id' => 'ebabf749-5fcd-4750-a3f0-aedd89476da8',
610
+ 'master_url' => 'https://localhost:8443',
611
+ 'labels' => {
612
+ 'component' => 'k8s-test'
613
+ }
614
+ }
615
+ }.merge(msg) {|key,oldval,newval| ((key == 'kubernetes') || (key == 'docker')) ? oldval : newval}
616
+ assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
617
+ end
618
+ end
619
+
620
+ test 'with records from journald and docker & kubernetes metadata with lookup_from_k8s_field false' do
621
+ # with use_journal unset, should still use the journal fields instead of tag fields
622
+ tag = 'var.log.containers.fabric8-console-controller-98rqc_default_fabric8-console-container-49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459.log'
623
+ msg = {
624
+ 'CONTAINER_NAME' => 'k8s_journald-container-name.db89db89_journald-pod-name_journald-namespace-name_c76927af-f563-11e4-b32d-54ee7527188d_89db89db',
625
+ 'CONTAINER_ID_FULL' => '838350c64bacba968d39a30a50789b2795291fceca6ccbff55298671d46b0e3b',
626
+ 'kubernetes' => {
627
+ 'namespace_name' => 'k8s-namespace-name',
628
+ 'pod_name' => 'k8s-pod-name',
629
+ 'container_name' => 'k8s-container-name'
630
+ },
631
+ 'docker' => {'container_id' => 'e463bc0d3ae38f5c89d92dca49b30e049e899799920b79d4d5f705acbe82ba95'},
632
+ 'randomfield' => 'randomvalue'
633
+ }
634
+ VCR.use_cassette('metadata_from_tag_and_journald_fields') do
635
+ es = emit_with_tag(tag, msg, '
636
+ kubernetes_url https://localhost:8443
637
+ watch false
638
+ cache_size 1
639
+ lookup_from_k8s_field false
640
+ ')
641
+ expected_kube_metadata = {
642
+ 'docker' => {
643
+ 'container_id' => '838350c64bacba968d39a30a50789b2795291fceca6ccbff55298671d46b0e3b'
644
+ },
645
+ 'kubernetes' => {
646
+ 'host' => 'jimmi-redhat.localnet',
647
+ 'pod_name' => 'journald-pod-name',
648
+ 'container_name' => 'journald-container-name',
649
+ 'container_image' => 'journald-container-image:latest',
650
+ 'container_image_id' => 'docker://dda4c95705fb7050b701b10a7fe928ca5bc971a1dcb521ae3c339194cbf36b47',
651
+ 'namespace_name' => 'journald-namespace-name',
652
+ 'namespace_id' => '8282888f-733f-4f23-a3d3-1fdfa3bdacf2',
653
+ 'pod_id' => '5e1c1e27-b637-4e81-80b6-6d8a8c404d3b',
654
+ 'master_url' => 'https://localhost:8443',
655
+ 'labels' => {
656
+ 'component' => 'journald-test'
657
+ }
658
+ }
659
+ }.merge(msg) {|key,oldval,newval| ((key == 'kubernetes') || (key == 'docker')) ? oldval : newval}
660
+ assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
661
+ end
662
+ end
663
+
664
+ test 'uses metadata from tag if use_journal false and lookup_from_k8s_field false' do
665
+ # with use_journal unset, should still use the journal fields instead of tag fields
666
+ tag = 'var.log.containers.fabric8-console-controller-98rqc_default_fabric8-console-container-49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459.log'
667
+ msg = {
668
+ 'CONTAINER_NAME' => 'k8s_journald-container-name.db89db89_journald-pod-name_journald-namespace-name_c76927af-f563-11e4-b32d-54ee7527188d_89db89db',
669
+ 'CONTAINER_ID_FULL' => '838350c64bacba968d39a30a50789b2795291fceca6ccbff55298671d46b0e3b',
670
+ 'kubernetes' => {
671
+ 'namespace_name' => 'k8s-namespace-name',
672
+ 'pod_name' => 'k8s-pod-name',
673
+ 'container_name' => 'k8s-container-name'
674
+ },
675
+ 'docker' => {'container_id' => 'e463bc0d3ae38f5c89d92dca49b30e049e899799920b79d4d5f705acbe82ba95'},
676
+ 'randomfield' => 'randomvalue'
677
+ }
678
+ VCR.use_cassette('metadata_from_tag_and_journald_fields') do
679
+ es = emit_with_tag(tag, msg, '
680
+ kubernetes_url https://localhost:8443
681
+ watch false
682
+ cache_size 1
683
+ lookup_from_k8s_field false
684
+ use_journal false
685
+ ')
686
+ expected_kube_metadata = {
687
+ 'docker' => {
688
+ 'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
689
+ },
690
+ 'kubernetes' => {
691
+ 'host' => 'jimmi-redhat.localnet',
692
+ 'pod_name' => 'fabric8-console-controller-98rqc',
693
+ 'container_name' => 'fabric8-console-container',
694
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
695
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
696
+ 'namespace_name' => 'default',
697
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
698
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
699
+ 'master_url' => 'https://localhost:8443',
700
+ 'labels' => {
701
+ 'component' => 'fabric8Console'
702
+ }
703
+ }
704
+ }.merge(msg) {|key,oldval,newval| ((key == 'kubernetes') || (key == 'docker')) ? oldval : newval}
705
+ assert_equal(expected_kube_metadata, es.instance_variable_get(:@record_array)[0])
706
+ end
707
+ end
708
+
590
709
  test 'with kubernetes annotations' do
591
710
  VCR.use_cassette('kubernetes_docker_metadata_annotations') do
592
711
  es = emit({},'
@@ -600,14 +719,16 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
600
719
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
601
720
  },
602
721
  'kubernetes' => {
603
- 'host' => 'jimmi-redhat.localnet',
604
- 'pod_name' => 'fabric8-console-controller-98rqc',
605
- 'container_name' => 'fabric8-console-container',
606
- 'namespace_name' => 'default',
607
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
608
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
609
- 'master_url' => 'https://localhost:8443',
610
- 'labels' => {
722
+ 'host' => 'jimmi-redhat.localnet',
723
+ 'pod_name' => 'fabric8-console-controller-98rqc',
724
+ 'container_name' => 'fabric8-console-container',
725
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
726
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
727
+ 'namespace_name' => 'default',
728
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
729
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
730
+ 'master_url' => 'https://localhost:8443',
731
+ 'labels' => {
611
732
  'component' => 'fabric8Console'
612
733
  },
613
734
  'annotations' => {
@@ -640,13 +761,15 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
640
761
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
641
762
  },
642
763
  'kubernetes' => {
643
- 'host' => 'jimmi-redhat.localnet',
644
- 'pod_name' => 'fabric8-console-controller-98rqc',
645
- 'container_name' => 'fabric8-console-container',
646
- 'namespace_name' => 'default',
647
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
648
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
649
- 'master_url' => 'https://localhost:8443',
764
+ 'host' => 'jimmi-redhat.localnet',
765
+ 'pod_name' => 'fabric8-console-controller-98rqc',
766
+ 'container_name' => 'fabric8-console-container',
767
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
768
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
769
+ 'namespace_name' => 'default',
770
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
771
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
772
+ 'master_url' => 'https://localhost:8443',
650
773
  'labels' => {
651
774
  'component' => 'fabric8Console'
652
775
  }
@@ -669,14 +792,16 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
669
792
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
670
793
  },
671
794
  'kubernetes' => {
672
- 'host' => 'jimmi-redhat.localnet',
673
- 'pod_name' => 'fabric8-console-controller-98rqc',
674
- 'container_name' => 'fabric8-console-container',
675
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
676
- 'namespace_name' => 'default',
677
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
678
- 'master_url' => 'https://localhost:8443',
679
- 'labels' => {
795
+ 'host' => 'jimmi-redhat.localnet',
796
+ 'pod_name' => 'fabric8-console-controller-98rqc',
797
+ 'container_name' => 'fabric8-console-container',
798
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
799
+ 'namespace_name' => 'default',
800
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
801
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
802
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
803
+ 'master_url' => 'https://localhost:8443',
804
+ 'labels' => {
680
805
  'component' => 'fabric8Console'
681
806
  },
682
807
  'annotations' => {
@@ -705,14 +830,16 @@ class KubernetesMetadataFilterTest < Test::Unit::TestCase
705
830
  'container_id' => '49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459'
706
831
  },
707
832
  'kubernetes' => {
708
- 'host' => 'jimmi-redhat.localnet',
709
- 'pod_name' => 'fabric8-console-controller-98rqc',
710
- 'container_name' => 'fabric8-console-container',
711
- 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
712
- 'namespace_name' => 'default',
713
- 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
714
- 'master_url' => 'https://localhost:8443',
715
- 'labels' => {
833
+ 'host' => 'jimmi-redhat.localnet',
834
+ 'pod_name' => 'fabric8-console-controller-98rqc',
835
+ 'container_name' => 'fabric8-console-container',
836
+ 'container_image' => 'fabric8/hawtio-kubernetes:latest',
837
+ 'container_image_id' => 'docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303',
838
+ 'namespace_id' => '898268c8-4a36-11e5-9d81-42010af0194c',
839
+ 'namespace_name' => 'default',
840
+ 'pod_id' => 'c76927af-f563-11e4-b32d-54ee7527188d',
841
+ 'master_url' => 'https://localhost:8443',
842
+ 'labels' => {
716
843
  'component' => 'fabric8Console'
717
844
  }
718
845
  }