pdns::ProtoZero::Message minimalMsg{pbBuf};
minimalMsg.setType(pdns::ProtoZero::Message::MessageType::DNSQueryType);
minimalMsg.setOpenTelemetryData(OTData);
+ minimalMsg.setOpenTelemetryTraceID(d_OTTracer->getTraceID());
for (auto const& msg_logger : ottraceLoggers) {
msg_logger->queueData(pbBuf);
}
def doTest(
self,
hasProcessResponseAfterRules=False,
+ hasRemoteLogResponseAction=True,
useTCP=False,
traceID="",
spanID="",
traces_data.ParseFromString(msg.openTelemetryData)
ot_data = google.protobuf.json_format.MessageToDict(traces_data, preserving_proto_field_name=True)
- self.checkOTData(ot_data, hasProcessResponseAfterRules, useTCP, extraFunctions=extraFunctions)
+ self.checkOTData(
+ ot_data,
+ useTCP=useTCP,
+ extraFunctions=extraFunctions,
+ hasRemoteLogResponseAction=hasRemoteLogResponseAction,
+ hasProcessResponseAfterRules=hasProcessResponseAfterRules,
+ )
traceId = base64.b64encode(msg.openTelemetryTraceID).decode()
for msg_span in ot_data["resource_spans"][0]["scope_spans"][0]["spans"]:
self.doTest()
+class DNSDistOpenTelemetryProtobufBaseLoggersInActionYAML(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
+ remote_loggers:
+ - pblog
+"""
+
+ def testBasic(self):
+ self.doTest(hasRemoteLogResponseAction=False, hasProcessResponseAfterRules=True)
+
+ def testTCP(self):
+ self.doTest(
+ useTCP=True,
+ hasRemoteLogResponseAction=False,
+ hasProcessResponseAfterRules=True,
+ extraFunctions={
+ "createTCPQuery",
+ "queueResponse",
+ "TCPConnectionToBackend::handleResponse",
+ "getDownstreamConnection",
+ "TCPConnectionToBackend::sendQuery",
+ "handleResponse",
+ "prepareQueryForSending",
+ "TCPConnectionToBackend::queueQuery",
+ },
+ )
+
+
class TestOpenTelemetryTracingBaseYAMLIncludedRemoteLoggerDropped(DNSDistOpenTelemetryProtobufTest):
_yaml_config_params = [
"_testServerPort",