Welcome to Stork!

Stork is a monitoring solution for ISC Kea DHCP and ISC BIND 9. It also integrates with the third-party PowerDNS server.

The Stork documentation describes how to configure and use Stork.

Currently, no machines are specified for monitoring in Stork. To add a new machine, visit the Machines page (under the Services menu in the top bar).

Stork uses the "status-get" command to collect Kea status information. This command is only available in Kea 1.6.3 and later, so Stork cannot fully interact with older Kea versions.

DHCP Dashboard

DHCPv4

Subnets: {{ overview.subnets4?.total ?? 0 }}

This list shows the five DHCPv4 subnets with the highest utilization. The total number of subnets is {{ overview.subnets4?.total ?? 0 }}.

{{ sn.localSubnets?.[0]?.id | surround: '[' : ']' }} {{ sn.addrUtilization ?? 0 | number: '1.0-1' }}% used
more

Shared Networks: {{ overview.sharedNetworks4?.total ?? 0 }}

This list shows the five shared networks with the highest utilization. The total number of networks is {{ overview.sharedNetworks4?.total ?? 0 }}.

{{ net.subnets.length }} subnets {{ net.addrUtilization ?? 0 | number: '1.0-1' }}% used
more

Statistics

Addresses {{ overview.dhcp4Stats?.assignedAddresses ?? 0 | humanCount }} / {{ overview.dhcp4Stats?.totalAddresses ?? 0 | humanCount }} ({{ getPercent( overview.dhcp4Stats?.assignedAddresses, overview.dhcp4Stats?.totalAddresses ) }}% used)
Declined {{ overview.dhcp4Stats?.declinedAddresses ?? 0 | humanCount }}

DHCPv6

Subnets: {{ overview.subnets6?.total ?? 0 }}

This list shows the five DHCPv6 subnets with the highest utilization. The total number of subnets is {{ overview.subnets6?.total ?? 0 }}.

{{ sn.localSubnets?.[0]?.id | surround: '[' : ']' }} {{ sn.addrUtilization ?? 0 | number: '1.0-1' }}% used
more

Shared Networks: {{ overview.sharedNetworks6?.total ?? 0 }}

This list shows the five shared networks with the highest utilization. The total number of networks is {{ overview.sharedNetworks6?.total ?? 0 }}.

{{ net.subnets.length }} subnets {{ net.addrUtilization ?? 0 | number: '1.0-1' }}% used
more

Statistics

Addresses {{ overview.dhcp6Stats?.assignedNAs ?? 0 | humanCount }} / {{ overview.dhcp6Stats?.totalNAs ?? 0 | humanCount }} ({{ getPercent(overview.dhcp6Stats?.assignedNAs, overview.dhcp6Stats?.totalNAs) }}% used)
Prefixes {{ overview.dhcp6Stats?.assignedPDs ?? 0 | humanCount }} / {{ overview.dhcp6Stats?.totalPDs ?? 0 | humanCount }} ({{ getPercent(overview.dhcp6Stats?.assignedPDs, overview.dhcp6Stats?.totalPDs) }}% used)
Declined {{ overview.dhcp6Stats?.declinedNAs ?? 0 | humanCount }}

Service Status

Host App Version App Name Daemon Status RPS (15min) RPS (24h) HA State Detected Failure w/HA Uptime {{ d.machine }} Kea {{ d.appVersion }} {{ d.appName }} {{ d.name | daemonNiceName }} {{ d.rps1 | number: '1.0-2' }} {{ d.rps2 | number: '1.0-2' }} {{ showHAState(d) }} {{ showHAState(d) }} {{ showHAFailureTime(d) }} {{ showDuration(d.uptime) }}
DNS Dashboard

Service Status

Host App Version App Name Daemon Status Zone Fetch Status Zone Configs Count Distinct Zones Builtin Zones Uptime {{ a.machine?.hostname ?? 'unknown' }} {{ a.name ?? 'unknown' }} {{ getDNSDaemon(a)?.name | daemonNiceName | placeholder: 'unknown' }} {{ !zoneInventoryStateMap.get(a.id) ? 'n/a' : '' }} {{ zoneInventoryStateMap.get(appId)[propertyName] ?? 0 }} n/a {{ showDuration(getDNSDaemon(a)?.uptime ?? 0) }}