Very simple service which performs WHOIS lookups for a list of domains provided in the "config" file and exposes them on a "/metrics" endpoint for consumption via Prometheus.
domains:
- google.com
- google.co.uk
Flags:
usage: domain_exporter [<flags>]
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--config="domains.yml" Domain exporter configuration file.
--bind=":9203" The address to listen on for HTTP requests.
--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]
--log.format=logfmt Output format of log messages. One of: [logfmt, json]
--version Show application version.
We publish a docker image on the Quay registry. You can pull this with docker pull ghcr.io/shift/domain_exporter
.
Here is an example Kubernetes deployment configuration for how to deploy the domain_exporter.
The following alert will be triggered when domains expire within 45 days, or if they don't have a whois record available (perhaps having been long expired).
groups:
- name: ./domain.rules
rules:
- alert: DomainExpiring
expr: domain_expiration{} < 45
for: 24h
labels:
severity: warning
annotations:
description: "{{ $labels.domain }} expires in {{ $value }} days"
- alert: DomainUnfindable
expr: domain_expiration_unfindable > 0
for: 24h
labels:
severity: critical
annotations:
description: "Unable to find or parse expiry for {{ $labels.domain }}"
- alert: DomainMetricsAbsent
expr: absent(domain_expiration) > 0
for: 1h
labels:
severity: warning
annotations:
description: "Metrics for domain-exporter are absent"
The WHOIS resposne probably doesn't parse correctly. Please create an issue with the response and we'll add the format.