{ "over-capacity-drops", 0 },
{ "too-old-drops", 0 },
{ "uptime", uptimeOfProcess()},
- { "qa-latency", 1234},
+ { "qa-latency", (int)g_stats.latency},
{ "something", Json::array { 1, 2, 3 } },
};
-
+ cout<<g_stats.latency<<endl;
resp.headers["Content-Type"] = "application/json";
resp.body=my_json.dump();
}
status = "DOWN";
else
status = (a->upStatus ? "up" : "down");
-
+ string pools;
+ for(const auto& p: a->pools)
+ pools+=p+" ";
Json::object server{
{"id", num++},
{"address", a->remote.toStringWithPort()},
{"state", status},
- {"qps", (int)a->queryLoad},
- {"qpsLimit", (int)a->qps.getRate()},
- {"outstanding", (int)a->outstanding},
- {"weight", (int)a->weight},
- {"order", (int)a->order},
- {"queries", (int)a->queries}};
+ {"qps", (int)a->queryLoad},
+ {"qpsLimit", (int)a->qps.getRate()},
+ {"outstanding", (int)a->outstanding},
+ {"reuseds", (int)a->reuseds},
+ {"weight", (int)a->weight},
+ {"order", (int)a->order},
+ {"pools", pools},
+ {"queries", (int)a->queries}};
servers.push_back(server);
}
+
+ Json::array rules;
+ auto localRules = g_rulactions.getCopy();
+ num=0;
+ for(const auto& a : localRules) {
+ Json::object rule{
+ {"id", num++},
+ {"matches", (int)a.first->d_matches},
+ {"rule", a.first->toString()},
+ {"action", a.second->toString()} };
+ rules.push_back(rule);
+ }
+
Json my_json = Json::object {
{ "daemon_type", "dnsdist" },
{ "version", "0.1"},
- { "servers", servers}
+ { "servers", servers},
+ { "rules", rules},
};
resp.headers["Content-Type"] = "application/json";
resp.body=my_json.dump();
<script src="local.js"></script>
<body>
-<a href="https://github.com/ahuPowerDNS/recuweb"><img style="position: absolute; top: 0;
+<a href="https://github.com/ahuPowerDNS/pdns"><img style="position: absolute; top: 0;
right: 0; border: 0;"
src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
alt="Fork me on GitHub"></a>
</tr></table>
<p>
Version: <span id="version"></span>, uptime: <span id="uptime"></span>, Number of queries: <span id="questions"></span> (<span id="qps"></span> qps)<br/>
-Over-capacity-drops: <span id="over-capacity-drops"></span>, too old: <span id="too-old"></span><br/>
-Packet cache hitrate: <span id="phitrate"></span>%,
Average response time: <span id="latency"></span> ms, CPU Usage: <span id="cpu"></span>% <br/>
</p>
<table width="100%" cellpadding="20">
<td>
<table cellpadding="15">
<tr>
- <td><form>Public filtered: <input id="filter1" type="checkbox"></input></form></td>
- <td><form>Public filtered: <input id="filter2" type="checkbox"></input></form></td>
- </tr>
- <tr>
-
<td><div id="queryring"></div> </td>
<td><div id="servfailqueryring"></div></td>
</tr>
$.ajax({ url: '/servers/localhost', type: 'GET', dataType: 'json',
success: function(data) {
$("#version").text("PowerDNS "+data["daemon_type"]+" "+data["version"]);
- var bouw="<table><tr align=right><th>#</th><th align=left>Address</th><th>Status</th><th>Queries</th><th>QPS</th><th>Outstanding</th><th>Weight</th><th>Order</th></tr>";
+ var bouw="<table><tr align=right><th>#</th><th align=left>Address</th><th>Status</th><th>Queries</th><th>Drops</th><th>QPS</th><th>Out</th><th>Weight</th><th>Order</th><th align=left>Pools</th></tr>";
$.each(data["servers"], function(a,b) {
bouw = bouw + ("<tr align=right><td>"+b["id"]+"</td><td align=left>"+b["address"]+"</td><td>"+b["state"]+"</td>");
- bouw = bouw + ("<td>"+b["queries"]+"</td><td>"+b["qps"]+"</td><td>"+b["outstanding"]+"</td>");
- bouw = bouw + ("<td>"+b["weight"]+"</td><td>"+b["order"]+"</td></tr>");
+ bouw = bouw + ("<td>"+b["queries"]+"</td><td>"+b["reuseds"]+"</td><td>"+b["qps"]+"</td><td>"+b["outstanding"]+"</td>");
+ bouw = bouw + ("<td>"+b["weight"]+"</td><td>"+b["order"]+"</td><td align=left>"+b["pools"]+"</td></tr>");
});
bouw = bouw + "</table>";
$("#queryring").html(bouw);
+
+ bouw="<table><tr align=left><th>#</th><th align=left>Rule</th><th>Action</th><th>Matches</th></tr>";
+ $.each(data["rules"], function(a,b) {
+ bouw = bouw + ("<tr align=left><td>"+b["id"]+"</td><td align=left>"+b["rule"]+"</td><td>"+b["action"]+"</td>");
+ bouw = bouw + ("<td>"+b["matches"]+"</td></tr>");
+ });
+ bouw = bouw + "</table>";
+ $("#remotering").html(bouw);
+
}
});