From 781fd8fdc68c8531a37dc370ee6700f3871ee0c0 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Tue, 26 Mar 2019 11:10:57 +0100 Subject: [PATCH] dnsdist: Display backend and frontend TCP metrics in showTCPStats() --- pdns/dnsdist-lua-inspection.cc | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/pdns/dnsdist-lua-inspection.cc b/pdns/dnsdist-lua-inspection.cc index 554afa0d6c..92fb413047 100644 --- a/pdns/dnsdist-lua-inspection.cc +++ b/pdns/dnsdist-lua-inspection.cc @@ -552,10 +552,38 @@ void setupLuaInspection() g_lua.writeFunction("showTCPStats", [] { setLuaNoSideEffect(); + ostringstream ret; boost::format fmt("%-10d %-10d %-10d %-10d\n"); - g_outputBuffer += (fmt % "Clients" % "MaxClients" % "Queued" % "MaxQueued").str(); - g_outputBuffer += (fmt % g_tcpclientthreads->getThreadsCount() % g_maxTCPClientThreads % g_tcpclientthreads->getQueuedCount() % g_maxTCPQueuedConnections).str(); - g_outputBuffer += "Query distribution mode is: " + std::string(g_useTCPSinglePipe ? "single queue" : "per-thread queues") + "\n"; + ret << (fmt % "Clients" % "MaxClients" % "Queued" % "MaxQueued") << endl; + ret << (fmt % g_tcpclientthreads->getThreadsCount() % g_maxTCPClientThreads % g_tcpclientthreads->getQueuedCount() % g_maxTCPQueuedConnections) << endl; + ret <local.toStringWithPort() % f->tcpDiedReadingQuery % f->tcpDiedSendingResponse % f->tcpGaveUp % f->tcpClientTimeouts % f->tcpDownstreamTimeouts) << endl; + ++counter; + } + ret << endl; + + ret << "Backends:" << endl; + fmt = boost::format("%-3d %-20.20s %-20.20s %-25d %-25d %-25d %-25d %-25d"); + ret << (fmt % "#" % "Name" % "Address" % "Died sending query" % "Died reading response" % "Gave up" % "Read timeouts" % "Write timeouts" ) << endl; + + auto states = g_dstates.getLocal(); + counter = 0; + for(const auto& s : *states) { + ret << (fmt % counter % s->name % s->remote.toStringWithPort() % s->tcpDiedSendingQuery % s->tcpDiedReadingResponse % s->tcpGaveUp % s->tcpReadTimeouts % s->tcpWriteTimeouts) << endl; + ++counter; + } + + g_outputBuffer=ret.str(); }); g_lua.writeFunction("dumpStats", [] { -- 2.47.2