Go to file
2020-11-02 19:10:20 +01:00
config Modified Auth from cookie to Auth Basic if password is set 2020-11-02 00:27:18 +01:00
internal Added comments and LICENSE 2020-11-02 19:10:20 +01:00
.gitignore Modified Auth from cookie to Auth Basic if password is set 2020-11-02 00:27:18 +01:00
go.mod First commit 2020-11-01 23:09:36 +01:00
go.sum Modified Auth from cookie to Auth Basic if password is set 2020-11-02 00:27:18 +01:00
LICENSE Added comments and LICENSE 2020-11-02 19:10:20 +01:00
main.go Added more metrics. HTTP protocol only supported 2020-11-02 18:18:08 +01:00
README.md Added README 2020-11-02 18:54:02 +01:00

AdguardHome Prometheus Exporter

Build/Push (master) GoDoc GoReportCard

This is a Prometheus exporter for AdguardHome's Raspberry PI ad blocker. It is based on the famous pihole-exporter available here

Prerequisites

Installation

Download binary

You can download the latest version of the binary built for your architecture here:

From sources

Optionally, you can download and build it from the sources. You have to retrieve the project sources by using one of the following way:

$ go get -u github.com/ebrianne/adguard-exporter
# or
$ git clone https://github.com/ebrianne/adguard-exporter.git

Install the needed vendors:

$ GO111MODULE=on go mod vendor

Then, build the binary (here, an example to run on Raspberry PI ARM architecture):

$ GOOS=linux GOARCH=arm GOARM=7 go build -o adguard_exporter .

Usage

In order to run the exporter, type the following command (arguments are optional):

Using a password

$ ./adguard_exporter -adguard_hostname 192.168.1.10 -adguard_username admin -adguard_password qwerty
2020/11/02 18:17:02 ---------------------------------------
2020/11/02 18:17:02 - AdGuard Home exporter configuration -
2020/11/02 18:17:02 ---------------------------------------
2020/11/02 18:17:02 AdguardProtocol : http
2020/11/02 18:17:02 AdguardHostname : 192.168.1.10
2020/11/02 18:17:02 AdguardPort : 80
2020/11/02 18:17:02 AdguardUsername : admin
2020/11/02 18:17:02 AdGuard Authentication Method : AdguardPassword
2020/11/02 18:17:02 Port : 9617
2020/11/02 18:17:02 Interval : 10s
2020/11/02 18:17:02 ---------------------------------------
2020/11/02 18:17:02 New Prometheus metric registered: avg_processing_time
2020/11/02 18:17:02 New Prometheus metric registered: num_dns_queries
2020/11/02 18:17:02 New Prometheus metric registered: num_blocked_filtering
2020/11/02 18:17:02 New Prometheus metric registered: num_replaced_parental
2020/11/02 18:17:02 New Prometheus metric registered: num_replaced_safebrowsing
2020/11/02 18:17:02 New Prometheus metric registered: num_replaced_safesearch
2020/11/02 18:17:02 New Prometheus metric registered: top_queried_domains
2020/11/02 18:17:02 New Prometheus metric registered: top_blocked_domains
2020/11/02 18:17:02 New Prometheus metric registered: top_clients
2020/11/02 18:17:02 Starting HTTP server
2020/11/02 18:17:13 New tick of statistics: 737 ads blocked / 6492 total DNS queries

Once the exporter is running, you also have to update your prometheus.yml configuration to let it scrape the exporter:

scrape_configs:
  - job_name: 'adguard'
    static_configs:
      - targets: ['localhost:9617']

Available CLI options

# Interval of time the exporter will fetch data from Adguard
  -interval duration (optional) (default 10s)

# Hostname of the Raspberry PI where Adguard is installed
  -adguard_hostname string (optional) (default "127.0.0.1")

# Username to login to Adguard Home
  -adguard_username string (optional)

# Password defined on the Adguard interface
  -adguard_password string (optional)

# Port to be used for the exporter
  -port string (optional) (default "9617")

Available Prometheus metrics

Metric name Description
adguard_avg_processing_time This represent the average DNS query processing time
adguard_num_blocked_filtering This represent the number of blocked DNS queries
adguard_num_dns_queries This represent the number of DNS queries
adguard_num_replaced_parental This represent the number of blocked DNS queries (parental)
adguard_num_replaced_safebrowsing This represent the number of blocked DNS queries (safe browsing)
adguard_num_replaced_safesearch This represent the number of blocked DNS queries (safe search)
adguard_top_blocked_domains This represent the top blocked domains
adguard_top_clients This represent the top clients
adguard_top_queried_domains This represent the top domains that are queried