From: Pieter Lexis Date: Fri, 31 Oct 2025 12:24:10 +0000 (+0100) Subject: feat(dnsdist): add OT span benchmarks X-Git-Tag: rec-5.4.0-beta1~51^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e44ab6b18f392ff57810789d579c41724e4d543e;p=thirdparty%2Fpdns.git feat(dnsdist): add OT span benchmarks --- diff --git a/pdns/dnsdistdist/bench-dnsdist-opentelemetry_cc.cc b/pdns/dnsdistdist/bench-dnsdist-opentelemetry_cc.cc index ccbf2a175b..b7f11df551 100644 --- a/pdns/dnsdistdist/bench-dnsdist-opentelemetry_cc.cc +++ b/pdns/dnsdistdist/bench-dnsdist-opentelemetry_cc.cc @@ -49,11 +49,21 @@ TEST_CASE("OpenTelemetry-base") }; } +TEST_CASE("OpenTelemetry-addSpanThroughCloser") +{ + auto tracer = pdns::trace::dnsdist::Tracer::getTracer(); + auto spanID = pdns::trace::SpanID::getRandomSpanID(); + + BENCHMARK("openspan") + { + return tracer->openSpan("activated", spanID); + }; +} + TEST_CASE("OpenTelemetry-spaninfo") { auto tracer = pdns::trace::dnsdist::Tracer::getTracer(); // Ensures span attributes are actually stored - tracer->activate(); auto rootSpanID = tracer->openSpan("mySpan").getSpanID(); auto stringvalue = pdns::trace::AnyValue{"hello"}; auto intvalue = pdns::trace::AnyValue{43854}; @@ -141,32 +151,7 @@ TEST_CASE("OpenTelemetry-getTracesData") tracer->openSpan("foo" + std::to_string(i)); } - BENCHMARK("Tracer with 41 pre-activation spans") - { - return tracer->getTracesData(); - }; - - tracer = pdns::trace::dnsdist::Tracer::getTracer(); - tracer->activate(); - for (auto i = 0; i < 40; i++) { - tracer->openSpan("foo" + std::to_string(i)); - } - - BENCHMARK("Tracer with 41 post-activation spans") - { - return tracer->getTracesData(); - }; - - tracer = pdns::trace::dnsdist::Tracer::getTracer(); - for (auto i = 0; i < 40; i++) { - tracer->openSpan("foo" + std::to_string(i)); - } - tracer->activate(); - for (auto i = 0; i < 40; i++) { - tracer->openSpan("foo" + std::to_string(i)); - } - - BENCHMARK("Tracer with 41 pre-activation spans and 41 post-activation spans") + BENCHMARK("Tracer with 41 spans") { return tracer->getTracesData(); };