[bind10-dev] How to implement query counters in auth module?
Jelte Jansen
jelte at isc.org
Wed Sep 15 10:23:44 UTC 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I took a look at the commit you made yesterday (r2921), and as you already
commented in the source, that is an extremely inefficient way to do the
counting; it constructs a msgq message, sends it, and waits for a response from
the stats module.
AFAICT, this would happen on every query...
If we do go for a 'push' approach similar to this I'd much rather see it
implemented as something that sends the stats out periodically (like once every
X seconds, or even minutes), optionally with a command on the command channel
that tells it to send it out right away. Perhaps asio timers can help out here?
Jelte
On 09/15/2010 06:07 AM, Naoki Kambe wrote:
> I committed an example code to the auth module yesterday. Please see also
> r2921 in branches/trac191-rebased/src/bin/auth/.
>
> Naoki Kambe
>
> From: Naoki Kambe <kambe at jprs.co.jp>
> Subject: [bind10-dev] How to implement query counters in auth module?
> Date: Mon, 13 Sep 2010 21:36:56 +0900 (JST)
>
>> Jinmei-san, Evan-san,
>>
>> This is a question related to trac #191. We need to add some
>> implements into the auth module in order that the stats module works
>> along with the auth module. Because the auth module doesn't either
>> seem to have query counters nor throw counters to the stats module. So
>> the stats module can't collect query counters from the auth module in
>> current source files. I want to know how to implement that. Can you
>> give me any suggestions? I think I may add following implements into
>> auth_srv.cc and/or some source files in the auth module:
>>
>> Implement:
>> - Received Query counters
>> + They are ones over UDP and TCP.
>> + The variables of counters are shared with several auth
>> processes(responders).
>> - Throwing the counts toward the stats module periodically
>>
>> An example code: # This may be wrong or inefficient.
>> // a query counter over UDP
>> static int udp_queries = 0
>> // receives queries and increase counters
>> ...
>> // construct command
>> static string udp_queries_str;
>> sprintf(udp_queries_str, "%d", udp_queries);
>> static string stats_command = "{ \"command\": ["
>> + " \"increase\","
>> + " { \"stats_data\": {"
>> + " \"auth.queries.udp\": " + udp_queries_str
>> + " }"
>> + " }"
>> + " ]"
>> + "}";
>> // throw the count
>> stats_session->group_sendmsg(stats_command, "Stats", "*", "*");
>> // reset counter and return to init
>> udp_queries = 0;
>>
>> ... I think the case of TCP is almost same above.
>>
>> Please refer to the wikipage for details:
>> http://bind10.isc.org/wiki/StatsModule
>>
>> Thanks,
>>
>> Naoki Kambe
>> _______________________________________________
>> bind10-dev mailing list
>> bind10-dev at lists.isc.org
>> https://lists.isc.org/mailman/listinfo/bind10-dev
>>
> _______________________________________________
> bind10-dev mailing list
> bind10-dev at lists.isc.org
> https://lists.isc.org/mailman/listinfo/bind10-dev
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkyQnrAACgkQ4nZCKsdOncXMhgCgvORc8KnAjy8xGXz31UPCUT2i
btoAnj8xclb4O7hqYWjg61MmCc/mB0FK
=yQV+
-----END PGP SIGNATURE-----
More information about the bind10-dev
mailing list