Exporter operation modes
Exporter can work in 2 modes:
- classic:
- targets are configured in
targets.ini /metricsendpoint is used to receive metrics
- targets are configured in
- prober:
- targets are configured on the Prometheus side
/prober&target=is usedtargets.inishould be empty
Each operation mode requires an rbl.ini, for example:
[rbl]
server=ix.dnsbl.manitu.net
Prober mode provides additional features over classic:
- dynamic configuration of targets on Prometheus side
- different query/check interval of queries for different targets (e.g. to work around strict rate limits of the DNSBL)
set different query settings by utilizing probes modules(not yet implemented)
classic
The following examples configure scraping of metrics from this exporter in classic mode.
Example for a targets.ini:
[targets]
server=smtp.fastmail.com
Prometheus
scrape_configs:
- job_name: 'dnsbl-exporter'
metrics_path: /metrics
static_configs:
- targets: ['127.0.0.1:9211']
For more details, see the Prometheus scrape config documentation.
Prometheus Operator
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: dnsbl-exporter
namespace: dnsbl-exporter
spec:
endpoints:
- interval: 30s
port: http-9211
scrapeTimeout: 5s
jobLabel: dnsbl-exporter
namespaceSelector:
matchNames:
- dnsbl-exporter
selector:
matchLabels:
app.kubernetes.io/instance: dnsbl-exporter
app.kubernetes.io/name: dnsbl-exporter
You can use a ServiceMonitor or PodMonitor, for more details, see the Operator ServiceMonitor documentation or Operator PodMonitor documentation.
prober
The following examples configure scraping of metrics from this exporter in prober mode.
Prometheus
scrape_configs:
- job_name: 'dnsbl-exporter-prober'
metrics_path: /prober
params:
module: [ips]
static_configs:
- targets:
- smtp.fastmail.com
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9211 # The dnsbl exporter's real hostname:port.
- job_name: 'dnsbl-exporter-metrics' # collect dnsbl exporter's operational metrics.
static_configs:
- targets: ['127.0.0.1:9211']
For more details, see the Prometheus scrape config documentation.
Prometheus Operator
apiVersion: monitoring.coreos.com/v1
kind: Probe
metadata:
name: dnsbl-exporter-prober
namespace: dnsbl-exporter
spec:
interval: 30s
jobName: dnsbl-exporter-prober
module: ips
prober:
path: /prober
scheme: http
url: dnsbl-exporter.dnsbl-exporter.svc:9211 # Kubernetes dnsbl exporter's service
scrapeTimeout: 5s
targets:
staticConfig:
static:
- smtp.fastmail.com
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: dnsbl-exporter-metrics # collect dnsbl exporter's operational metrics.
namespace: dnsbl-exporter
spec:
endpoints:
- interval: 30s
port: http-9211
scrapeTimeout: 5s
jobLabel: dnsbl-exporter-metrics
namespaceSelector:
matchNames:
- dnsbl-exporter
selector:
matchLabels:
app.kubernetes.io/instance: dnsbl-exporter
app.kubernetes.io/name: dnsbl-exporter
For more details, see the Operator Probe documentation.
In addition, you can use a
ServiceMonitororPodMonitorto monitor thednsbl-exporter’s operational metrics, for more details, see the Operator ServiceMonitor documentation or Operator PodMonitor documentation.