From f49a5d6768539db208915960b2534347d76dacb7 Mon Sep 17 00:00:00 2001 From: Joao Grassi <5938087+joaopgrassi@users.noreply.github.com> Date: Fri, 27 Dec 2024 12:25:33 +0100 Subject: [PATCH 1/4] opentelemetrytracer: log the number of exported spans Signed-off-by: Joao Grassi <5938087+joaopgrassi@users.noreply.github.com> --- .../opentelemetry/grpc_trace_exporter.cc | 1 + .../opentelemetry/http_trace_exporter.cc | 2 ++ .../tracers/opentelemetry/trace_exporter.h | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/source/extensions/tracers/opentelemetry/grpc_trace_exporter.cc b/source/extensions/tracers/opentelemetry/grpc_trace_exporter.cc index bdc6be7ef734..b5b528a6b926 100644 --- a/source/extensions/tracers/opentelemetry/grpc_trace_exporter.cc +++ b/source/extensions/tracers/opentelemetry/grpc_trace_exporter.cc @@ -42,6 +42,7 @@ void OpenTelemetryGrpcTraceExporter::onFailure(Grpc::Status::GrpcStatus status, bool OpenTelemetryGrpcTraceExporter::log(const ExportTraceServiceRequest& request) { client_->send(service_method_, request, *this, Tracing::NullSpan::instance(), Http::AsyncClient::RequestOptions()); + OpenTelemetryTraceExporter::logExportedSpans(request); return true; } diff --git a/source/extensions/tracers/opentelemetry/http_trace_exporter.cc b/source/extensions/tracers/opentelemetry/http_trace_exporter.cc index 98a121a21ff4..0c866ec31275 100644 --- a/source/extensions/tracers/opentelemetry/http_trace_exporter.cc +++ b/source/extensions/tracers/opentelemetry/http_trace_exporter.cc @@ -70,6 +70,8 @@ bool OpenTelemetryHttpTraceExporter::log(const ExportTraceServiceRequest& reques Http::AsyncClient::Request* in_flight_request = thread_local_cluster->httpAsyncClient().send(std::move(message), *this, options); + OpenTelemetryTraceExporter::logExportedSpans(request); + if (in_flight_request == nullptr) { return false; } diff --git a/source/extensions/tracers/opentelemetry/trace_exporter.h b/source/extensions/tracers/opentelemetry/trace_exporter.h index 3bd7240b1a00..aa04c320af51 100644 --- a/source/extensions/tracers/opentelemetry/trace_exporter.h +++ b/source/extensions/tracers/opentelemetry/trace_exporter.h @@ -29,6 +29,24 @@ class OpenTelemetryTraceExporter : public Logger::Loggable * @return false When sending the request failed. */ virtual bool log(const ExportTraceServiceRequest& request) = 0; + + /** + * @brief Logs as debug the number of exported spans. + * + * @param request The protobuf-encoded OTLP trace request. + */ + void logExportedSpans(const ExportTraceServiceRequest& request) { + if (!ENVOY_LOG_COMP_LEVEL_FINE_GRAIN_IF(ENVOY_LOGGER(), debug)) { + return; + } + + if (request.resource_spans(0).has_resource()) { + if (request.resource_spans(0).scope_spans(0).has_scope()) { + ENVOY_LOG(debug, "Number of exported spans: {}", + request.resource_spans(0).scope_spans(0).spans_size()); + } + } + } }; using OpenTelemetryTraceExporterPtr = std::unique_ptr; From 089e322dd14d79e6b4fd8da510cdef650173e19f Mon Sep 17 00:00:00 2001 From: Joao Grassi <5938087+joaopgrassi@users.noreply.github.com> Date: Fri, 27 Dec 2024 12:30:00 +0100 Subject: [PATCH 2/4] Add changelog Signed-off-by: Joao Grassi <5938087+joaopgrassi@users.noreply.github.com> --- changelogs/current.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 9100f1369544..a88f11c96539 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -406,6 +406,9 @@ new_features: change: | Add the option to reduce the rate limit budget based on request/response contexts on stream done. See :ref:`apply_on_stream_done ` for more details. +- area: tracing + change: | + Added debug log containing the number of exported spans on the OpenTelemetry tracer. deprecated: - area: rbac From 49cad3592dd36253ae248d9568a4771610816f9d Mon Sep 17 00:00:00 2001 From: Joao Grassi <5938087+joaopgrassi@users.noreply.github.com> Date: Thu, 2 Jan 2025 17:14:18 +0100 Subject: [PATCH 3/4] Remove changelog Signed-off-by: Joao Grassi <5938087+joaopgrassi@users.noreply.github.com> --- changelogs/current.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/changelogs/current.yaml b/changelogs/current.yaml index a88f11c96539..9100f1369544 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -406,9 +406,6 @@ new_features: change: | Add the option to reduce the rate limit budget based on request/response contexts on stream done. See :ref:`apply_on_stream_done ` for more details. -- area: tracing - change: | - Added debug log containing the number of exported spans on the OpenTelemetry tracer. deprecated: - area: rbac From 00dfe765c0bec9651aeba56fa006fc58bbff4cbe Mon Sep 17 00:00:00 2001 From: Joao Grassi <5938087+joaopgrassi@users.noreply.github.com> Date: Fri, 3 Jan 2025 09:26:49 +0100 Subject: [PATCH 4/4] Remove debug log enabled check Signed-off-by: Joao Grassi <5938087+joaopgrassi@users.noreply.github.com> --- source/extensions/tracers/opentelemetry/trace_exporter.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/source/extensions/tracers/opentelemetry/trace_exporter.h b/source/extensions/tracers/opentelemetry/trace_exporter.h index aa04c320af51..f3b3a74cf411 100644 --- a/source/extensions/tracers/opentelemetry/trace_exporter.h +++ b/source/extensions/tracers/opentelemetry/trace_exporter.h @@ -36,10 +36,6 @@ class OpenTelemetryTraceExporter : public Logger::Loggable * @param request The protobuf-encoded OTLP trace request. */ void logExportedSpans(const ExportTraceServiceRequest& request) { - if (!ENVOY_LOG_COMP_LEVEL_FINE_GRAIN_IF(ENVOY_LOGGER(), debug)) { - return; - } - if (request.resource_spans(0).has_resource()) { if (request.resource_spans(0).scope_spans(0).has_scope()) { ENVOY_LOG(debug, "Number of exported spans: {}",