BIND 10 #2157: Create an interface to pass statistics counters in Auth module
BIND 10 Development
do-not-reply at isc.org
Wed Oct 31 04:25:24 UTC 2012
#2157: Create an interface to pass statistics counters in Auth module
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
y-aharen | Status: reviewing
Type: | Milestone:
enhancement | Sprint-20121106
Priority: | Resolution:
medium | Sensitive: 0
Component: | Sub-Project: DNS
b10-auth | Estimated Difficulty: 8
Keywords: | Total Hours: 0
Defect Severity: N/A |
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
Replying to [comment:27 y-aharen]:
> > I'm sorry for being stubborn, but I'm still not convinced. This time
> > I took a little bit deeper look at the branch and the stats
> > implementation, but I don't understand what's the fundamental design
> > limitation of Stats that requires the hardcoded specific RR types in
> > auth.spec. For example, can't it be a named set?
> I think the structure of the counters should be defined in the spec
file,
> except for zones definition, for differential updates of statistics
> (scheduled to be implemented). If no RR types are given, Stats can't
> distinguish the item exists (and just not incremented at the time) or
not.
I don't see why this is a problem with named sets.
The stats daemon would initially begin with an empty map.
Auth will then send (or respond to a request) first update like this:
"NS": 10
"AAAA": 42
then the stats daemon's set will become
{"NS": 10, "AAAA": 42}
Next time auth will send another update like this:
"SOA": 5
"AAAA": 2
then the stats daemon's set will become
{"NS": 10, "AAAA": 44, "SOA": 5}
and so on.
> Users will be happy if they can get a list of items from 'Stats show'.
I'm not sure what this means, but 'Stats show' would still show items
that have positive counter values. The user will naturally assume the
counter value for the rest is 0. And I'd rather see such a compact
output (besides, that's how BIND 9 currently works for per
rrtype/opcode statistics.) than having many 0 value items.
> There is no way to get defined RR types and the other per-code counters
> for Stats except in the spec file.
But, in any case, as I suggested in the call, as a practical way
forward I'd like to propose leaving how to represent per-type counters
open, and (although I'd like to revisit the way of defining others
too) keep the current approach for the others and complete this task.
If you agree on that, we can move on; if you still think we should
include the per RRtype statistics in the way it's implemented in the
branch, I think we need to discuss it in the list.
Finally, some initial comments at this point:
'''general'''
- Isn't it possible to unify the definition of the counter information
(things like QR_REQUEST_IPV4, QR_OPCODE_QUERY, etc), e.g., in some
separate file and auto generate others? Right now, we have the same
kind of information at least in 3 different places: auth.spec,
statistics_items.h, and the man page. Even excluding RR types, that
can easily cause maintenance problems.
- I'd like to avoid relying on a magic keyword like `_SERVER_`. In
fact, there could even a zone of that name.
- if possible I'd like to make one clarification before merging this
branch. That is, the BIND 9 version of statistics counters are
confusing in that the sum of any of QRYxxx does not match the number
of incoming queries. I'd clarify the counters so that at least the
sume of some subset of QRYxxx counters equals to QR_OPCODE_QUERY.
'''statistics_items.h'''
- We shouldn't use namespace {} or define things here. Only
declaration is okay. See #2358 for these.
--
Ticket URL: <http://bind10.isc.org/ticket/2157#comment:28>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list