From: Pieter Lexis Date: Fri, 17 Oct 2025 11:49:07 +0000 (+0200) Subject: tests(dnsdist): Add OT Trace delayed PB test X-Git-Tag: rec-5.4.0-alpha1~179^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a9d0cec95d2971dd41067e54ac83b85173d85f4f;p=thirdparty%2Fpdns.git tests(dnsdist): Add OT Trace delayed PB test --- diff --git a/regression-tests.dnsdist/test_OpenTelemetryTracing.py b/regression-tests.dnsdist/test_OpenTelemetryTracing.py index 5738840f47..e309cd02ac 100644 --- a/regression-tests.dnsdist/test_OpenTelemetryTracing.py +++ b/regression-tests.dnsdist/test_OpenTelemetryTracing.py @@ -48,7 +48,7 @@ class DNSDistOpenTelemetryProtobufTest(test_Protobuf.DNSDistProtobufTest): class DNSDistOpenTelemetryProtobufBaseTest(DNSDistOpenTelemetryProtobufTest): - def doTest(self): + def doTest(self, wasDelayed=False): msg = self.sendQueryAndGetProtobuf() self.assertTrue(msg.HasField("openTelemetryTraceID")) @@ -109,18 +109,21 @@ class DNSDistOpenTelemetryProtobufBaseTest(DNSDistOpenTelemetryProtobufTest): msg_span_name = [ v["name"] for v in ot_data["resource_spans"][0]["scope_spans"][0]["spans"] ] - self.assertListEqual( - msg_span_name, - [ - "processUDPQuery", - "processQuery", - "applyRulesToQuery", - "selectBackendForOutgoingQuery", - "assignOutgoingUDPQueryToBackend", - "processResponse", - "applyRulesToResponse", - ], - ) + + funcs = [ + "processUDPQuery", + "processQuery", + "applyRulesToQuery", + "selectBackendForOutgoingQuery", + "assignOutgoingUDPQueryToBackend", + "processResponse", + "applyRulesToResponse", + ] + + if wasDelayed: + funcs.append("processResponseAfterRules") + + self.assertListEqual(msg_span_name, funcs) traceId = base64.b64encode(msg.openTelemetryTraceID).decode() for msg_span in ot_data["resource_spans"][0]["scope_spans"][0]["spans"]: @@ -189,6 +192,46 @@ addResponseAction(AllRule(), RemoteLogResponseAction(rl)) self.doTest() +class TestOpenTelemetryTracingBaseDelayYAML(DNSDistOpenTelemetryProtobufBaseTest): + _yaml_config_params = [ + "_testServerPort", + "_protobufServerPort", + ] + _yaml_config_template = """--- +logging: + open_telemetry_tracing: true + +backends: + - address: 127.0.0.1:%d + protocol: Do53 + +remote_logging: + protobuf_loggers: + - name: pblog + address: 127.0.0.1:%d + +query_rules: + - name: Enable tracing + selector: + type: All + action: + type: SetTrace + value: true + +response_rules: + - name: Do PB logging + selector: + type: All + action: + type: RemoteLog + logger_name: pblog + delay: true +""" + + def testBasic(self): + self.doTest(True) + + class DNSDistOpenTelemetryProtobufNoOTDataTest(DNSDistOpenTelemetryProtobufTest): def doTest(self): msg = self.sendQueryAndGetProtobuf()