On 20.04.2018 23:04, Simon Kelley wrote:
1) Conditional compilation.
HAVE_METRICS has been removed.

2) In config.h, you document HAVE_UBUS, but don't include it in the
features string, whilst you include HAVE_METRIC in the features string,
but don't document it.
Has been added.

3) The documentation for the GetMetrics DBus method is almost
non-existent. The documentation for the UBus interface is entirely
non-existent.
I asked the original author to write some documentation.

4) The list of metrics is in metrics.h and the list of their names is in
metrics.c and the two have to be kept in sync. Can this be done some way
that at least keeps the two in the same source file, and preferably
allows the addition of a new metric by adding one line?
I don't have any idea how to achieve this. I added a hint to the enum.

5) What is the motivation for the metrics you're collecting? Is that
actually useful information? What uses it?
Sometimes there are clients that behave in a strange way. Like acquiring a same lease every second and ignoring the reply. Metrics help to debug these kind of problems. If you observe a specific message counter to increase rapidly (like NAKs), then something might be wrong in your network.

You get a graph like this:
https://grafana.ffhb.de/d/YYHhL-Wmz/dhcp?orgId=1&from=1524212492387&to=1524253637769

6)
Some files have

METRICS_INCREMENT(<metric>);

and some have

#ifdef HAVE_METRICS
      metrics[<metric>]++;
#endif

Any good reason for that?
METRICS_INCREMENT is now used everwhere.

7) Apart from reading metrics, there seems to be code to broadcast some
events over UBus. But no justification for doing this and no
documentation of what is done.

8) The convention in dnsmasq is that global data structures are part of
the "daemon" structure, so

metrics[<metric>]

should be

daemon->metrics[metric]

and the array should be allocated and initialised appropriately.
Has been changed

9) Dnsmasq already collects some metrics about DNS forwarder operation,
which are dumped to the log when the process receives SIGUSR1. Should
this new metrics system embrace and extend the existing one, rather than
ignoring it?
I removed the old metric variables and added new fields to the metrics struct.
ubus and dbus now also return the already existing metrics.

Regards
Julian Kornberger

_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss

Reply via email to