Revert "Attach dnssecsignstats, rcvquerystats, and requeststats"

This reverts commit fb50a71159.

(cherry picked from commit 7a99d1baf8)
This commit is contained in:
Ondřej Surý 2024-12-06 19:46:39 +01:00
parent 826dfa006e
commit 81d661ffc0
No known key found for this signature in database
GPG key ID: 2820F37E873DEA41
7 changed files with 48 additions and 106 deletions

View file

@ -1290,9 +1290,6 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
stats_dumparg_t dumparg;
const char *ztype;
isc_time_t timestamp;
isc_stats_t *zonestats = NULL;
dns_stats_t *rcvquerystats = NULL;
dns_stats_t *dnssecsignstats = NULL;
statlevel = dns_zone_getstatlevel(zone);
if (statlevel == dns_zonestat_none) {
@ -1357,11 +1354,14 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
}
if (statlevel == dns_zonestat_full) {
isc_stats_t *zonestats;
isc_stats_t *gluecachestats;
dns_stats_t *rcvquerystats;
dns_stats_t *dnssecsignstats;
uint64_t nsstat_values[ns_statscounter_max];
uint64_t gluecachestats_values[dns_gluecachestatscounter_max];
dns_zone_getrequeststats(zone, &zonestats);
zonestats = dns_zone_getrequeststats(zone);
if (zonestats != NULL) {
TRY0(xmlTextWriterStartElement(writer,
ISC_XMLCHAR "counters"));
@ -1375,7 +1375,6 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
nsstat_values, ISC_STATSDUMP_VERBOSE));
/* counters type="rcode"*/
TRY0(xmlTextWriterEndElement(writer));
isc_stats_detach(&zonestats);
}
gluecachestats = dns_zone_getgluecachestats(zone);
@ -1396,7 +1395,7 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
TRY0(xmlTextWriterEndElement(writer));
}
dns_zone_getrcvquerystats(zone, &rcvquerystats);
rcvquerystats = dns_zone_getrcvquerystats(zone);
if (rcvquerystats != NULL) {
TRY0(xmlTextWriterStartElement(writer,
ISC_XMLCHAR "counters"));
@ -1411,10 +1410,9 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
/* counters type="qtype"*/
TRY0(xmlTextWriterEndElement(writer));
dns_stats_detach(&rcvquerystats);
}
dns_zone_getdnssecsignstats(zone, &dnssecsignstats);
dnssecsignstats = dns_zone_getdnssecsignstats(zone);
if (dnssecsignstats != NULL) {
/* counters type="dnssec-sign"*/
TRY0(xmlTextWriterStartElement(writer,
@ -1447,7 +1445,6 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
/* counters type="dnssec-refresh"*/
TRY0(xmlTextWriterEndElement(writer));
dns_stats_detach(&dnssecsignstats);
}
}
@ -1455,15 +1452,6 @@ zone_xmlrender(dns_zone_t *zone, void *arg) {
return ISC_R_SUCCESS;
cleanup:
if (zonestats != NULL) {
isc_stats_detach(&zonestats);
}
if (rcvquerystats != NULL) {
dns_stats_detach(&rcvquerystats);
}
if (dnssecsignstats != NULL) {
dns_stats_detach(&dnssecsignstats);
}
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
"Failed at zone_xmlrender()");
@ -2348,9 +2336,6 @@ zone_jsonrender(dns_zone_t *zone, void *arg) {
json_object *zoneobj = NULL;
dns_zonestat_level_t statlevel;
isc_time_t timestamp;
isc_stats_t *zonestats = NULL;
dns_stats_t *rcvquerystats = NULL;
dns_stats_t *dnssecsignstats = NULL;
statlevel = dns_zone_getstatlevel(zone);
if (statlevel == dns_zonestat_none) {
@ -2400,11 +2385,14 @@ zone_jsonrender(dns_zone_t *zone, void *arg) {
}
if (statlevel == dns_zonestat_full) {
isc_stats_t *zonestats;
isc_stats_t *gluecachestats;
dns_stats_t *rcvquerystats;
dns_stats_t *dnssecsignstats;
uint64_t nsstat_values[ns_statscounter_max];
uint64_t gluecachestats_values[dns_gluecachestatscounter_max];
dns_zone_getrequeststats(zone, &zonestats);
zonestats = dns_zone_getrequeststats(zone);
if (zonestats != NULL) {
json_object *counters = json_object_new_object();
if (counters == NULL) {
@ -2455,7 +2443,7 @@ zone_jsonrender(dns_zone_t *zone, void *arg) {
}
}
dns_zone_getrcvquerystats(zone, &rcvquerystats);
rcvquerystats = dns_zone_getrcvquerystats(zone);
if (rcvquerystats != NULL) {
stats_dumparg_t dumparg;
json_object *counters = json_object_new_object();
@ -2479,7 +2467,7 @@ zone_jsonrender(dns_zone_t *zone, void *arg) {
}
}
dns_zone_getdnssecsignstats(zone, &dnssecsignstats);
dnssecsignstats = dns_zone_getdnssecsignstats(zone);
if (dnssecsignstats != NULL) {
stats_dumparg_t dumparg;
json_object *sign_counters = json_object_new_object();
@ -2535,15 +2523,6 @@ zone_jsonrender(dns_zone_t *zone, void *arg) {
result = ISC_R_SUCCESS;
cleanup:
if (zonestats != NULL) {
isc_stats_detach(&zonestats);
}
if (rcvquerystats != NULL) {
dns_stats_detach(&rcvquerystats);
}
if (dnssecsignstats != NULL) {
dns_stats_detach(&dnssecsignstats);
}
if (zoneobj != NULL) {
json_object_put(zoneobj);
}
@ -4121,14 +4100,12 @@ named_stats_dump(named_server_t *server, FILE *fp) {
result == ISC_R_SUCCESS;
next = NULL, result = dns_zone_next(zone, &next), zone = next)
{
isc_stats_t *zonestats = NULL;
dns_zone_getrequeststats(zone, &zonestats);
isc_stats_t *zonestats = dns_zone_getrequeststats(zone);
if (zonestats != NULL) {
char zonename[DNS_NAME_FORMATSIZE];
view = dns_zone_getview(zone);
if (view == NULL) {
isc_stats_detach(&zonestats);
continue;
}
@ -4144,7 +4121,6 @@ named_stats_dump(named_server_t *server, FILE *fp) {
NULL, nsstats_desc,
ns_statscounter_max, nsstats_index,
nsstat_values, 0);
isc_stats_detach(&zonestats);
}
}

View file

@ -2082,20 +2082,19 @@ dns_zone_setdnssecsignstats(dns_zone_t *zone, dns_stats_t *stats);
*\li stats is a valid statistics.
*/
void
dns_zone_getrequeststats(dns_zone_t *zone, isc_stats_t **statsp);
isc_stats_t *
dns_zone_getrequeststats(dns_zone_t *zone);
void
dns_zone_getrcvquerystats(dns_zone_t *zone, dns_stats_t **statsp);
dns_stats_t *
dns_zone_getrcvquerystats(dns_zone_t *zone);
void
dns_zone_getdnssecsignstats(dns_zone_t *zone, dns_stats_t **statsp);
dns_stats_t *
dns_zone_getdnssecsignstats(dns_zone_t *zone);
/*%<
* Get the additional statistics for zone, if one is installed.
*
* Requires:
* \li 'zone' to be a valid zone.
* \li 'statsp' to be non-NULL and *stastp to be NULL.
*
* Returns:
* \li when available, a pointer to the statistics set installed in zone;

View file

@ -1115,7 +1115,7 @@ add_sigs(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db,
dns_kasp_t *kasp = dns_zone_getkasp(zone);
dns_rdataset_t rdataset;
dns_rdata_t sig_rdata = DNS_RDATA_INIT;
dns_stats_t *dnssecsignstats = NULL;
dns_stats_t *dnssecsignstats = dns_zone_getdnssecsignstats(zone);
isc_buffer_t buffer;
unsigned char data[1024]; /* XXX */
unsigned int i;
@ -1129,8 +1129,6 @@ add_sigs(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db,
offlineksk = dns_kasp_offlineksk(kasp);
}
dns_zone_getdnssecsignstats(zone, &dnssecsignstats);
dns_rdataset_init(&rdataset);
isc_buffer_init(&buffer, data, sizeof(data));
@ -1286,9 +1284,6 @@ add_sigs(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db,
}
failure:
if (dnssecsignstats != NULL) {
dns_stats_detach(&dnssecsignstats);
}
if (dns_rdataset_isassociated(&rdataset)) {
dns_rdataset_disassociate(&rdataset);
}

View file

@ -6809,7 +6809,7 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, dns_zone_t *zone,
isc_stdtime_t inception, isc_stdtime_t expire) {
isc_result_t result;
dns_dbnode_t *node = NULL;
dns_stats_t *dnssecsignstats = NULL;
dns_stats_t *dnssecsignstats;
dns_rdataset_t rdataset;
dns_rdata_t sig_rdata = DNS_RDATA_INIT;
unsigned char data[1024]; /* XXX */
@ -6984,7 +6984,7 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, dns_zone_t *zone,
isc_buffer_init(&buffer, data, sizeof(data));
/* Update DNSSEC sign statistics. */
dns_zone_getdnssecsignstats(zone, &dnssecsignstats);
dnssecsignstats = dns_zone_getdnssecsignstats(zone);
if (dnssecsignstats != NULL) {
/* Generated a new signature. */
dns_dnssecsignstats_increment(dnssecsignstats,
@ -6996,7 +6996,6 @@ add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, dns_zone_t *zone,
dnssecsignstats, ID(keys[i]),
(uint8_t)ALG(keys[i]),
dns_dnssecsignstats_refresh);
dns_stats_detach(&dnssecsignstats);
}
}
@ -7468,7 +7467,7 @@ sign_a_node(dns_db_t *db, dns_zone_t *zone, dns_name_t *name,
dns_rdatasetiter_t *iterator = NULL;
dns_rdataset_t rdataset;
dns_rdata_t rdata = DNS_RDATA_INIT;
dns_stats_t *dnssecsignstats = NULL;
dns_stats_t *dnssecsignstats;
bool offlineksk = false;
isc_buffer_t buffer;
unsigned char data[1024];
@ -7601,7 +7600,7 @@ sign_a_node(dns_db_t *db, dns_zone_t *zone, dns_name_t *name,
dns_rdata_reset(&rdata);
/* Update DNSSEC sign statistics. */
dns_zone_getdnssecsignstats(zone, &dnssecsignstats);
dnssecsignstats = dns_zone_getdnssecsignstats(zone);
if (dnssecsignstats != NULL) {
/* Generated a new signature. */
dns_dnssecsignstats_increment(dnssecsignstats, ID(key),
@ -7611,7 +7610,6 @@ sign_a_node(dns_db_t *db, dns_zone_t *zone, dns_name_t *name,
dns_dnssecsignstats_increment(
dnssecsignstats, ID(key), ALG(key),
dns_dnssecsignstats_refresh);
dns_stats_detach(&dnssecsignstats);
}
(*signatures)--;
@ -19751,27 +19749,15 @@ dns_zone_setdnssecsignstats(dns_zone_t *zone, dns_stats_t *stats) {
UNLOCK_ZONE(zone);
}
static void
getdnssecsignstats(dns_zone_t *zone, dns_stats_t **statsp) {
REQUIRE(statsp != NULL && *statsp == NULL);
if (zone->dnssecsignstats != NULL) {
dns_stats_attach(zone->dnssecsignstats, statsp);
}
}
void
dns_zone_getdnssecsignstats(dns_zone_t *zone, dns_stats_t **statsp) {
dns_stats_t *
dns_zone_getdnssecsignstats(dns_zone_t *zone) {
REQUIRE(DNS_ZONE_VALID(zone));
LOCK_ZONE(zone);
getdnssecsignstats(zone, statsp);
UNLOCK_ZONE(zone);
return zone->dnssecsignstats;
}
void
dns_zone_getrequeststats(dns_zone_t *zone, isc_stats_t **statsp) {
REQUIRE(DNS_ZONE_VALID(zone));
REQUIRE(statsp != NULL && *statsp == NULL);
isc_stats_t *
dns_zone_getrequeststats(dns_zone_t *zone) {
/*
* We don't lock zone for efficiency reason. This is not catastrophic
* because requeststats must always be valid when requeststats_on is
@ -19780,27 +19766,24 @@ dns_zone_getrequeststats(dns_zone_t *zone, isc_stats_t **statsp) {
* false, or some cannot be incremented just after the statistics are
* installed, but it shouldn't matter much in practice.
*/
LOCK_ZONE(zone);
if (zone->requeststats_on && zone->requeststats != NULL) {
isc_stats_attach(zone->requeststats, statsp);
if (zone->requeststats_on) {
return zone->requeststats;
} else {
return NULL;
}
UNLOCK_ZONE(zone);
}
/*
* Return the received query stats bucket
* see note from dns_zone_getrequeststats()
*/
void
dns_zone_getrcvquerystats(dns_zone_t *zone, dns_stats_t **statsp) {
REQUIRE(DNS_ZONE_VALID(zone));
REQUIRE(statsp != NULL && *statsp == NULL);
LOCK_ZONE(zone);
if (zone->requeststats_on && zone->rcvquerystats != NULL) {
dns_stats_attach(zone->rcvquerystats, statsp);
dns_stats_t *
dns_zone_getrcvquerystats(dns_zone_t *zone) {
if (zone->requeststats_on) {
return zone->rcvquerystats;
} else {
return NULL;
}
UNLOCK_ZONE(zone);
}
void
@ -22671,9 +22654,8 @@ zone_rekey(dns_zone_t *zone) {
if (commit) {
dns_difftuple_t *tuple;
dns_stats_t *dnssecsignstats = NULL;
getdnssecsignstats(zone, &dnssecsignstats);
dns_stats_t *dnssecsignstats =
dns_zone_getdnssecsignstats(zone);
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NEEDNOTIFY);
@ -22713,9 +22695,6 @@ zone_rekey(dns_zone_t *zone) {
}
}
}
if (dnssecsignstats != NULL) {
dns_stats_detach(&dnssecsignstats);
}
if (fullsign) {
/*

View file

@ -522,7 +522,7 @@ inc_stats(ns_client_t *client, isc_statscounter_t counter) {
dns_zone_t *zone = client->query.authzone;
dns_rdatatype_t qtype;
dns_rdataset_t *rdataset;
isc_stats_t *zonestats = NULL;
isc_stats_t *zonestats;
dns_stats_t *querystats = NULL;
ns_stats_increment(client->manager->sctx->nsstats, counter);
@ -532,11 +532,10 @@ inc_stats(ns_client_t *client, isc_statscounter_t counter) {
}
/* Do regular response type stats */
dns_zone_getrequeststats(zone, &zonestats);
zonestats = dns_zone_getrequeststats(zone);
if (zonestats != NULL) {
isc_stats_increment(zonestats, counter);
isc_stats_detach(&zonestats);
}
/* Do query type statistics
@ -545,14 +544,13 @@ inc_stats(ns_client_t *client, isc_statscounter_t counter) {
* answer counter, preventing double-counting.
*/
if (counter == ns_statscounter_authans) {
dns_zone_getrcvquerystats(zone, &querystats);
querystats = dns_zone_getrcvquerystats(zone);
if (querystats != NULL) {
rdataset = ISC_LIST_HEAD(client->query.qname->list);
if (rdataset != NULL) {
qtype = rdataset->type;
dns_rdatatypestats_increment(querystats, qtype);
}
dns_stats_detach(&querystats);
}
}
}
@ -1254,7 +1252,7 @@ rpz_log_rewrite(ns_client_t *client, bool disabled, dns_rpz_policy_t policy,
const char *s1 = cname_buf, *s2 = cname_buf;
dns_rdataset_t *rdataset;
dns_rpz_st_t *st;
isc_stats_t *zonestats = NULL;
isc_stats_t *zonestats;
/*
* Count enabled rewrites in the global counter.
@ -1265,11 +1263,10 @@ rpz_log_rewrite(ns_client_t *client, bool disabled, dns_rpz_policy_t policy,
ns_statscounter_rpz_rewrites);
}
if (p_zone != NULL) {
dns_zone_getrequeststats(p_zone, &zonestats);
zonestats = dns_zone_getrequeststats(p_zone);
if (zonestats != NULL) {
isc_stats_increment(zonestats,
ns_statscounter_rpz_rewrites);
isc_stats_detach(&zonestats);
}
}

View file

@ -329,11 +329,9 @@ inc_stats(ns_client_t *client, dns_zone_t *zone, isc_statscounter_t counter) {
ns_stats_increment(client->manager->sctx->nsstats, counter);
if (zone != NULL) {
isc_stats_t *zonestats = NULL;
dns_zone_getrequeststats(zone, &zonestats);
isc_stats_t *zonestats = dns_zone_getrequeststats(zone);
if (zonestats != NULL) {
isc_stats_increment(zonestats, counter);
isc_stats_detach(&zonestats);
}
}
}

View file

@ -111,11 +111,9 @@ static void
inc_stats(ns_client_t *client, dns_zone_t *zone, isc_statscounter_t counter) {
ns_stats_increment(client->manager->sctx->nsstats, counter);
if (zone != NULL) {
isc_stats_t *zonestats = NULL;
dns_zone_getrequeststats(zone, &zonestats);
isc_stats_t *zonestats = dns_zone_getrequeststats(zone);
if (zonestats != NULL) {
isc_stats_increment(zonestats, counter);
isc_stats_detach(&zonestats);
}
}
}