@@ -644,6 +644,52 @@ void flb_test_remove_keys()
644
644
flb_destroy (ctx );
645
645
}
646
646
647
+ void flb_test_remove_keys_workers ()
648
+ {
649
+ int ret ;
650
+ int i ;
651
+ int size = sizeof (JSON_LABEL_KEYS ) - 1 ;
652
+ flb_ctx_t * ctx ;
653
+ int in_ffd ;
654
+ int out_ffd ;
655
+
656
+ /* Create context, flush every second (some checks omitted here) */
657
+ ctx = flb_create ();
658
+ flb_service_set (ctx , "flush" , "1" , "grace" , "1" ,
659
+ "log_level" , "error" ,
660
+ NULL );
661
+
662
+ /* Lib input mode */
663
+ in_ffd = flb_input (ctx , (char * ) "lib" , NULL );
664
+ flb_input_set (ctx , in_ffd , "tag" , "test" , NULL );
665
+
666
+ /* Loki output with multiple workers */
667
+ out_ffd = flb_output (ctx , (char * ) "loki" , NULL );
668
+ flb_output_set (ctx , out_ffd ,
669
+ "match" , "test" ,
670
+ "remove_keys" , "foo, $data['l_key']" ,
671
+ "workers" , "2" ,
672
+ NULL );
673
+
674
+ /* Enable test mode */
675
+ ret = flb_output_set_test (ctx , out_ffd , "formatter" ,
676
+ cb_check_remove_keys ,
677
+ NULL , NULL );
678
+
679
+ /* Start */
680
+ ret = flb_start (ctx );
681
+ TEST_CHECK (ret == 0 );
682
+
683
+ /* Ingest multiple data samples */
684
+ for (i = 0 ; i < 10 ; i ++ ) {
685
+ flb_lib_push (ctx , in_ffd , (char * ) JSON_LABEL_KEYS , size );
686
+ }
687
+
688
+ sleep (2 );
689
+ flb_stop (ctx );
690
+ flb_destroy (ctx );
691
+ }
692
+
647
693
static void cb_check_label_map_path (void * ctx , int ffd ,
648
694
int res_ret , void * res_data , size_t res_size ,
649
695
void * data )
@@ -972,6 +1018,7 @@ TEST_LIST = {
972
1018
{"remove_keys_remove_map" , flb_test_remove_map },
973
1019
{"labels_ra" , flb_test_labels_ra },
974
1020
{"remove_keys" , flb_test_remove_keys },
1021
+ {"remove_keys_workers" , flb_test_remove_keys_workers },
975
1022
{"basic" , flb_test_basic },
976
1023
{"labels" , flb_test_labels },
977
1024
{"label_keys" , flb_test_label_keys },
0 commit comments