Skip to content

albortino/Pi-Hole-Monitoring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Telegraf-Monitoring

I am sharing my code for Pi-Hole monitoring with you. Feel free to use it in your projects.

Telegraf Plugins

See the code in this .conf file: https://github.com/albortino/Telegraf-Monitoring/blob/72983d6e3105dda6097453fa64d89909a37558d0/telegraf.conf

Grafana Queries (influxdb2)

Monitor the activity similar to PiHole dashboard

Can be visualized with a time series chart.

from(bucket: "YOUR_BUCKET")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "MEASUREMENT_NAME")
  |> filter(fn: (r) => r["_field"] == "blocked" or r["_field"] == "cached" or r["_field"] == "forwarded")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)

Monitor the distribution of query types

Can be visualized with a 100% stacked bar chart.

from(bucket: "YOUR_BUCKET")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == "MEASUREMENT_NAME")
  |> filter(fn: (r) => r._field == "reply_time")
  |> group(columns: ["type"])
  |> aggregateWindow(every: v.windowPeriod, fn: count, createEmpty: false)
  |> keep(columns: ["_time", "type", "_value"])

Monitor mean reply time per query and type

from(bucket: "YOUR_BUCKET")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == "MEASUREMENT_NAME")
  |> filter(fn: (r) => r._field == "reply_time")
  |> group(columns: ["type"])
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> keep(columns: ["_time", "type", "_value"])

Example: image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors