Chapter 8. Monitoring and Troubleshooting

Given how critical a service DNS is, it’s important to have the ability to monitor its availability and performance and to troubleshoot problems it might be experiencing. In this chapter, we cover plug-ins that will help you monitor CoreDNS, log queries and responses, and diagnose issues.

The prometheus Plug-in

CoreDNS exposes many metrics using the prometheus plug-in. As the name suggests, these are exposed in the format used by the Prometheus monitoring system. The plug-in will open a port for Prometheus or other tools to scrape the metrics periodically.

Example 8-1 presents the complete syntax.

Example 8-1. Syntax of the prometheus plug-in
prometheus [ ADDRESS ]

ADDRESS is the IP and port to listen on; if omitted it defaults to localhost:9153.

The plug-in will start up an HTTP server with a handler for /metrics—any other path will result in an HTTP 404 Not Found error. CoreDNS will export basic process and Go runtime metrics as well as CoreDNS-specific metrics, as described in  Table 8-1.

Table 8-1. Exported metrics
Name Labels Description
process_cpu_seconds_total   Total user and system CPU time spent in seconds
process_open_fds   Number of open file descriptors
process_max_fds   Maximum number of open file descriptors
process_virtual_memory_bytes   Virtual memory size in bytes
process_virtual_memory_max_bytes   Maximum amount of virtual memory available in bytes
process_resident_memory_bytes   Resident memory ...

Get Learning CoreDNS now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.