Lines Matching defs:stats
1 /* $NetBSD: stats.c,v 1.10 2025/01/26 16:25:25 christos Exp $ */
24 #include <isc/stats.h>
30 #include <dns/stats.h>
141 dns_stats_attach(dns_stats_t *stats, dns_stats_t **statsp) {
142 REQUIRE(DNS_STATS_VALID(stats));
145 isc_refcount_increment(&stats->references);
147 *statsp = stats;
152 dns_stats_t *stats;
156 stats = *statsp;
159 if (isc_refcount_decrement(&stats->references) == 1) {
160 isc_refcount_destroy(&stats->references);
161 isc_stats_detach(&stats->counters);
162 isc_mem_putanddetach(&stats->mctx, stats, sizeof(*stats));
172 dns_stats_t *stats = isc_mem_get(mctx, sizeof(*stats));
174 stats->counters = NULL;
175 isc_refcount_init(&stats->references, 1);
177 isc_stats_create(mctx, &stats->counters, ncounters);
179 stats->magic = DNS_STATS_MAGIC;
180 stats->type = type;
181 stats->mctx = NULL;
182 isc_mem_attach(mctx, &stats->mctx);
183 *statsp = stats;
244 dns_generalstats_increment(dns_stats_t *stats, isc_statscounter_t counter) {
245 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_general);
247 isc_stats_increment(stats->counters, counter);
259 dns_rdatatypestats_increment(dns_stats_t *stats, dns_rdatatype_t type) {
262 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_rdtype);
265 isc_stats_increment(stats->counters, counter);
269 update_rdatasetstats(dns_stats_t *stats, dns_rdatastatstype_t rrsettype,
312 isc_stats_increment(stats->counters, counter);
314 isc_stats_decrement(stats->counters, counter);
319 dns_rdatasetstats_increment(dns_stats_t *stats,
321 REQUIRE(DNS_STATS_VALID(stats) &&
322 stats->type == dns_statstype_rdataset);
324 update_rdatasetstats(stats, rrsettype, true);
328 dns_rdatasetstats_decrement(dns_stats_t *stats,
330 REQUIRE(DNS_STATS_VALID(stats) &&
331 stats->type == dns_statstype_rdataset);
333 update_rdatasetstats(stats, rrsettype, false);
337 dns_opcodestats_increment(dns_stats_t *stats, dns_opcode_t code) {
338 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_opcode);
340 isc_stats_increment(stats->counters, (isc_statscounter_t)code);
344 dns_rcodestats_increment(dns_stats_t *stats, dns_rcode_t code) {
345 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_rcode);
348 isc_stats_increment(stats->counters, (isc_statscounter_t)code);
353 dns_dnssecsignstats_increment(dns_stats_t *stats, dns_keytag_t id, uint8_t alg,
357 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_dnssec);
359 int num_keys = isc_stats_ncounters(stats->counters) /
368 uint32_t counter = isc_stats_get_counter(stats->counters, idx);
371 isc_stats_increment(stats->counters, (idx + operation));
379 uint32_t counter = isc_stats_get_counter(stats->counters, idx);
381 isc_stats_set(stats->counters, kval, idx);
382 isc_stats_increment(stats->counters, (idx + operation));
387 /* No room, grow stats storage. */
388 isc_stats_resize(&stats->counters,
393 isc_stats_set(stats->counters, kval, nidx);
394 isc_stats_set(stats->counters, 0, (nidx + dns_dnssecsignstats_sign));
395 isc_stats_set(stats->counters, 0, (nidx + dns_dnssecsignstats_refresh));
398 isc_stats_increment(stats->counters, (nidx + operation));
402 dns_dnssecsignstats_clear(dns_stats_t *stats, dns_keytag_t id, uint8_t alg) {
405 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_dnssec);
407 int num_keys = isc_stats_ncounters(stats->counters) /
416 uint32_t counter = isc_stats_get_counter(stats->counters, idx);
419 isc_stats_set(stats->counters, 0, idx);
420 isc_stats_set(stats->counters, 0,
422 isc_stats_set(stats->counters, 0,
433 dns_generalstats_dump(dns_stats_t *stats, dns_generalstats_dumper_t dump_fn,
435 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_general);
437 isc_stats_dump(stats->counters, (isc_stats_dumper_t)dump_fn, arg,
465 dns_rdatatypestats_dump(dns_stats_t *stats, dns_rdatatypestats_dumper_t dump_fn,
468 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_rdtype);
472 isc_stats_dump(stats->counters, rdatatype_dumpcb, &arg, options);
516 dns_rdatasetstats_dump(dns_stats_t *stats, dns_rdatatypestats_dumper_t dump_fn,
520 REQUIRE(DNS_STATS_VALID(stats) &&
521 stats->type == dns_statstype_rdataset);
525 isc_stats_dump(stats->counters, rdataset_dumpcb, &arg, options);
536 dnssec_statsdump(isc_stats_t *stats, dnssecsignstats_type_t operation,
540 num_keys = isc_stats_ncounters(stats) / dnssecsign_block_size;
545 kval = isc_stats_get_counter(stats, idx);
550 val = isc_stats_get_counter(stats, (idx + operation));
560 dns_dnssecsignstats_dump(dns_stats_t *stats, dnssecsignstats_type_t operation,
565 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_dnssec);
570 dnssec_statsdump(stats->counters, operation, dnssec_dumpcb, &arg,
589 dns_opcodestats_dump(dns_stats_t *stats, dns_opcodestats_dumper_t dump_fn,
593 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_opcode);
597 isc_stats_dump(stats->counters, opcode_dumpcb, &arg, options);
601 dns_rcodestats_dump(dns_stats_t *stats, dns_rcodestats_dumper_t dump_fn,
605 REQUIRE(DNS_STATS_VALID(stats) && stats->type == dns_statstype_rcode);
609 isc_stats_dump(stats->counters, rcode_dumpcb, &arg, options);