2424#include <msgpack.h>
2525#include <stdint.h>
2626
27- /* Error code values from flb_opentelemetry_logs.c */
27+ /* Error code values from flb_opentelemetry logs/traces helpers */
2828#define FLB_OTEL_LOGS_ERR_GENERIC_ERROR -1
29+ #define FLB_OTEL_TRACES_ERR_GENERIC_ERROR -1
2930
3031enum {
3132
@@ -50,7 +51,31 @@ enum {
5051 FLB_OTEL_LOGS_ERR_ENCODER_FAILURE ,
5152 FLB_OTEL_LOGS_ERR_APPEND_BODY_FAILURE ,
5253 FLB_OTEL_LOGS_ERR_INVALID_TRACE_ID ,
53- FLB_OTEL_LOGS_ERR_INVALID_SPAN_ID
54+ FLB_OTEL_LOGS_ERR_INVALID_SPAN_ID ,
55+
56+ /* trace specific errors */
57+ FLB_OTEL_TRACES_ERR_UNEXPECTED_ROOT_OBJECT_TYPE ,
58+ FLB_OTEL_TRACES_ERR_INVALID_JSON ,
59+ FLB_OTEL_TRACES_ERR_RESOURCE_SPANS_MISSING ,
60+ FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_TYPE ,
61+ FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_ENTRY_TYPE ,
62+ FLB_OTEL_TRACES_ERR_SCOPE_SPANS_MISSING ,
63+ FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_TYPE ,
64+ FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_ENTRY_TYPE ,
65+ FLB_OTEL_TRACES_ERR_SPANS_MISSING ,
66+ FLB_OTEL_TRACES_ERR_UNEXPECTED_SPANS_TYPE ,
67+ FLB_OTEL_TRACES_ERR_UNEXPECTED_SPAN_ENTRY_TYPE ,
68+ FLB_OTEL_TRACES_ERR_SPAN_NAME_MISSING ,
69+ FLB_OTEL_TRACES_ERR_INVALID_ATTRIBUTES ,
70+ FLB_OTEL_TRACES_ERR_INVALID_TRACE_ID ,
71+ FLB_OTEL_TRACES_ERR_INVALID_SPAN_ID ,
72+ FLB_OTEL_TRACES_ERR_INVALID_PARENT_SPAN_ID ,
73+ FLB_OTEL_TRACES_ERR_INVALID_EVENT_ENTRY ,
74+ FLB_OTEL_TRACES_ERR_INVALID_EVENT_TIMESTAMP ,
75+ FLB_OTEL_TRACES_ERR_INVALID_LINK_ENTRY ,
76+ FLB_OTEL_TRACES_ERR_INVALID_LINK_TRACE_ID ,
77+ FLB_OTEL_TRACES_ERR_INVALID_LINK_SPAN_ID ,
78+ FLB_OTEL_TRACES_ERR_STATUS_FAILURE
5479};
5580
5681
@@ -88,7 +113,31 @@ static struct flb_otel_error_map otel_error_map[] = {
88113 {"FLB_OTEL_LOGS_ERR_APPEND_BODY_FAILURE" , FLB_OTEL_LOGS_ERR_APPEND_BODY_FAILURE },
89114 {"FLB_OTEL_LOGS_ERR_INVALID_TRACE_ID" , FLB_OTEL_LOGS_ERR_INVALID_TRACE_ID },
90115 {"FLB_OTEL_LOGS_ERR_INVALID_SPAN_ID" , FLB_OTEL_LOGS_ERR_INVALID_SPAN_ID },
116+
117+ {"FLB_OTEL_TRACES_ERR_UNEXPECTED_ROOT_OBJECT_TYPE" , FLB_OTEL_TRACES_ERR_UNEXPECTED_ROOT_OBJECT_TYPE },
118+ {"FLB_OTEL_TRACES_ERR_INVALID_JSON" , FLB_OTEL_TRACES_ERR_INVALID_JSON },
119+ {"FLB_OTEL_TRACES_ERR_RESOURCE_SPANS_MISSING" , FLB_OTEL_TRACES_ERR_RESOURCE_SPANS_MISSING },
120+ {"FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_TYPE" , FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_TYPE },
121+ {"FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_ENTRY_TYPE" , FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_ENTRY_TYPE },
122+ {"FLB_OTEL_TRACES_ERR_SCOPE_SPANS_MISSING" , FLB_OTEL_TRACES_ERR_SCOPE_SPANS_MISSING },
123+ {"FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_TYPE" , FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_TYPE },
124+ {"FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_ENTRY_TYPE" ,FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_ENTRY_TYPE },
125+ {"FLB_OTEL_TRACES_ERR_SPANS_MISSING" , FLB_OTEL_TRACES_ERR_SPANS_MISSING },
126+ {"FLB_OTEL_TRACES_ERR_UNEXPECTED_SPANS_TYPE" , FLB_OTEL_TRACES_ERR_UNEXPECTED_SPANS_TYPE },
127+ {"FLB_OTEL_TRACES_ERR_UNEXPECTED_SPAN_ENTRY_TYPE" , FLB_OTEL_TRACES_ERR_UNEXPECTED_SPAN_ENTRY_TYPE },
128+ {"FLB_OTEL_TRACES_ERR_SPAN_NAME_MISSING" , FLB_OTEL_TRACES_ERR_SPAN_NAME_MISSING },
129+ {"FLB_OTEL_TRACES_ERR_INVALID_ATTRIBUTES" , FLB_OTEL_TRACES_ERR_INVALID_ATTRIBUTES },
130+ {"FLB_OTEL_TRACES_ERR_INVALID_TRACE_ID" , FLB_OTEL_TRACES_ERR_INVALID_TRACE_ID },
131+ {"FLB_OTEL_TRACES_ERR_INVALID_SPAN_ID" , FLB_OTEL_TRACES_ERR_INVALID_SPAN_ID },
132+ {"FLB_OTEL_TRACES_ERR_INVALID_PARENT_SPAN_ID" , FLB_OTEL_TRACES_ERR_INVALID_PARENT_SPAN_ID },
133+ {"FLB_OTEL_TRACES_ERR_INVALID_EVENT_ENTRY" , FLB_OTEL_TRACES_ERR_INVALID_EVENT_ENTRY },
134+ {"FLB_OTEL_TRACES_ERR_INVALID_EVENT_TIMESTAMP" , FLB_OTEL_TRACES_ERR_INVALID_EVENT_TIMESTAMP },
135+ {"FLB_OTEL_TRACES_ERR_INVALID_LINK_ENTRY" , FLB_OTEL_TRACES_ERR_INVALID_LINK_ENTRY },
136+ {"FLB_OTEL_TRACES_ERR_INVALID_LINK_TRACE_ID" , FLB_OTEL_TRACES_ERR_INVALID_LINK_TRACE_ID },
137+ {"FLB_OTEL_TRACES_ERR_INVALID_LINK_SPAN_ID" , FLB_OTEL_TRACES_ERR_INVALID_LINK_SPAN_ID },
138+ {"FLB_OTEL_TRACES_ERR_STATUS_FAILURE" , FLB_OTEL_TRACES_ERR_STATUS_FAILURE },
91139 {"GENERIC_ERROR" , FLB_OTEL_LOGS_ERR_GENERIC_ERROR },
140+ {"FLB_OTEL_TRACES_ERR_GENERIC_ERROR" , FLB_OTEL_TRACES_ERR_GENERIC_ERROR },
92141
93142 /* ---- */
94143 {"FLB_OTEL_LOGS_ERR_EMPTY_PAYLOAD" , FLB_OTEL_LOGS_ERR_EMPTY_PAYLOAD },
@@ -124,6 +173,9 @@ int flb_opentelemetry_logs_json_to_msgpack(struct flb_log_event_encoder *encoder
124173 const char * logs_body_key ,
125174 int * error_status );
126175
176+ struct ctrace * flb_opentelemetry_json_traces_to_ctrace (const char * body , size_t len ,
177+ int * error_status );
178+
127179/* OpenTelemetry utils */
128180int flb_otel_utils_find_map_entry_by_key (msgpack_object_map * map ,
129181 char * key ,
0 commit comments