fluent-plugin-kubernetes_sumologic 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1473 @@
1
+ require "fluent/test"
2
+ require "fluent/test/helpers"
3
+ require "fluent/test/driver/filter"
4
+ require "fluent/plugin/filter_kubernetes_sumologic"
5
+ require "test-unit"
6
+ require "webmock/test_unit"
7
+
8
+ class SumoContainerOutputTest < Test::Unit::TestCase
9
+ include Fluent::Test::Helpers
10
+
11
+ setup do
12
+ Fluent::Test.setup
13
+ @time = Fluent::Engine.now
14
+ end
15
+
16
+ def create_driver(conf = CONFIG)
17
+ Fluent::Test::Driver::Filter.new(Fluent::Plugin::SumoContainerOutput).configure(conf)
18
+ end
19
+
20
+ test "test_empty_config" do
21
+ conf = %{}
22
+ assert_nothing_raised do
23
+ create_driver(conf)
24
+ end
25
+ end
26
+
27
+ test "test_default_config" do
28
+ conf = %{}
29
+ d = create_driver(conf)
30
+ time = @time
31
+ input = {
32
+ "timestamp" => 1538677347823,
33
+ "log" => "some message",
34
+ "stream" => "stdout",
35
+ "docker" => {
36
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
37
+ },
38
+ "kubernetes" => {
39
+ "container_name" => "log-format-labs",
40
+ "namespace_name" => "default",
41
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
42
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
43
+ "labels" => {
44
+ "pod-template-hash" => "1013177865",
45
+ "run" => "log-format-labs",
46
+ },
47
+ "host" => "docker-for-desktop",
48
+ "master_url" => "https =>//10.96.0.1 =>443/api",
49
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
50
+ },
51
+ }
52
+ d.run do
53
+ d.feed("filter.test", time, input)
54
+ end
55
+ expected = {
56
+ "timestamp" => 1538677347823,
57
+ "log" => "some message",
58
+ "stream" => "stdout",
59
+ "docker" => {
60
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
61
+ },
62
+ "kubernetes" => {
63
+ "container_name" => "log-format-labs",
64
+ "namespace_name" => "default",
65
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
66
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
67
+ "labels" => {
68
+ "pod-template-hash" => "1013177865",
69
+ "run" => "log-format-labs",
70
+ },
71
+ "host" => "docker-for-desktop",
72
+ "master_url" => "https =>//10.96.0.1 =>443/api",
73
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
74
+ },
75
+ "_sumo_metadata" => {
76
+ :category => "kubernetes/default/log/format/labs",
77
+ :host => "",
78
+ :log_format => "json",
79
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
80
+ },
81
+ }
82
+ assert_equal(1, d.filtered_records.size)
83
+ assert_equal(d.filtered_records[0], expected)
84
+ end
85
+
86
+ test "test_no_k8s_labels" do
87
+ conf = %{}
88
+ d = create_driver(conf)
89
+ time = @time
90
+ input = {
91
+ "timestamp" => 1538677347823,
92
+ "log" => "some message",
93
+ "stream" => "stdout",
94
+ "docker" => {
95
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
96
+ },
97
+ "kubernetes" => {
98
+ "container_name" => "log-format-labs",
99
+ "namespace_name" => "default",
100
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
101
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
102
+ "host" => "docker-for-desktop",
103
+ "master_url" => "https =>//10.96.0.1 =>443/api",
104
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
105
+ },
106
+ }
107
+ d.run do
108
+ d.feed("filter.test", time, input)
109
+ end
110
+ expected = {
111
+ "timestamp" => 1538677347823,
112
+ "log" => "some message",
113
+ "stream" => "stdout",
114
+ "docker" => {
115
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
116
+ },
117
+ "kubernetes" => {
118
+ "container_name" => "log-format-labs",
119
+ "namespace_name" => "default",
120
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
121
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
122
+ "host" => "docker-for-desktop",
123
+ "master_url" => "https =>//10.96.0.1 =>443/api",
124
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
125
+ },
126
+ "_sumo_metadata" => {
127
+ :category => "kubernetes/default/log/format/labs/54575ccdb9",
128
+ :host => "",
129
+ :log_format => "json",
130
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
131
+ },
132
+ }
133
+ assert_equal(1, d.filtered_records.size)
134
+ assert_equal(d.filtered_records[0], expected)
135
+ end
136
+
137
+ test "test_sourcecategory_prefix" do
138
+ conf = %{}
139
+ d = create_driver(conf)
140
+ time = @time
141
+ input = {
142
+ "timestamp" => 1538677347823,
143
+ "log" => "some message",
144
+ "stream" => "stdout",
145
+ "docker" => {
146
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
147
+ },
148
+ "kubernetes" => {
149
+ "container_name" => "log-format-labs",
150
+ "namespace_name" => "default",
151
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
152
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
153
+ "labels" => {
154
+ "pod-template-hash" => "1013177865",
155
+ "run" => "log-format-labs",
156
+ },
157
+ "host" => "docker-for-desktop",
158
+ "master_url" => "https =>//10.96.0.1 =>443/api",
159
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
160
+ },
161
+ }
162
+ d.run do
163
+ d.feed("filter.test", time, input)
164
+ end
165
+ expected = {
166
+ "timestamp" => 1538677347823,
167
+ "log" => "some message",
168
+ "stream" => "stdout",
169
+ "docker" => {
170
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
171
+ },
172
+ "kubernetes" => {
173
+ "container_name" => "log-format-labs",
174
+ "namespace_name" => "default",
175
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
176
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
177
+ "labels" => {
178
+ "pod-template-hash" => "1013177865",
179
+ "run" => "log-format-labs",
180
+ },
181
+ "host" => "docker-for-desktop",
182
+ "master_url" => "https =>//10.96.0.1 =>443/api",
183
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
184
+ },
185
+ "_sumo_metadata" => {
186
+ :category => "kubernetes/default/log/format/labs",
187
+ :host => "",
188
+ :log_format => "json",
189
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
190
+ },
191
+ }
192
+ assert_equal(1, d.filtered_records.size)
193
+ assert_equal(d.filtered_records[0], expected)
194
+ end
195
+
196
+ test "test_add_stream" do
197
+ conf = %{
198
+ add_stream false
199
+ }
200
+ d = create_driver(conf)
201
+ time = @time
202
+ input = {
203
+ "timestamp" => 1538677347823,
204
+ "log" => "some message",
205
+ "stream" => "stdout",
206
+ "docker" => {
207
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
208
+ },
209
+ "kubernetes" => {
210
+ "container_name" => "log-format-labs",
211
+ "namespace_name" => "default",
212
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
213
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
214
+ "labels" => {
215
+ "pod-template-hash" => "1013177865",
216
+ "run" => "log-format-labs",
217
+ },
218
+ "host" => "docker-for-desktop",
219
+ "master_url" => "https =>//10.96.0.1 =>443/api",
220
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
221
+ },
222
+ }
223
+ d.run do
224
+ d.feed("filter.test", time, input)
225
+ end
226
+ expected = {
227
+ "timestamp" => 1538677347823,
228
+ "log" => "some message",
229
+ "docker" => {
230
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
231
+ },
232
+ "kubernetes" => {
233
+ "container_name" => "log-format-labs",
234
+ "namespace_name" => "default",
235
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
236
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
237
+ "labels" => {
238
+ "pod-template-hash" => "1013177865",
239
+ "run" => "log-format-labs",
240
+ },
241
+ "host" => "docker-for-desktop",
242
+ "master_url" => "https =>//10.96.0.1 =>443/api",
243
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
244
+ },
245
+ "_sumo_metadata" => {
246
+ :category => "kubernetes/default/log/format/labs",
247
+ :host => "",
248
+ :log_format => "json",
249
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
250
+ },
251
+ }
252
+ assert_equal(1, d.filtered_records.size)
253
+ assert_equal(d.filtered_records[0], expected)
254
+ end
255
+
256
+ test "test_add_time" do
257
+ conf = %{
258
+ add_time false
259
+ }
260
+ d = create_driver(conf)
261
+ time = @time
262
+ input = {
263
+ "timestamp" => 1538677347823,
264
+ "log" => "some message",
265
+ "stream" => "stdout",
266
+ "time" => time,
267
+ "docker" => {
268
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
269
+ },
270
+ "kubernetes" => {
271
+ "container_name" => "log-format-labs",
272
+ "namespace_name" => "default",
273
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
274
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
275
+ "labels" => {
276
+ "pod-template-hash" => "1013177865",
277
+ "run" => "log-format-labs",
278
+ },
279
+ "host" => "docker-for-desktop",
280
+ "master_url" => "https =>//10.96.0.1 =>443/api",
281
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
282
+ },
283
+ }
284
+ d.run do
285
+ d.feed("filter.test", time, input)
286
+ end
287
+ expected = {
288
+ "timestamp" => 1538677347823,
289
+ "log" => "some message",
290
+ "stream" => "stdout",
291
+ "docker" => {
292
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
293
+ },
294
+ "kubernetes" => {
295
+ "container_name" => "log-format-labs",
296
+ "namespace_name" => "default",
297
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
298
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
299
+ "labels" => {
300
+ "pod-template-hash" => "1013177865",
301
+ "run" => "log-format-labs",
302
+ },
303
+ "host" => "docker-for-desktop",
304
+ "master_url" => "https =>//10.96.0.1 =>443/api",
305
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
306
+ },
307
+ "_sumo_metadata" => {
308
+ :category => "kubernetes/default/log/format/labs",
309
+ :host => "",
310
+ :log_format => "json",
311
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
312
+ },
313
+ }
314
+ assert_equal(1, d.filtered_records.size)
315
+ assert_equal(d.filtered_records[0], expected)
316
+ end
317
+
318
+ test "test_sourcecategory_replace_dash" do
319
+ conf = %{
320
+ source_category_replace_dash -
321
+ }
322
+ d = create_driver(conf)
323
+ time = @time
324
+ input = {
325
+ "timestamp" => 1538677347823,
326
+ "log" => "some message",
327
+ "stream" => "stdout",
328
+ "docker" => {
329
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
330
+ },
331
+ "kubernetes" => {
332
+ "container_name" => "log-format-labs",
333
+ "namespace_name" => "default",
334
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
335
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
336
+ "labels" => {
337
+ "pod-template-hash" => "1013177865",
338
+ "run" => "log-format-labs",
339
+ },
340
+ "host" => "docker-for-desktop",
341
+ "master_url" => "https =>//10.96.0.1 =>443/api",
342
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
343
+ },
344
+ }
345
+ d.run do
346
+ d.feed("filter.test", time, input)
347
+ end
348
+ expected = {
349
+ "timestamp" => 1538677347823,
350
+ "log" => "some message",
351
+ "stream" => "stdout",
352
+ "docker" => {
353
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
354
+ },
355
+ "kubernetes" => {
356
+ "container_name" => "log-format-labs",
357
+ "namespace_name" => "default",
358
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
359
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
360
+ "labels" => {
361
+ "pod-template-hash" => "1013177865",
362
+ "run" => "log-format-labs",
363
+ },
364
+ "host" => "docker-for-desktop",
365
+ "master_url" => "https =>//10.96.0.1 =>443/api",
366
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
367
+ },
368
+ "_sumo_metadata" => {
369
+ :category => "kubernetes/default/log-format-labs",
370
+ :host => "",
371
+ :log_format => "json",
372
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
373
+ },
374
+ }
375
+ assert_equal(1, d.filtered_records.size)
376
+ assert_equal(d.filtered_records[0], expected)
377
+ end
378
+
379
+ test "test_kubernetes_meta" do
380
+ conf = %{
381
+ kubernetes_meta false
382
+ }
383
+ d = create_driver(conf)
384
+ time = @time
385
+ input = {
386
+ "timestamp" => 1538677347823,
387
+ "log" => "some message",
388
+ "stream" => "stdout",
389
+ "docker" => {
390
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
391
+ },
392
+ "kubernetes" => {
393
+ "container_name" => "log-format-labs",
394
+ "namespace_name" => "default",
395
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
396
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
397
+ "labels" => {
398
+ "pod-template-hash" => "1013177865",
399
+ "run" => "log-format-labs",
400
+ },
401
+ "host" => "docker-for-desktop",
402
+ "master_url" => "https =>//10.96.0.1 =>443/api",
403
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
404
+ },
405
+ }
406
+ d.run do
407
+ d.feed("filter.test", time, input)
408
+ end
409
+ expected = {
410
+ "timestamp" => 1538677347823,
411
+ "log" => "some message",
412
+ "stream" => "stdout",
413
+ "_sumo_metadata" => {
414
+ :category => "kubernetes/default/log/format/labs",
415
+ :host => "",
416
+ :log_format => "json",
417
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
418
+ },
419
+ }
420
+ assert_equal(1, d.filtered_records.size)
421
+ assert_equal(d.filtered_records[0], expected)
422
+ end
423
+
424
+ test "test_kubernetes_meta_reduce_via_annotation" do
425
+ conf = %{}
426
+ d = create_driver(conf)
427
+ time = @time
428
+ input = {
429
+ "timestamp" => 1538677347823,
430
+ "log" => "some message",
431
+ "stream" => "stdout",
432
+ "docker" => {
433
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
434
+ },
435
+ "kubernetes" => {
436
+ "container_name" => "log-format-labs",
437
+ "namespace_name" => "default",
438
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
439
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
440
+ "labels" => {
441
+ "pod-template-hash" => "1013177865",
442
+ "run" => "log-format-labs"
443
+ },
444
+ "annotations" => {
445
+ "sumologic.com/kubernetes_meta_reduce" => "true",
446
+ },
447
+ "host" => "docker-for-desktop",
448
+ },
449
+ }
450
+ d.run do
451
+ d.feed("filter.test", time, input)
452
+ end
453
+ expected = {
454
+ "timestamp" => 1538677347823,
455
+ "log" => "some message",
456
+ "stream" => "stdout",
457
+ "kubernetes" => {
458
+ "container_name" => "log-format-labs",
459
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
460
+ "host" => "docker-for-desktop",
461
+ "namespace_name" => "default",
462
+ },
463
+ "_sumo_metadata" => {
464
+ :category => "kubernetes/default/log/format/labs",
465
+ :host => "",
466
+ :log_format => "json",
467
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
468
+ },
469
+ }
470
+ assert_equal(1, d.filtered_records.size)
471
+ assert_equal(d.filtered_records[0], expected)
472
+ end
473
+
474
+ test "test_kubernetes_meta_reduce_via_conf" do
475
+ conf = %{
476
+ kubernetes_meta_reduce true
477
+ }
478
+ d = create_driver(conf)
479
+ time = @time
480
+ input = {
481
+ "timestamp" => 1538677347823,
482
+ "log" => "some message",
483
+ "stream" => "stdout",
484
+ "docker" => {
485
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
486
+ },
487
+ "kubernetes" => {
488
+ "container_name" => "log-format-labs",
489
+ "namespace_name" => "default",
490
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
491
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
492
+ "labels" => {
493
+ "pod-template-hash" => "1013177865",
494
+ "run" => "log-format-labs"
495
+ },
496
+ "host" => "docker-for-desktop",
497
+ },
498
+ }
499
+ d.run do
500
+ d.feed("filter.test", time, input)
501
+ end
502
+ expected = {
503
+ "timestamp" => 1538677347823,
504
+ "log" => "some message",
505
+ "stream" => "stdout",
506
+ "kubernetes" => {
507
+ "container_name" => "log-format-labs",
508
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
509
+ "host" => "docker-for-desktop",
510
+ "namespace_name" => "default",
511
+ },
512
+ "_sumo_metadata" => {
513
+ :category => "kubernetes/default/log/format/labs",
514
+ :host => "",
515
+ :log_format => "json",
516
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
517
+ },
518
+ }
519
+ assert_equal(1, d.filtered_records.size)
520
+ assert_equal(d.filtered_records[0], expected)
521
+ end
522
+
523
+ test "test_kubernetes_meta_reduce_via_annotation_and_conf" do
524
+ conf = %{
525
+ kubernetes_meta_reduce false
526
+ }
527
+ d = create_driver(conf)
528
+ time = @time
529
+ input = {
530
+ "timestamp" => 1538677347823,
531
+ "log" => "some message",
532
+ "stream" => "stdout",
533
+ "docker" => {
534
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
535
+ },
536
+ "kubernetes" => {
537
+ "container_name" => "log-format-labs",
538
+ "namespace_name" => "default",
539
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
540
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
541
+ "labels" => {
542
+ "pod-template-hash" => "1013177865",
543
+ "run" => "log-format-labs"
544
+ },
545
+ "annotations" => {
546
+ "sumologic.com/kubernetes_meta_reduce" => "true",
547
+ },
548
+ "host" => "docker-for-desktop",
549
+ },
550
+ }
551
+ d.run do
552
+ d.feed("filter.test", time, input)
553
+ end
554
+ expected = {
555
+ "timestamp" => 1538677347823,
556
+ "log" => "some message",
557
+ "stream" => "stdout",
558
+ "kubernetes" => {
559
+ "container_name" => "log-format-labs",
560
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
561
+ "host" => "docker-for-desktop",
562
+ "namespace_name" => "default",
563
+ },
564
+ "_sumo_metadata" => {
565
+ :category => "kubernetes/default/log/format/labs",
566
+ :host => "",
567
+ :log_format => "json",
568
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
569
+ },
570
+ }
571
+ assert_equal(1, d.filtered_records.size)
572
+ assert_equal(d.filtered_records[0], expected)
573
+ end
574
+
575
+ test "test_log_format_json_merge" do
576
+ conf = %{
577
+ log_format json_merge
578
+ }
579
+ d = create_driver(conf)
580
+ time = @time
581
+ input = {
582
+ "timestamp" => 1538677347823,
583
+ "log" => "some message",
584
+ "stream" => "stdout",
585
+ "docker" => {
586
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
587
+ },
588
+ "kubernetes" => {
589
+ "container_name" => "log-format-labs",
590
+ "namespace_name" => "default",
591
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
592
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
593
+ "labels" => {
594
+ "pod-template-hash" => "1013177865",
595
+ "run" => "log-format-labs",
596
+ },
597
+ "host" => "docker-for-desktop",
598
+ "master_url" => "https =>//10.96.0.1 =>443/api",
599
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
600
+ },
601
+ }
602
+ d.run do
603
+ d.feed("filter.test", time, input)
604
+ end
605
+ expected = {
606
+ "timestamp" => 1538677347823,
607
+ "log" => "some message",
608
+ "stream" => "stdout",
609
+ "docker" => {
610
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
611
+ },
612
+ "kubernetes" => {
613
+ "container_name" => "log-format-labs",
614
+ "namespace_name" => "default",
615
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
616
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
617
+ "labels" => {
618
+ "pod-template-hash" => "1013177865",
619
+ "run" => "log-format-labs",
620
+ },
621
+ "host" => "docker-for-desktop",
622
+ "master_url" => "https =>//10.96.0.1 =>443/api",
623
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
624
+ },
625
+ "_sumo_metadata" => {
626
+ :category => "kubernetes/default/log/format/labs",
627
+ :host => "",
628
+ :log_format => "json_merge",
629
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
630
+ },
631
+ }
632
+ assert_equal(1, d.filtered_records.size)
633
+ assert_equal(d.filtered_records[0], expected)
634
+ end
635
+
636
+ test "test_log_format_text" do
637
+ conf = %{
638
+ log_format text
639
+ }
640
+ d = create_driver(conf)
641
+ time = @time
642
+ input = {
643
+ "timestamp" => 1538677347823,
644
+ "log" => "some message",
645
+ "stream" => "stdout",
646
+ "docker" => {
647
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
648
+ },
649
+ "kubernetes" => {
650
+ "container_name" => "log-format-labs",
651
+ "namespace_name" => "default",
652
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
653
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
654
+ "labels" => {
655
+ "pod-template-hash" => "1013177865",
656
+ "run" => "log-format-labs",
657
+ },
658
+ "host" => "docker-for-desktop",
659
+ "master_url" => "https =>//10.96.0.1 =>443/api",
660
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
661
+ },
662
+ }
663
+ d.run do
664
+ d.feed("filter.test", time, input)
665
+ end
666
+ expected = {
667
+ "timestamp" => 1538677347823,
668
+ "log" => "some message",
669
+ "stream" => "stdout",
670
+ "docker" => {
671
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
672
+ },
673
+ "kubernetes" => {
674
+ "container_name" => "log-format-labs",
675
+ "namespace_name" => "default",
676
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
677
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
678
+ "labels" => {
679
+ "pod-template-hash" => "1013177865",
680
+ "run" => "log-format-labs",
681
+ },
682
+ "host" => "docker-for-desktop",
683
+ "master_url" => "https =>//10.96.0.1 =>443/api",
684
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
685
+ },
686
+ "_sumo_metadata" => {
687
+ :category => "kubernetes/default/log/format/labs",
688
+ :host => "",
689
+ :log_format => "text",
690
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
691
+ },
692
+ }
693
+ assert_equal(1, d.filtered_records.size)
694
+ assert_equal(d.filtered_records[0], expected)
695
+ end
696
+
697
+ test "test_exclude_pod_regex" do
698
+ conf = %{
699
+ exclude_pod_regex foo
700
+ }
701
+ d = create_driver(conf)
702
+ time = @time
703
+ d.run do
704
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "false"}}, "message" => "foo"})
705
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "5679EFGH", "pod_name" => "bar-6554321-a87f", "container_name" => "bar", "labels" => {"app" => "bar"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "true"}}, "message" => "foo"})
706
+ end
707
+ assert_equal(1, d.filtered_records.size)
708
+ end
709
+
710
+ test "test_exclude_pod_regex_whitelist" do
711
+ conf = %{
712
+ exclude_pod_regex .*
713
+ }
714
+ d = create_driver(conf)
715
+ time = @time
716
+ d.run do
717
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "false"}}, "message" => "foo"})
718
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "5679EFGH", "pod_name" => "bar-6554321-a87f", "container_name" => "bar", "labels" => {"app" => "bar"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "true"}}, "message" => "foo"})
719
+ end
720
+ assert_equal(1, d.filtered_records.size)
721
+ end
722
+
723
+ test "test_exclude_container_regex" do
724
+ conf = %{
725
+ exclude_container_regex foo
726
+ }
727
+ d = create_driver(conf)
728
+ time = @time
729
+ d.run do
730
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "false"}}, "message" => "foo"})
731
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "5679EFGH", "pod_name" => "bar-6554321-a87f", "container_name" => "bar", "labels" => {"app" => "bar"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "true"}}, "message" => "foo"})
732
+ end
733
+ assert_equal(1, d.filtered_records.size)
734
+ end
735
+
736
+ test "test_exclude_container_regex_whitelist" do
737
+ conf = %{
738
+ exclude_container_regex .*
739
+ }
740
+ d = create_driver(conf)
741
+ time = @time
742
+ d.run do
743
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "false"}}, "message" => "foo"})
744
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "5679EFGH", "pod_name" => "bar-6554321-a87f", "container_name" => "bar", "labels" => {"app" => "bar"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "true"}}, "message" => "foo"})
745
+ end
746
+ assert_equal(1, d.filtered_records.size)
747
+ end
748
+
749
+ test "test_exclude_namespace_regex" do
750
+ conf = %{
751
+ exclude_namespace_regex foo
752
+ }
753
+ d = create_driver(conf)
754
+ time = @time
755
+ d.run do
756
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "foo", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "false"}}, "message" => "foo"})
757
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "bar", "pod_id" => "5679EFGH", "pod_name" => "bar-6554321-a87f", "container_name" => "bar", "labels" => {"app" => "bar"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "true"}}, "message" => "foo"})
758
+ end
759
+ assert_equal(1, d.filtered_records.size)
760
+ end
761
+
762
+ test "test_exclude_namespace_regex_whitelist" do
763
+ conf = %{
764
+ exclude_namespace_regex .*
765
+ }
766
+ d = create_driver(conf)
767
+ time = @time
768
+ d.run do
769
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "false"}}, "message" => "foo"})
770
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "5679EFGH", "pod_name" => "bar-6554321-a87f", "container_name" => "bar", "labels" => {"app" => "bar"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "true"}}, "message" => "foo"})
771
+ end
772
+ assert_equal(1, d.filtered_records.size)
773
+ end
774
+
775
+ test "test_exclude_host_regex" do
776
+ conf = %{
777
+ exclude_host_regex foo
778
+ }
779
+ d = create_driver(conf)
780
+ time = @time
781
+ d.run do
782
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "foo", "annotations" => {"sumologic.com/include" => "false"}}, "message" => "foo"})
783
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "5679EFGH", "pod_name" => "bar-6554321-a87f", "container_name" => "bar", "labels" => {"app" => "bar"}, "host" => "bar", "annotations" => {"sumologic.com/include" => "true"}}, "message" => "foo"})
784
+ end
785
+ assert_equal(1, d.filtered_records.size)
786
+ end
787
+
788
+ test "test_exclude_host_regex_whitelist" do
789
+ conf = %{
790
+ exclude_host_regex .*
791
+ }
792
+ d = create_driver(conf)
793
+ time = @time
794
+ d.run do
795
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "false"}}, "message" => "foo"})
796
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "5679EFGH", "pod_name" => "bar-6554321-a87f", "container_name" => "bar", "labels" => {"app" => "bar"}, "host" => "localhost", "annotations" => {"sumologic.com/include" => "true"}}, "message" => "foo"})
797
+ end
798
+ assert_equal(1, d.filtered_records.size)
799
+ end
800
+
801
+ test "test_exclude_annotation" do
802
+ conf = %{
803
+ }
804
+ d = create_driver(conf)
805
+ time = @time
806
+ d.run do
807
+ d.feed("filter.test", time, {"kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost", "annotations" => {"sumologic.com/exclude" => "true"}}, "message" => "foo"})
808
+ end
809
+ assert_equal(0, d.filtered_records.size)
810
+ end
811
+
812
+ test "test_sourcehost_annotation" do
813
+ conf = %{}
814
+ d = create_driver(conf)
815
+ time = @time
816
+ input = {
817
+ "timestamp" => 1538677347823,
818
+ "log" => "some message",
819
+ "stream" => "stdout",
820
+ "docker" => {
821
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
822
+ },
823
+ "kubernetes" => {
824
+ "container_name" => "log-format-labs",
825
+ "namespace_name" => "default",
826
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
827
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
828
+ "labels" => {
829
+ "pod-template-hash" => "1013177865",
830
+ "run" => "log-format-labs",
831
+ },
832
+ "annotations" => {
833
+ "sumologic.com/sourceHost" => "foo",
834
+ },
835
+ "host" => "docker-for-desktop",
836
+ "master_url" => "https =>//10.96.0.1 =>443/api",
837
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
838
+ },
839
+ }
840
+ d.run do
841
+ d.feed("filter.test", time, input)
842
+ end
843
+ expected = {
844
+ "timestamp" => 1538677347823,
845
+ "log" => "some message",
846
+ "stream" => "stdout",
847
+ "docker" => {
848
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
849
+ },
850
+ "kubernetes" => {
851
+ "container_name" => "log-format-labs",
852
+ "namespace_name" => "default",
853
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
854
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
855
+ "labels" => {
856
+ "pod-template-hash" => "1013177865",
857
+ "run" => "log-format-labs",
858
+ },
859
+ "annotations" => {
860
+ "sumologic.com/sourceHost" => "foo",
861
+ },
862
+ "host" => "docker-for-desktop",
863
+ "master_url" => "https =>//10.96.0.1 =>443/api",
864
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
865
+ },
866
+ "_sumo_metadata" => {
867
+ :category => "kubernetes/default/log/format/labs",
868
+ :host => "foo",
869
+ :log_format => "json",
870
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
871
+ },
872
+ }
873
+ assert_equal(1, d.filtered_records.size)
874
+ assert_equal(d.filtered_records[0], expected)
875
+ end
876
+
877
+ test "test_sourcename_annotation" do
878
+ conf = %{}
879
+ d = create_driver(conf)
880
+ time = @time
881
+ input = {
882
+ "timestamp" => 1538677347823,
883
+ "log" => "some message",
884
+ "stream" => "stdout",
885
+ "docker" => {
886
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
887
+ },
888
+ "kubernetes" => {
889
+ "container_name" => "log-format-labs",
890
+ "namespace_name" => "default",
891
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
892
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
893
+ "labels" => {
894
+ "pod-template-hash" => "1013177865",
895
+ "run" => "log-format-labs",
896
+ },
897
+ "annotations" => {
898
+ "sumologic.com/sourceName" => "foo",
899
+ },
900
+ "host" => "docker-for-desktop",
901
+ "master_url" => "https =>//10.96.0.1 =>443/api",
902
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
903
+ },
904
+ }
905
+ d.run do
906
+ d.feed("filter.test", time, input)
907
+ end
908
+ expected = {
909
+ "timestamp" => 1538677347823,
910
+ "log" => "some message",
911
+ "stream" => "stdout",
912
+ "docker" => {
913
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
914
+ },
915
+ "kubernetes" => {
916
+ "container_name" => "log-format-labs",
917
+ "namespace_name" => "default",
918
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
919
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
920
+ "labels" => {
921
+ "pod-template-hash" => "1013177865",
922
+ "run" => "log-format-labs",
923
+ },
924
+ "annotations" => {
925
+ "sumologic.com/sourceName" => "foo",
926
+ },
927
+ "host" => "docker-for-desktop",
928
+ "master_url" => "https =>//10.96.0.1 =>443/api",
929
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
930
+ },
931
+ "_sumo_metadata" => {
932
+ :category => "kubernetes/default/log/format/labs",
933
+ :host => "",
934
+ :log_format => "json",
935
+ :source => "foo",
936
+ },
937
+ }
938
+ assert_equal(1, d.filtered_records.size)
939
+ assert_equal(d.filtered_records[0], expected)
940
+ end
941
+
942
+ test "test_sourcecategory_annotation" do
943
+ conf = %{}
944
+ d = create_driver(conf)
945
+ time = @time
946
+ input = {
947
+ "timestamp" => 1538677347823,
948
+ "log" => "some message",
949
+ "stream" => "stdout",
950
+ "docker" => {
951
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
952
+ },
953
+ "kubernetes" => {
954
+ "container_name" => "log-format-labs",
955
+ "namespace_name" => "default",
956
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
957
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
958
+ "labels" => {
959
+ "pod-template-hash" => "1013177865",
960
+ "run" => "log-format-labs",
961
+ },
962
+ "annotations" => {
963
+ "sumologic.com/sourceCategory" => "foo",
964
+ },
965
+ "host" => "docker-for-desktop",
966
+ "master_url" => "https =>//10.96.0.1 =>443/api",
967
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
968
+ },
969
+ }
970
+ d.run do
971
+ d.feed("filter.test", time, input)
972
+ end
973
+ expected = {
974
+ "timestamp" => 1538677347823,
975
+ "log" => "some message",
976
+ "stream" => "stdout",
977
+ "docker" => {
978
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
979
+ },
980
+ "kubernetes" => {
981
+ "container_name" => "log-format-labs",
982
+ "namespace_name" => "default",
983
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
984
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
985
+ "labels" => {
986
+ "pod-template-hash" => "1013177865",
987
+ "run" => "log-format-labs",
988
+ },
989
+ "annotations" => {
990
+ "sumologic.com/sourceCategory" => "foo",
991
+ },
992
+ "host" => "docker-for-desktop",
993
+ "master_url" => "https =>//10.96.0.1 =>443/api",
994
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
995
+ },
996
+ "_sumo_metadata" => {
997
+ :category => "kubernetes/foo",
998
+ :host => "",
999
+ :log_format => "json",
1000
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
1001
+ },
1002
+ }
1003
+ assert_equal(1, d.filtered_records.size)
1004
+ assert_equal(d.filtered_records[0], expected)
1005
+ end
1006
+
1007
+ test "test_sourcecategory_using_labels" do
1008
+ conf = %{
1009
+ source_category %{namespace}/%{pod_name}/%{label:run}
1010
+ }
1011
+ d = create_driver(conf)
1012
+ time = @time
1013
+ input = {
1014
+ "timestamp" => 1538677347823,
1015
+ "log" => "some message",
1016
+ "stream" => "stdout",
1017
+ "docker" => {
1018
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1019
+ },
1020
+ "kubernetes" => {
1021
+ "container_name" => "log-format-labs",
1022
+ "namespace_name" => "default",
1023
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1024
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1025
+ "labels" => {
1026
+ "pod-template-hash" => "1013177865",
1027
+ "run" => "log-format-labs",
1028
+ },
1029
+ "host" => "docker-for-desktop",
1030
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1031
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1032
+ },
1033
+ }
1034
+ d.run do
1035
+ d.feed("filter.test", time, input)
1036
+ end
1037
+ expected = {
1038
+ "timestamp" => 1538677347823,
1039
+ "log" => "some message",
1040
+ "stream" => "stdout",
1041
+ "docker" => {
1042
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1043
+ },
1044
+ "kubernetes" => {
1045
+ "container_name" => "log-format-labs",
1046
+ "namespace_name" => "default",
1047
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1048
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1049
+ "labels" => {
1050
+ "pod-template-hash" => "1013177865",
1051
+ "run" => "log-format-labs",
1052
+ },
1053
+ "host" => "docker-for-desktop",
1054
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1055
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1056
+ },
1057
+ "_sumo_metadata" => {
1058
+ :category => "kubernetes/default/log/format/labs/log/format/labs",
1059
+ :host => "",
1060
+ :log_format => "json",
1061
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
1062
+ },
1063
+ }
1064
+ assert_equal(1, d.filtered_records.size)
1065
+ assert_equal(d.filtered_records[0], expected)
1066
+ end
1067
+
1068
+ test "test_sourcehost_using_pod_id" do
1069
+ conf = %{
1070
+ source_host %{pod_id}
1071
+ }
1072
+ d = create_driver(conf)
1073
+ time = @time
1074
+ input = {
1075
+ "timestamp" => 1538677347823,
1076
+ "log" => "some message",
1077
+ "stream" => "stdout",
1078
+ "docker" => {
1079
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1080
+ },
1081
+ "kubernetes" => {
1082
+ "container_name" => "log-format-labs",
1083
+ "namespace_name" => "default",
1084
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1085
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1086
+ "labels" => {
1087
+ "pod-template-hash" => "1013177865",
1088
+ "run" => "log-format-labs",
1089
+ },
1090
+ "host" => "docker-for-desktop",
1091
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1092
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1093
+ },
1094
+ }
1095
+ d.run do
1096
+ d.feed("filter.test", time, input)
1097
+ end
1098
+ expected = {
1099
+ "timestamp" => 1538677347823,
1100
+ "log" => "some message",
1101
+ "stream" => "stdout",
1102
+ "docker" => {
1103
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1104
+ },
1105
+ "kubernetes" => {
1106
+ "container_name" => "log-format-labs",
1107
+ "namespace_name" => "default",
1108
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1109
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1110
+ "labels" => {
1111
+ "pod-template-hash" => "1013177865",
1112
+ "run" => "log-format-labs",
1113
+ },
1114
+ "host" => "docker-for-desktop",
1115
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1116
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1117
+ },
1118
+ "_sumo_metadata" => {
1119
+ :category => "kubernetes/default/log/format/labs",
1120
+ :host => "170af806-c801-11e8-9009-025000000001",
1121
+ :log_format => "json",
1122
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
1123
+ },
1124
+ }
1125
+ assert_equal(1, d.filtered_records.size)
1126
+ assert_equal(d.filtered_records[0], expected)
1127
+ end
1128
+
1129
+ test "test_undefined_labels" do
1130
+ conf = %{
1131
+ source_category %{namespace}/%{pod_name}/%{label:foo}
1132
+ }
1133
+ d = create_driver(conf)
1134
+ time = @time
1135
+ input = {
1136
+ "timestamp" => 1538677347823,
1137
+ "log" => "some message",
1138
+ "stream" => "stdout",
1139
+ "docker" => {
1140
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1141
+ },
1142
+ "kubernetes" => {
1143
+ "container_name" => "log-format-labs",
1144
+ "namespace_name" => "default",
1145
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1146
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1147
+ "labels" => {
1148
+ "pod-template-hash" => "1013177865",
1149
+ "run" => "log-format-labs",
1150
+ },
1151
+ "host" => "docker-for-desktop",
1152
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1153
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1154
+ },
1155
+ }
1156
+ d.run do
1157
+ d.feed("filter.test", time, input)
1158
+ end
1159
+ expected = {
1160
+ "timestamp" => 1538677347823,
1161
+ "log" => "some message",
1162
+ "stream" => "stdout",
1163
+ "docker" => {
1164
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1165
+ },
1166
+ "kubernetes" => {
1167
+ "container_name" => "log-format-labs",
1168
+ "namespace_name" => "default",
1169
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1170
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1171
+ "labels" => {
1172
+ "pod-template-hash" => "1013177865",
1173
+ "run" => "log-format-labs",
1174
+ },
1175
+ "host" => "docker-for-desktop",
1176
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1177
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1178
+ },
1179
+ "_sumo_metadata" => {
1180
+ :category => "kubernetes/default/log/format/labs/undefined",
1181
+ :host => "",
1182
+ :log_format => "json",
1183
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
1184
+ },
1185
+ }
1186
+ assert_equal(1, d.filtered_records.size)
1187
+ assert_equal(d.filtered_records[0], expected)
1188
+ end
1189
+
1190
+ test "test_exclude_systemd_unit_regex" do
1191
+ conf = %{
1192
+ exclude_unit_regex .*
1193
+ }
1194
+ d = create_driver(conf)
1195
+ time = @time
1196
+ d.run do
1197
+ d.feed("filter.test", time, {"_SYSTEMD_UNIT" => "test", "kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost"}, "message" => "foo"})
1198
+ end
1199
+ assert_equal(0, d.filtered_records.size)
1200
+ end
1201
+
1202
+ test "test_exclude_systemd_facility_regex" do
1203
+ conf = %{
1204
+ exclude_facility_regex .*
1205
+ }
1206
+ d = create_driver(conf)
1207
+ time = @time
1208
+ d.run do
1209
+ d.feed("filter.test", time, {"_SYSTEMD_UNIT" => "test", "SYSLOG_FACILITY" => "test", "kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost"}, "message" => "foo"})
1210
+ end
1211
+ assert_equal(0, d.filtered_records.size)
1212
+ end
1213
+
1214
+ test "test_exclude_systemd_priority_regex" do
1215
+ conf = %{
1216
+ exclude_priority_regex .*
1217
+ }
1218
+ d = create_driver(conf)
1219
+ time = @time
1220
+ d.run do
1221
+ d.feed("filter.test", time, {"_SYSTEMD_UNIT" => "test", "PRIORITY" => "test", "kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost"}, "message" => "foo"})
1222
+ end
1223
+ assert_equal(0, d.filtered_records.size)
1224
+ end
1225
+
1226
+ test "test_exclude_systemd_hostname_regex" do
1227
+ conf = %{
1228
+ exclude_host_regex .*
1229
+ }
1230
+ d = create_driver(conf)
1231
+ time = @time
1232
+ d.run do
1233
+ d.feed("filter.test", time, {"_SYSTEMD_UNIT" => "test", "_HOSTNAME" => "test", "kubernetes" => {"namespace_name" => "test", "pod_id" => "1234ABCD", "pod_name" => "foo-1234556-f87a", "container_name" => "foo", "labels" => {"app" => "foo"}, "host" => "localhost"}, "message" => "foo"})
1234
+ end
1235
+ assert_equal(0, d.filtered_records.size)
1236
+ end
1237
+
1238
+ test "test_pre_1.8_dynamic_bit_removal" do
1239
+ conf = %{}
1240
+ d = create_driver(conf)
1241
+ time = @time
1242
+ input = {
1243
+ "timestamp" => 1538677347823,
1244
+ "log" => "some message",
1245
+ "stream" => "stdout",
1246
+ "docker" => {
1247
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1248
+ },
1249
+ "kubernetes" => {
1250
+ "container_name" => "log-format-labs",
1251
+ "namespace_name" => "default",
1252
+ "pod_name" => "log-format-labs-1013177865-9d677",
1253
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1254
+ "labels" => {
1255
+ "pod-template-hash" => "1013177865",
1256
+ "run" => "log-format-labs",
1257
+ },
1258
+ "host" => "docker-for-desktop",
1259
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1260
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1261
+ },
1262
+ }
1263
+ d.run do
1264
+ d.feed("filter.test", time, input)
1265
+ end
1266
+ expected = {
1267
+ "timestamp" => 1538677347823,
1268
+ "log" => "some message",
1269
+ "stream" => "stdout",
1270
+ "docker" => {
1271
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1272
+ },
1273
+ "kubernetes" => {
1274
+ "container_name" => "log-format-labs",
1275
+ "namespace_name" => "default",
1276
+ "pod_name" => "log-format-labs-1013177865-9d677",
1277
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1278
+ "labels" => {
1279
+ "pod-template-hash" => "1013177865",
1280
+ "run" => "log-format-labs",
1281
+ },
1282
+ "host" => "docker-for-desktop",
1283
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1284
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1285
+ },
1286
+ "_sumo_metadata" => {
1287
+ :category => "kubernetes/default/log/format/labs",
1288
+ :host => "",
1289
+ :log_format => "json",
1290
+ :source => "default.log-format-labs-1013177865-9d677.log-format-labs",
1291
+ },
1292
+ }
1293
+ assert_equal(1, d.filtered_records.size)
1294
+ assert_equal(d.filtered_records[0], expected)
1295
+ end
1296
+
1297
+ test "test_1.8-1.11_dynamic_bit_removal" do
1298
+ conf = %{}
1299
+ d = create_driver(conf)
1300
+ time = @time
1301
+ input = {
1302
+ "timestamp" => 1538677347823,
1303
+ "log" => "some message",
1304
+ "stream" => "stdout",
1305
+ "docker" => {
1306
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1307
+ },
1308
+ "kubernetes" => {
1309
+ "container_name" => "log-format-labs",
1310
+ "namespace_name" => "default",
1311
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1312
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1313
+ "labels" => {
1314
+ "pod-template-hash" => "1013177865",
1315
+ "run" => "log-format-labs",
1316
+ },
1317
+ "host" => "docker-for-desktop",
1318
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1319
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1320
+ },
1321
+ }
1322
+ d.run do
1323
+ d.feed("filter.test", time, input)
1324
+ end
1325
+ expected = {
1326
+ "timestamp" => 1538677347823,
1327
+ "log" => "some message",
1328
+ "stream" => "stdout",
1329
+ "docker" => {
1330
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1331
+ },
1332
+ "kubernetes" => {
1333
+ "container_name" => "log-format-labs",
1334
+ "namespace_name" => "default",
1335
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1336
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1337
+ "labels" => {
1338
+ "pod-template-hash" => "1013177865",
1339
+ "run" => "log-format-labs",
1340
+ },
1341
+ "host" => "docker-for-desktop",
1342
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1343
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1344
+ },
1345
+ "_sumo_metadata" => {
1346
+ :category => "kubernetes/default/log/format/labs",
1347
+ :host => "",
1348
+ :log_format => "json",
1349
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
1350
+ },
1351
+ }
1352
+ assert_equal(1, d.filtered_records.size)
1353
+ assert_equal(d.filtered_records[0], expected)
1354
+ end
1355
+
1356
+ test "test_post_1.11_dynamic_bit_removal" do
1357
+ conf = %{}
1358
+ d = create_driver(conf)
1359
+ time = @time
1360
+ input = {
1361
+ "timestamp" => 1538677347823,
1362
+ "log" => "some message",
1363
+ "stream" => "stdout",
1364
+ "docker" => {
1365
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1366
+ },
1367
+ "kubernetes" => {
1368
+ "container_name" => "log-format-labs",
1369
+ "namespace_name" => "default",
1370
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1371
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1372
+ "labels" => {
1373
+ "pod-template-hash" => "54575ccdb9",
1374
+ "run" => "log-format-labs",
1375
+ },
1376
+ "host" => "docker-for-desktop",
1377
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1378
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1379
+ },
1380
+ }
1381
+ d.run do
1382
+ d.feed("filter.test", time, input)
1383
+ end
1384
+ expected = {
1385
+ "timestamp" => 1538677347823,
1386
+ "log" => "some message",
1387
+ "stream" => "stdout",
1388
+ "docker" => {
1389
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1390
+ },
1391
+ "kubernetes" => {
1392
+ "container_name" => "log-format-labs",
1393
+ "namespace_name" => "default",
1394
+ "pod_name" => "log-format-labs-54575ccdb9-9d677",
1395
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1396
+ "labels" => {
1397
+ "pod-template-hash" => "54575ccdb9",
1398
+ "run" => "log-format-labs",
1399
+ },
1400
+ "host" => "docker-for-desktop",
1401
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1402
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1403
+ },
1404
+ "_sumo_metadata" => {
1405
+ :category => "kubernetes/default/log/format/labs",
1406
+ :host => "",
1407
+ :log_format => "json",
1408
+ :source => "default.log-format-labs-54575ccdb9-9d677.log-format-labs",
1409
+ },
1410
+ }
1411
+ assert_equal(1, d.filtered_records.size)
1412
+ assert_equal(d.filtered_records[0], expected)
1413
+ end
1414
+
1415
+ test "test_mismatch_dynamic_bit_is_left" do
1416
+ conf = %{}
1417
+ d = create_driver(conf)
1418
+ time = @time
1419
+ input = {
1420
+ "timestamp" => 1538677347823,
1421
+ "log" => "some message",
1422
+ "stream" => "stdout",
1423
+ "docker" => {
1424
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1425
+ },
1426
+ "kubernetes" => {
1427
+ "container_name" => "log-format-labs",
1428
+ "namespace_name" => "default",
1429
+ "pod_name" => "log-format-labs-53575ccdb9-9d677",
1430
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1431
+ "labels" => {
1432
+ "pod-template-hash" => "54575ccdb9",
1433
+ "run" => "log-format-labs",
1434
+ },
1435
+ "host" => "docker-for-desktop",
1436
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1437
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1438
+ },
1439
+ }
1440
+ d.run do
1441
+ d.feed("filter.test", time, input)
1442
+ end
1443
+ expected = {
1444
+ "timestamp" => 1538677347823,
1445
+ "log" => "some message",
1446
+ "stream" => "stdout",
1447
+ "docker" => {
1448
+ "container_id" => "5c280b6ad5abec32e9af729295c20f60fbeadf3ba16fda2d121f87228e6822e0",
1449
+ },
1450
+ "kubernetes" => {
1451
+ "container_name" => "log-format-labs",
1452
+ "namespace_name" => "default",
1453
+ "pod_name" => "log-format-labs-53575ccdb9-9d677",
1454
+ "pod_id" => "170af806-c801-11e8-9009-025000000001",
1455
+ "labels" => {
1456
+ "pod-template-hash" => "54575ccdb9",
1457
+ "run" => "log-format-labs",
1458
+ },
1459
+ "host" => "docker-for-desktop",
1460
+ "master_url" => "https =>//10.96.0.1 =>443/api",
1461
+ "namespace_id" => "e8572415-9596-11e8-b28b-025000000001",
1462
+ },
1463
+ "_sumo_metadata" => {
1464
+ :category => "kubernetes/default/log/format/labs/53575ccdb9",
1465
+ :host => "",
1466
+ :log_format => "json",
1467
+ :source => "default.log-format-labs-53575ccdb9-9d677.log-format-labs",
1468
+ },
1469
+ }
1470
+ assert_equal(1, d.filtered_records.size)
1471
+ assert_equal(d.filtered_records[0], expected)
1472
+ end
1473
+ end