pihole_exporter.py
A prometheus exporter for PiHole written in Python 3.
Content
Available metrics
- Queries forwarded (24h)
- Domains being blocked
- Ads percentage today
- Ads blocked today
- DNS queries today
- Total clients
- Unique clients
- Queries cached
- Unique Domains
- Top Queries
- Top Ads
- Top clients
- Forward destinations
- Query type
- Reply type
- DNS queries by host
Metrics Example
Some metrics have been redacted.
pihole_exporter_version 0.1
pihole_domains_being_blocked 573713
pihole_dns_queries_today 13961
pihole_ads_blocked_today 3443
pihole_ads_percentage_today 24.661556
pihole_unique_domains 983
pihole_queries_forwarded 4346
pihole_queries_cached 3288
pihole_clients_ever_seen 9
pihole_unique_clients 5
pihole_dns_queries_all_types 13974
pihole_reply_nodata 34
pihole_reply_nxdomain 0
pihole_reply_cname 37
pihole_reply_ip 88
pihole_status 1
pihole_gravity_last_updated 1533820315
pihole_top_queries{domain="raw.githubusercontent.com"} 321
pihole_top_queries{domain="grafana.com"} 292
pihole_top_queries{domain="connect.rom.miui.com"} 165
pihole_top_queries{domain="spectrum.s3.amazonaws.com"} 145
pihole_top_queries{domain="mtalk.google.com"} 124
pihole_top_queries{domain="www.cdn.viber.com"} 112
pihole_top_queries{domain="redirector.googlevideo.com"} 112
pihole_top_queries{domain="ntp-g7g.amazon.com"} 98
pihole_top_queries{domain="www.google.com"} 72
pihole_top_ads{domain="mobile.pipe.aria.microsoft.com"} 872
pihole_top_ads{domain="www.googleadservices.com"} 169
pihole_top_ads{domain="www.google-analytics.com"} 147
pihole_top_ads{domain="s.youtube.com"} 133
pihole_top_ads{domain="data.mistat.intl.xiaomi.com"} 114
pihole_top_ads{domain="api.brs.intl.miui.com"} 89
pihole_top_ads{domain="device-metrics-us.amazon.com"} 88
pihole_top_ads{domain="adservice.google.com"} 75
pihole_top_ads{domain="aax-eu.amazon-adsystem.com"} 73
pihole_top_ads{domain="sb.scorecardresearch.com"} 71
pihole_top_sources{client="192.168.1.10"} 2833
pihole_top_sources{client="192.168.1.2"} 2799
pihole_top_sources{client="192.168.1.1"} 1045
pihole_top_sources{client="192.168.1.7"} 332
pihole_top_sources{client="192.168.1.5"} 277
pihole_forward_destinations{resolver="blocklist|blocklist"} 31.08
pihole_forward_destinations{resolver="cache|cache"} 29.68
pihole_forward_destinations{resolver="1dot1dot1dot1.cloudflare-dns.com|1.1.1.1"} 39.23
pihole_query_type{type="A (IPv4)"} 76.53
pihole_query_type{type="AAAA (IPv6)"} 23.38
pihole_query_type{type="ANY"} 0
pihole_query_type{type="SRV"} 0
pihole_query_type{type="SOA"} 0
pihole_query_type{type="PTR"} 0.09
pihole_query_type{type="TXT"} 0
Setup
pip
PyPI
pip3 install --upgrade pihole_exporter
github master branch
pip3 install --upgrade git+https://github.com/dr1s/pihole_exporter.py.git
manual
git clone https://github.com/dr1s/pihole_exporter.py.git
cd pihole_exporter.py
pip3 install -r requirements.txt
cd pihole_exporter
./pihole_exporter.py
Docker
docker-hub
docker pull dr1s/pihole_exporter
docker run --net=host -v /etc/pihole:/etc/pihole -t dr1s/pihole_exporter
manual
git clone https://github.com/dr1s/pihole_exporter.py.git
docker build -t dr1s/pihole_exporter .
docker run -d --net=host -v /etc/pihole:/etc/pihole -t dr1s/pihole_exporter
Usage
usage: pihole_exporter.py [-h] [-o PIHOLE] [-p PORT] [-i INTERFACE] [-a AUTH]
[-e]
pihole_exporter
optional arguments:
-h, --help show this help message and exit
-o PIHOLE, --pihole PIHOLE
pihole adress
-p PORT, --port PORT port pihole_exporter is listening on
-i INTERFACE, --interface INTERFACE
interface pihole_exporter will listen on
-a AUTH, --auth AUTH Pihole password hash
-e, --extended-metrics
Extended pihole metrics
Usage Example
pihole_exporter --pihole pi.hole --interface 0.0.0.0 --port 9311
The previous used arguements are the default options. If nothing needs to be changed, pihole_exporter can be started without arguments.
pihole_exporter
Authentication
If pihole_exporter is installed on the same host as pihole and the auth argument is not set, pihole_exporter will try to read the password from setupVars.conf
Otherwise get the hashed password from setupVars.conf:
$ grep WEBPASSWORD /etc/pihole/setupVars.conf
WEBPASSWORD=da1a51f575cd740be233d22548ecac1dbcc96ffa297283a6a204f9213a8aca71
Use this hash as the argument for --auth
pihole_exporter --auth da1a51f575cd740be233d22548ecac1dbcc96ffa297283a6a204f9213a8aca71
docker run -d --net=host -t dr1s/pihole_exporter --pihole pi.hole --auth da1a51f575cd740be233d22548ecac1dbcc96ffa297283a6a204f9213a8aca71
Prometheus config
- job_name: 'pihole'
static_configs:
- targets: ['pi.hole:9311']
Metadata
Release files for pihole-exporter 0.4.6.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pihole_exporter-0.4.6.7.tar.gz | 6.0 kB | Without provenance | Details for pihole_exporter-0.4.6.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pihole_exporter-0.4.6.7-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for pihole_exporter-0.4.6.7-py2.py3-none-any.whl |
Total release size: 13.7 kB
Release files / pihole_exporter-0.4.6.7.tar.gz
| Download URL | pihole_exporter-0.4.6.7.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b142a9b765bd83fb5e4c5b30aa494057d20a3a09a41710aa3f385d0aabb94dc
|
|
BLAKE2b-256 checksum How to use checksums |
4dfd2e76c6b7b561948b6e92c607c5c1dc45937c0e7cf9bd2ec5d879fcdc73da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.7.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.3
|
Release files / pihole_exporter-0.4.6.7-py2.py3-none-any.whl
| Download URL | pihole_exporter-0.4.6.7-py2.py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
9d74ab819fbe879b9c71ce9ab04dba793d3f0c7c2012d75ae9dd3216bb1a9f0e
|
|
BLAKE2b-256 checksum How to use checksums |
9545a49ad63e5d695221d213fab2fa5b05394caca50f34100f93b2d62ce123a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.7.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.3
|
Security for pihole-exporter 0.4.6.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.