From 532932659120a315896f26841dba1bb8a6002448 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Tue, 15 Jul 2025 09:06:12 -0700 Subject: [PATCH] batch tracing spans instead of sending them all individually --- service/OneService.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/service/OneService.cpp b/service/OneService.cpp index fb4304d3e..69c517054 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -10,6 +10,7 @@ * of this software will be governed by version 2.0 of the Apache License. */ /****/ +#define ZT_OPENTELEMETRY_ENABLED 1 #include #include @@ -60,6 +61,7 @@ #include #ifdef ZT_OPENTELEMETRY_ENABLED +#include "opentelemetry/exporters/memory/in_memory_data.h" #include "opentelemetry/exporters/otlp/otlp_grpc_exporter.h" #include "opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter.h" #include "opentelemetry/exporters/otlp/otlp_grpc_metric_exporter.h" @@ -68,10 +70,11 @@ #include "opentelemetry/sdk/metrics/metric_reader.h" #include "opentelemetry/sdk/metrics/provider.h" #include "opentelemetry/sdk/resource/resource.h" +#include "opentelemetry/sdk/trace/batch_span_processor.h" +#include "opentelemetry/sdk/trace/batch_span_processor_options.h" #include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/provider.h" #include "opentelemetry/sdk/trace/samplers/trace_id_ratio.h" -#include "opentelemetry/sdk/trace/simple_processor.h" #include "opentelemetry/sdk/trace/tracer.h" #include "opentelemetry/sdk/trace/tracer_context.h" #include "opentelemetry/sdk/trace/tracer_provider.h" @@ -1065,7 +1068,11 @@ class OneServiceImpl : public OneService { opentelemetry::v1::exporter::otlp::OtlpGrpcExporterOptions opts; opts.endpoint = _exporterEndpoint + "/v1/traces"; auto exporter = std::unique_ptr(new opentelemetry::exporter::otlp::OtlpGrpcExporter(opts)); - auto processor = std::unique_ptr(new sdktrace::SimpleSpanProcessor(std::move(exporter))); + + sdktrace::BatchSpanProcessorOptions batch_options {}; + batch_options.schedule_delay_millis = std::chrono::milliseconds(5000); // 5 seconds + + auto processor = std::unique_ptr(new sdktrace::BatchSpanProcessor(std::move(exporter), batch_options)); auto processors = std::vector >(); processors.push_back(std::move(processor)); char buf[256];