mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 10:18:25 +00:00
Add ClearMetrics Dbus method.
This commit is contained in:
@@ -257,6 +257,10 @@ GetServerMetrics
|
|||||||
|
|
||||||
Returns per-DNS-server metrics.
|
Returns per-DNS-server metrics.
|
||||||
|
|
||||||
|
ClearMetrics
|
||||||
|
------------
|
||||||
|
|
||||||
|
Clear call metric counters, global and per-server.
|
||||||
|
|
||||||
2. SIGNALS
|
2. SIGNALS
|
||||||
----------
|
----------
|
||||||
|
|||||||
@@ -94,6 +94,8 @@ const char* introspection_xml_template =
|
|||||||
" <method name=\"GetServerMetrics\">\n"
|
" <method name=\"GetServerMetrics\">\n"
|
||||||
" <arg name=\"metrics\" direction=\"out\" type=\"a{ss}\"/>\n"
|
" <arg name=\"metrics\" direction=\"out\" type=\"a{ss}\"/>\n"
|
||||||
" </method>\n"
|
" </method>\n"
|
||||||
|
" <method name=\"ClearMetrics\">\n"
|
||||||
|
" </method>\n"
|
||||||
" </interface>\n"
|
" </interface>\n"
|
||||||
"</node>\n";
|
"</node>\n";
|
||||||
|
|
||||||
@@ -708,7 +710,7 @@ static DBusMessage *dbus_get_server_metrics(DBusMessage* message)
|
|||||||
add_dict_int(&dict_array, "failed_queries", serv->failed_queries);
|
add_dict_int(&dict_array, "failed_queries", serv->failed_queries);
|
||||||
add_dict_int(&dict_array, "nxdomain", serv->nxdomain_replies);
|
add_dict_int(&dict_array, "nxdomain", serv->nxdomain_replies);
|
||||||
add_dict_int(&dict_array, "retries", serv->retrys);
|
add_dict_int(&dict_array, "retries", serv->retrys);
|
||||||
add_dict_int(&dict_array, "latency", sigma_latency/count_latency;
|
add_dict_int(&dict_array, "latency", sigma_latency/count_latency);
|
||||||
|
|
||||||
dbus_message_iter_close_container(&server_array, &dict_array);
|
dbus_message_iter_close_container(&server_array, &dict_array);
|
||||||
}
|
}
|
||||||
@@ -797,6 +799,10 @@ DBusHandlerResult message_handler(DBusConnection *connection,
|
|||||||
{
|
{
|
||||||
reply = dbus_get_server_metrics(message);
|
reply = dbus_get_server_metrics(message);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(method, "ClearMetrics") == 0)
|
||||||
|
{
|
||||||
|
clear_metrics();
|
||||||
|
}
|
||||||
else if (strcmp(method, "ClearCache") == 0)
|
else if (strcmp(method, "ClearCache") == 0)
|
||||||
clear_cache = 1;
|
clear_cache = 1;
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -44,3 +44,23 @@ const char * metric_names[] = {
|
|||||||
const char* get_metric_name(int i) {
|
const char* get_metric_name(int i) {
|
||||||
return metric_names[i];
|
return metric_names[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear_metrics(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
struct server *serv;
|
||||||
|
|
||||||
|
for (i = 0; i < __METRIC_MAX; i++)
|
||||||
|
daemon->metrics[i] = 0;
|
||||||
|
|
||||||
|
for (serv = daemon->servers; serv; serv = serv->next)
|
||||||
|
{
|
||||||
|
serv->queries = 0;
|
||||||
|
serv->failed_queries = 0;
|
||||||
|
serv->failed_queries = 0;
|
||||||
|
serv->retrys = 0;
|
||||||
|
serv->nxdomain_replies = 0;
|
||||||
|
serv->query_latency = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,3 +43,4 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const char* get_metric_name(int);
|
const char* get_metric_name(int);
|
||||||
|
void clear_metrics(void);
|
||||||
|
|||||||
Reference in New Issue
Block a user