[bind10-dev] Ideas about statistics
Shane Kerr
shane at isc.org
Wed May 19 06:20:10 UTC 2010
Naoki,
Thank you for this. Some questions inline below:
On Thu, 2010-05-13 at 21:55 +0900, Naoki Kambe wrote:
> Hi All,
>
> I report my ideas about statistics.
>
> Our short-term goals:
> - Fix protocol between stats daemon and other components
> - Code prototypes which work with other components
>
> Life cycle of stats daemon:
> 1. Boss started stats daemon.
> 2. Stats daemon broadcasts "stats daemon is ready for gathering
> statistics data".
I think we can skip this step. My reason is that if a process starts
after the stats daemon, it will miss this broadcast. We need to be able
to handle that situation - an administrator may start a module long
after the system has booted, for example.
I think a better solution would be that when a module is running that
has statistics, it sends statistics on the stats channel no matter what.
If something is listening then good, otherwise they just get dropped.
> 3. Other components send their statistics data to stats channel
> periodically.
> 4. Stats daemon gathers statistics data and aggregates it.
> 5. When a user invokes statistics-publish command via bindctl,
> stats daemon reports formatted statistics data via bindctl.
> 6. If bind10 is shutting down, stats is killed by Boss.
>
> Statistics items (for initial version):
>
> * Output items which stats daemon pushes to bindctl
>
> - Local name
> - Boot time
> - Reported time
> - Process id
> - Incoming Queries (TCP)
> - Incoming Queries (UDP)
>
> * Input items which stats daemon is gathering from other components
> (initially only from Boss and Auth)
>
> from Boss to stats
> - Version number
> - Process id
> - Boot time
> - localname
>
> from Auth to stats
> - Version number
> - Process id
> - Incoming Queries (TCP)
> - Incoming Queries (UDP)
>
> Example of output data format
>
> * XML format:
> <isc version="1.0">
> <bind10>
> <statistics>
> <server>
> <localname>4bea7903_4 at host</localname>
> <boot-time>2010-05-13T05:19:43Z</boot-time>
> <reported-time>2010-05-13T05:44:41Z</reported-time>
> <process-id>999</process-id>
> <queries-in>
> <name>tcp</name>
> <counter>8888</counter>
> <name>udp</name>
> <counter>9999</counter>
> </queries-in>
> </server>
> </statistics>
> </bind>
> </isc>
>
> Example of bindctl input sample:
>
> >> Stats print_stats
> ++ BIND 10 Statistics Report ++
> Local name: 4bea7903_4 at host
> Boot time: 2010-05-13T05:19:43Z
> Reported time: 2010-05-13T05:44:41Z
> Process id: 999
> Incoming Queries (TCP): 8888
> Incoming Queries (UDP): 9999
> ++ BIND 10 Statistics Report ++
>
> * "print_stats" command just prints statistics data.
>
> >> Stats clear_stats
> stats cleared.
>
> * "clear_stats" command is useful for resetting counts.
Okay... we probably want some sort of "Are you sure?" prompt for this.
I'm not sure of the best way to do this... probably just to hard code
this into the bindctl for now? Eventually we may want a "dangerous" flag
for certain operations. :)
> >> Stats print_stats
> ++ BIND 10 Statistics Report ++
> Local name: 4bea7903_4 at host
> Boot time: 2010-05-13T05:19:43Z
> Reported time: 2010-05-13T05:47:12Z
> Process id: 999
> Incoming Queries: 0
> Incoming Queries (TCP): 0
> ^
> Incoming Queries (UDP): 0
> ^
> ++ BIND 10 Statistics Report ++
>
> * It shows that counts are reset.
I think this looks like a very good start!
Do you think it is possible to finish this before the next release
(which is only 2 weeks away)? If not, we should define what exactly we
are going to be including in that release (perhaps the XML definition
only?).
Thanks,
--
Shane
More information about the bind10-dev
mailing list