@@ -682,12 +682,14 @@ static int process_json_payload_resource_logs_entry(struct flb_opentelemetry *ct
682
682
int ret ;
683
683
int result ;
684
684
size_t index ;
685
- msgpack_object obj ;
685
+ msgpack_object * obj ;
686
686
msgpack_object_map * resource = NULL ;
687
687
msgpack_object * resource_attr = NULL ;
688
688
msgpack_object_map * resource_logs_entry = NULL ;
689
+ msgpack_object * resource_schema_url = NULL ;
689
690
msgpack_object * scope = NULL ;
690
691
msgpack_object_array * scope_logs ;
692
+ msgpack_object * scope_schema_url = NULL ;
691
693
692
694
if (resource_logs_object -> type != MSGPACK_OBJECT_MAP ) {
693
695
flb_plg_error (ctx -> ins , "unexpected resourceLogs entry type" );
@@ -697,22 +699,37 @@ static int process_json_payload_resource_logs_entry(struct flb_opentelemetry *ct
697
699
/* get 'resource' and resource['attributes'] */
698
700
result = find_map_entry_by_key (& resource_logs_object -> via .map , "resource" , 0 , FLB_TRUE );
699
701
if (result >= 0 ) {
700
- obj = resource_logs_object -> via .map .ptr [result ].val ;
701
- if (obj .type == MSGPACK_OBJECT_MAP ) {
702
- resource = & obj .via .map ;
702
+ obj = & resource_logs_object -> via .map .ptr [result ].val ;
703
+ if (obj -> type == MSGPACK_OBJECT_MAP ) {
704
+ resource = & obj -> via .map ;
705
+
706
+ /* attributes */
703
707
result = find_map_entry_by_key (resource , "attributes" , 0 , FLB_TRUE );
704
708
if (result >= 0 ) {
705
- obj = resource -> ptr [result ].val ;
706
- if (obj . type == MSGPACK_OBJECT_ARRAY ) {
707
- resource_attr = & obj ;
709
+ obj = & resource -> ptr [result ].val ;
710
+ if (obj -> type == MSGPACK_OBJECT_ARRAY ) {
711
+ resource_attr = & resource -> ptr [ result ]. val ;
708
712
}
709
713
}
710
714
}
711
715
}
712
716
713
717
resource_logs_entry = & resource_logs_object -> via .map ;
714
- result = find_map_entry_by_key (resource_logs_entry , "scopeLogs" , 0 , FLB_TRUE );
715
718
719
+ /* schemaUrl */
720
+ result = find_map_entry_by_key (resource_logs_entry , "schemaUrl" , 0 , FLB_TRUE );
721
+ if (result == -1 ) {
722
+ result = find_map_entry_by_key (resource_logs_entry , "schema_url" , 0 , FLB_TRUE );
723
+ }
724
+ if (result >= 0 ) {
725
+ obj = & resource_logs_entry -> ptr [result ].val ;
726
+ if (obj -> type == MSGPACK_OBJECT_STR ) {
727
+ resource_schema_url = & resource_logs_entry -> ptr [result ].val ;
728
+ }
729
+ }
730
+
731
+ /* scopeLogs */
732
+ result = find_map_entry_by_key (resource_logs_entry , "scopeLogs" , 0 , FLB_TRUE );
716
733
if (result == -1 ) {
717
734
result = find_map_entry_by_key (resource_logs_entry , "scope_logs" , 0 , FLB_TRUE );
718
735
if (result == -1 ) {
@@ -767,24 +784,42 @@ static int process_json_payload_resource_logs_entry(struct flb_opentelemetry *ct
767
784
if (resource ) {
768
785
result = find_map_entry_by_key (resource , "droppedAttributesCount" , 0 , FLB_TRUE );
769
786
if (result >= 0 ) {
770
- obj = resource -> ptr [result ].val ;
787
+ obj = & resource -> ptr [result ].val ;
771
788
flb_log_event_encoder_append_body_values (encoder ,
772
789
FLB_LOG_EVENT_CSTRING_VALUE ("dropped_attributes_count" ),
773
- FLB_LOG_EVENT_MSGPACK_OBJECT_VALUE (& obj ));
790
+ FLB_LOG_EVENT_MSGPACK_OBJECT_VALUE (obj ));
774
791
}
775
792
}
776
793
794
+ if (resource_schema_url ) {
795
+ flb_log_event_encoder_append_body_values (encoder ,
796
+ FLB_LOG_EVENT_CSTRING_VALUE ("schema_url" ),
797
+ FLB_LOG_EVENT_MSGPACK_OBJECT_VALUE (resource_schema_url ));
798
+ }
799
+
777
800
/* close resource map */
778
801
flb_log_event_encoder_body_commit_map (encoder );
779
802
803
+ /* scope schemaUrl */
804
+ result = find_map_entry_by_key (& scope_logs -> ptr [index ].via .map , "schemaUrl" , 0 , FLB_TRUE );
805
+ if (result == -1 ) {
806
+ result = find_map_entry_by_key (& scope_logs -> ptr [index ].via .map , "schema_url" , 0 , FLB_TRUE );
807
+ }
808
+ if (result >= 0 ) {
809
+ obj = & scope_logs -> ptr [index ].via .map .ptr [result ].val ;
810
+ if (obj -> type == MSGPACK_OBJECT_STR ) {
811
+ scope_schema_url = & scope_logs -> ptr [index ].via .map .ptr [result ].val ;
812
+ }
813
+ }
814
+
780
815
/* scope metadata */
781
816
scope = NULL ;
782
- obj = scope_logs -> ptr [index ];
783
- if (obj . type == MSGPACK_OBJECT_MAP ) {
784
- result = find_map_entry_by_key (& obj . via .map , "scope" , 0 , FLB_TRUE );
817
+ obj = & scope_logs -> ptr [index ];
818
+ if (obj -> type == MSGPACK_OBJECT_MAP ) {
819
+ result = find_map_entry_by_key (& obj -> via .map , "scope" , 0 , FLB_TRUE );
785
820
if (result >= 0 ) {
786
- if (obj . via .map .ptr [result ].val .type == MSGPACK_OBJECT_MAP ) {
787
- scope = & obj .via .map .ptr [result ].val ;
821
+ if (obj -> via .map .ptr [result ].val .type == MSGPACK_OBJECT_MAP ) {
822
+ scope = & scope_logs -> ptr [ index ] .via .map .ptr [result ].val ;
788
823
}
789
824
}
790
825
}
@@ -804,40 +839,47 @@ static int process_json_payload_resource_logs_entry(struct flb_opentelemetry *ct
804
839
/* scope name */
805
840
result = find_map_entry_by_key (& scope -> via .map , "name" , 0 , FLB_TRUE );
806
841
if (result >= 0 ) {
807
- obj = scope -> via .map .ptr [result ].val ;
808
- if (obj . type == MSGPACK_OBJECT_STR ) {
842
+ obj = & scope -> via .map .ptr [result ].val ;
843
+ if (obj -> type == MSGPACK_OBJECT_STR ) {
809
844
flb_log_event_encoder_append_body_values (encoder ,
810
845
FLB_LOG_EVENT_CSTRING_VALUE ("name" ),
811
- FLB_LOG_EVENT_MSGPACK_OBJECT_VALUE (& obj ));
846
+ FLB_LOG_EVENT_MSGPACK_OBJECT_VALUE (obj ));
812
847
}
813
848
}
814
849
815
850
/* scope version */
816
851
result = find_map_entry_by_key (& scope -> via .map , "version" , 0 , FLB_TRUE );
817
852
if (result >= 0 ) {
818
- obj = scope -> via .map .ptr [result ].val ;
819
- if (obj . type == MSGPACK_OBJECT_STR ) {
853
+ obj = & scope -> via .map .ptr [result ].val ;
854
+ if (obj -> type == MSGPACK_OBJECT_STR ) {
820
855
flb_log_event_encoder_append_body_values (encoder ,
821
856
FLB_LOG_EVENT_CSTRING_VALUE ("version" ),
822
- FLB_LOG_EVENT_MSGPACK_OBJECT_VALUE (& obj ));
857
+ FLB_LOG_EVENT_MSGPACK_OBJECT_VALUE (obj ));
823
858
}
824
859
}
825
860
826
861
/* scope attributes */
827
862
result = find_map_entry_by_key (& scope -> via .map , "attributes" , 0 , FLB_TRUE );
828
863
if (result >= 0 ) {
829
- obj = scope -> via .map .ptr [result ].val ;
830
- if (obj . type == MSGPACK_OBJECT_ARRAY ) {
864
+ obj = & scope -> via .map .ptr [result ].val ;
865
+ if (obj -> type == MSGPACK_OBJECT_ARRAY ) {
831
866
flb_log_event_encoder_append_body_string (encoder , "attributes" , 10 );
832
867
result = json_payload_append_converted_kvlist (encoder ,
833
868
FLB_LOG_EVENT_BODY ,
834
- & obj );
869
+ obj );
835
870
if (result != 0 ) {
836
871
return -2 ;
837
872
}
838
873
}
839
874
}
840
875
876
+ /* scope schemaUrl */
877
+ if (scope_schema_url ) {
878
+ flb_log_event_encoder_append_body_values (encoder ,
879
+ FLB_LOG_EVENT_CSTRING_VALUE ("schema_url" ),
880
+ FLB_LOG_EVENT_MSGPACK_OBJECT_VALUE (scope_schema_url ));
881
+ }
882
+
841
883
flb_log_event_encoder_commit_map (encoder , FLB_LOG_EVENT_BODY );
842
884
}
843
885
@@ -891,8 +933,8 @@ static int process_json_payload_root(struct flb_opentelemetry *ctx,
891
933
892
934
resource_logs = & root -> ptr [result ].val .via .array ;
893
935
894
- result = 0 ;
895
936
937
+ result = 0 ;
896
938
for (index = 0 ; index < resource_logs -> size ; index ++ ) {
897
939
result = process_json_payload_resource_logs_entry (
898
940
ctx ,
@@ -1262,6 +1304,7 @@ static int binary_payload_to_msgpack(struct flb_opentelemetry *ctx,
1262
1304
1263
1305
for (resource_logs_index = 0 ; resource_logs_index < input_logs -> n_resource_logs ; resource_logs_index ++ ) {
1264
1306
resource_log = resource_logs [resource_logs_index ];
1307
+
1265
1308
resource = resource_log -> resource ;
1266
1309
scope_logs = resource_log -> scope_logs ;
1267
1310
@@ -1322,18 +1365,18 @@ static int binary_payload_to_msgpack(struct flb_opentelemetry *ctx,
1322
1365
msgpack_pack_str_body (& mp_pck , "dropped_attributes_count" , 24 );
1323
1366
msgpack_pack_uint64 (& mp_pck , resource -> dropped_attributes_count );
1324
1367
}
1325
- }
1326
- flb_mp_map_header_end (& mh_tmp );
1327
1368
1328
- if (resource_log -> schema_url ) {
1329
- flb_mp_map_header_append (& mh );
1330
- msgpack_pack_str (& mp_pck , 10 );
1331
- msgpack_pack_str_body (& mp_pck , "schema_url" , 10 );
1369
+ if (resource_log -> schema_url ) {
1370
+ flb_mp_map_header_append (& mh_tmp );
1371
+ msgpack_pack_str (& mp_pck , 10 );
1372
+ msgpack_pack_str_body (& mp_pck , "schema_url" , 10 );
1332
1373
1333
- len = strlen (resource_log -> schema_url );
1334
- msgpack_pack_str (& mp_pck , len );
1335
- msgpack_pack_str_body (& mp_pck , resource_log -> schema_url , len );
1374
+ len = strlen (resource_log -> schema_url );
1375
+ msgpack_pack_str (& mp_pck , len );
1376
+ msgpack_pack_str_body (& mp_pck , resource_log -> schema_url , len );
1377
+ }
1336
1378
}
1379
+ flb_mp_map_header_end (& mh_tmp );
1337
1380
1338
1381
/* scope */
1339
1382
flb_mp_map_header_append (& mh );
0 commit comments