Exporting statistics to Prometheus

Prev Next

Stork Overview

Stork is ISC's open source management application. Stork consists of an agent, which runs on the BIND9 or Kea application host, and a server, which provides a graphical web monitoring dashboard. The agent can sometimes be useful even without the server.

STAG as a BIND Prometheus Exporter

The Stork Agent (STAG) can be used without the Stork server to export statistics from BIND to a Prometheus time-series database, for visualization in Grafana charts.

STAG is not distributed with BIND. It can be compiled from sources (available from the ISC web site) or installed directly from the ISC repository of packages for popular operating systems on Cloudsmith.

Deploying the Stork User Agent

STAG is deployed on each BIND server. See the Stork Administrative Reference Manual and STAG man pages for details on the the (very few) settings required to configure the relationship between Prometheus and the STAG.

Requirements

named must be built with json-c and the statistics-channel must be configured. It is recommended to set zone-statistics to full.

STAG will look for the named process and parse the configuration file (named -c ...). If the command parameters does not include -c STAG will default to /etc/bind/named.conf.

Included Grafana Charts

The Stork distribution includes a Grafana template for BIND, which lays out a series of useful charts, covering Platform Resource Usage, Queries, Cache and Resolver statistics. These are designed to be helpful for BIND resolver operators. Grafana is highly customizable, and it is possible to edit and customize these charts, or add others.

Resource Usage

Because the exporter is not in BIND itself, but on the host, it is also able to export some load information about the platform that is helpful to view in context with query loads. Data shown here includes named CPU and memory utilization, platform memory utilization and file descriptors.

Resource Usage charts

Query Details

This section shows incoming requests and outgoing queries by record type, query errors by error type and responses by response code, and a breakdown of queries by transport type (UDP vs TCP).

Query details

Cache Information

Graphs include cache hits, cache misses, cache hit ratio, and the current cache contents by rrtype.

Resolver cache information

Resolver Details

Graphs include DNSSEC validation rate, Resolver query and response errors by error type, and query duration 'buckets'.

Resolver details