From a325f9603ad4d3f54ecf00e5dec0b856011d0f32 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Mon, 17 Mar 2025 13:01:57 -0600 Subject: [PATCH 1/2] lib: ctraces: upgrade to v0.6.1 Signed-off-by: Eduardo Silva --- lib/ctraces/.github/workflows/build.yaml | 2 +- lib/ctraces/.github/workflows/packages.yaml | 2 +- lib/ctraces/CMakeLists.txt | 2 +- lib/ctraces/CODEOWNERS | 7 +++++++ lib/ctraces/include/ctraces/ctr_span.h | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 lib/ctraces/CODEOWNERS diff --git a/lib/ctraces/.github/workflows/build.yaml b/lib/ctraces/.github/workflows/build.yaml index 9927eb6a72b..3fddff58c51 100644 --- a/lib/ctraces/.github/workflows/build.yaml +++ b/lib/ctraces/.github/workflows/build.yaml @@ -105,7 +105,7 @@ jobs: submodules: true - name: Build on ${{ matrix.os }} with ${{ matrix.compiler }} - uses: uraimo/run-on-arch-action@v2.8.1 + uses: uraimo/run-on-arch-action@v3.0.0 with: arch: aarch64 distro: ubuntu_latest diff --git a/lib/ctraces/.github/workflows/packages.yaml b/lib/ctraces/.github/workflows/packages.yaml index 78d4017c579..fa2db17722a 100644 --- a/lib/ctraces/.github/workflows/packages.yaml +++ b/lib/ctraces/.github/workflows/packages.yaml @@ -22,7 +22,7 @@ jobs: with: submodules: true - - uses: uraimo/run-on-arch-action@v2.8.1 + - uses: uraimo/run-on-arch-action@v3.0.0 name: Build the ${{matrix.format}} packages with: arch: aarch64 diff --git a/lib/ctraces/CMakeLists.txt b/lib/ctraces/CMakeLists.txt index e878b31503c..ffe0589f05d 100644 --- a/lib/ctraces/CMakeLists.txt +++ b/lib/ctraces/CMakeLists.txt @@ -27,7 +27,7 @@ endif() # CTraces Version set(CTR_VERSION_MAJOR 0) set(CTR_VERSION_MINOR 6) -set(CTR_VERSION_PATCH 0) +set(CTR_VERSION_PATCH 1) set(CTR_VERSION_STR "${CTR_VERSION_MAJOR}.${CTR_VERSION_MINOR}.${CTR_VERSION_PATCH}") # Define __FILENAME__ consistently across Operating Systems diff --git a/lib/ctraces/CODEOWNERS b/lib/ctraces/CODEOWNERS new file mode 100644 index 00000000000..2c2d84eaf89 --- /dev/null +++ b/lib/ctraces/CODEOWNERS @@ -0,0 +1,7 @@ +# Global Owners +# ------------- +* @edsiper @leonardo-albertovich + +# CI +# ------------------------- +/.github/ @niedbalski @patrick-stephens @celalettin1286 diff --git a/lib/ctraces/include/ctraces/ctr_span.h b/lib/ctraces/include/ctraces/ctr_span.h index 94bd81e8b6b..ffbb4aa96b1 100644 --- a/lib/ctraces/include/ctraces/ctr_span.h +++ b/lib/ctraces/include/ctraces/ctr_span.h @@ -40,7 +40,7 @@ /* Status code */ #define CTRACE_SPAN_STATUS_CODE_UNSET 0 #define CTRACE_SPAN_STATUS_CODE_OK 1 -#define CTRACE_SPAN_STAUTS_CODE_ERROR 2 +#define CTRACE_SPAN_STATUS_CODE_ERROR 2 struct ctrace_span_status { int code; From 0c791cb678ff8bfb1661d9faf295de4e664a0e82 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Mon, 17 Mar 2025 13:07:56 -0600 Subject: [PATCH 2/2] in_opentelemetry: traces: fix handling of JSON status code Signed-off-by: Eduardo Silva --- .../in_opentelemetry/opentelemetry_traces.c | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/plugins/in_opentelemetry/opentelemetry_traces.c b/plugins/in_opentelemetry/opentelemetry_traces.c index 9d931843f9e..a9f5b2863a1 100644 --- a/plugins/in_opentelemetry/opentelemetry_traces.c +++ b/plugins/in_opentelemetry/opentelemetry_traces.c @@ -550,6 +550,7 @@ static int process_span_status(struct flb_opentelemetry *ctx, { int ret; int code = 0; + cfl_sds_t tmp = NULL; char *message = NULL; if (status->type != MSGPACK_OBJECT_MAP) { @@ -559,8 +560,28 @@ static int process_span_status(struct flb_opentelemetry *ctx, /* code */ ret = find_map_entry_by_key(&status->via.map, "code", 0, FLB_TRUE); - if (ret >= 0 && status->via.map.ptr[ret].val.type == MSGPACK_OBJECT_POSITIVE_INTEGER) { - code = status->via.map.ptr[ret].val.via.u64; + if (ret >= 0 && status->via.map.ptr[ret].val.type == MSGPACK_OBJECT_STR) { + tmp = cfl_sds_create_len(status->via.map.ptr[ret].val.via.str.ptr, + status->via.map.ptr[ret].val.via.str.size); + if (!tmp) { + return -1; + } + + if (strcasecmp(tmp, "UNSET") == 0) { + code = CTRACE_SPAN_STATUS_CODE_UNSET; + } + else if (strcasecmp(tmp, "OK") == 0) { + code = CTRACE_SPAN_STATUS_CODE_OK; + } + else if (strcasecmp(tmp, "ERROR") == 0) { + code = CTRACE_SPAN_STATUS_CODE_ERROR; + } + else { + flb_plg_error(ctx->ins, "status code value is invalid: %s", tmp); + cfl_sds_destroy(tmp); + return -1; + } + cfl_sds_destroy(tmp); } else { flb_plg_error(ctx->ins, "status code is missing");