Add metric for queries which never see an answer.
authorSimon Kelley <simon@thekelleys.org.uk>
Thu, 15 Sep 2022 21:06:39 +0000 (22:06 +0100)
committerSimon Kelley <simon@thekelleys.org.uk>
Thu, 15 Sep 2022 21:06:39 +0000 (22:06 +0100)
src/forward.c
src/metrics.c
src/metrics.h

index 4e127ba..49a0bbc 100644 (file)
@@ -2790,6 +2790,7 @@ static struct frec *get_new_frec(time_t now, struct server *master, int force)
            {
              if (difftime(now, f->time) >= 4*TIMEOUT)
                {
+                 daemon->metrics[METRIC_DNS_UNANSWERED_QUERY]++;
                  free_frec(f);
                  target = f;
                }
@@ -2811,6 +2812,7 @@ static struct frec *get_new_frec(time_t now, struct server *master, int force)
   if (!target && oldest && ((int)difftime(now, oldest->time)) >= TIMEOUT)
     { 
       /* can't find empty one, use oldest if there is one and it's older than timeout */
+      daemon->metrics[METRIC_DNS_UNANSWERED_QUERY]++;
       free_frec(oldest);
       target = oldest;
     }
index eeea074..68fe7c6 100644 (file)
@@ -23,6 +23,7 @@ const char * metric_names[] = {
     "dns_auth_answered",
     "dns_local_answered",
     "dns_stale_answered",
+    "dns_unanswered",
     "bootp",
     "pxe",
     "dhcp_ack",
index f7c817b..bc91adf 100644 (file)
@@ -22,6 +22,7 @@ enum {
   METRIC_DNS_AUTH_ANSWERED,
   METRIC_DNS_LOCAL_ANSWERED,
   METRIC_DNS_STALE_ANSWERED,
+  METRIC_DNS_UNANSWERED_QUERY,
   METRIC_BOOTP,
   METRIC_PXE,
   METRIC_DHCPACK,