From 1c3740d69782b14d9c995f9ddde473fff2ba42f7 Mon Sep 17 00:00:00 2001 From: Stewart Webb Date: Tue, 25 Jun 2024 10:56:18 +1000 Subject: [PATCH] in_opentelemetry: improved OTLP error handling (#8962) * Add logging in cases of opentelemetry metric+trace decode fail * Return error val in case of opentelemetry metric payload decode failure * Update opentelemetry HTTP server to return deserialisation error message in non-ok handling cases --------- Signed-off-by: Stewart Webb --- plugins/in_opentelemetry/opentelemetry_prot.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/in_opentelemetry/opentelemetry_prot.c b/plugins/in_opentelemetry/opentelemetry_prot.c index dd3d2c6cc21..c1a45c41967 100644 --- a/plugins/in_opentelemetry/opentelemetry_prot.c +++ b/plugins/in_opentelemetry/opentelemetry_prot.c @@ -2217,6 +2217,10 @@ static int process_payload_metrics_ng(struct flb_opentelemetry *ctx, cmt_decode_opentelemetry_destroy(&decoded_contexts); } + else { + flb_plg_warn(ctx->ins, "non-success cmetrics opentelemetry decode result %d", result); + return -1; + } return 0; } @@ -2266,6 +2270,9 @@ static int process_payload_traces_proto_ng(struct flb_opentelemetry *ctx, result = flb_input_trace_append(ctx->ins, NULL, 0, decoded_context); ctr_decode_opentelemetry_destroy(decoded_context); } + else { + flb_plg_warn(ctx->ins, "non-success ctraces opentelemetry decode result %d", result); + } return result; } @@ -2478,7 +2485,12 @@ int opentelemetry_prot_handle_ng(struct flb_http_request *request, send_export_service_response_ng(response, result, payload_type); } else { - send_response_ng(response, context->successful_response_code, NULL); + if (result == 0) { + send_response_ng(response, context->successful_response_code, NULL); + } + else { + send_response_ng(response, 400, "invalid request: deserialisation error\n"); + } } return result;