Drew DeVault 2 years ago
21 commits
9d7c770f master
Revert "Add chart URL tool"
File Commit Size Mode Time
LICENSE Initial commit 1 KiB -rw-r--r-- 4 years ago
README.md Document the label option 1.7 KiB -rw-r--r-- 4 years ago
go.mod Add label support 165 B -rw-r--r-- 4 years ago
go.sum Add until option 6.4 KiB -rw-r--r-- 4 years ago
main.go Fix handling of absolute staticDir paths 7.6 KiB -rw-r--r-- 2 years ago
static Add chart URL tool NaN B d--------- 2 years ago

chartsrv

chartsrv is a dead-simple web application which runs Prometheus queries and charts the result as an SVG. You make a dashboard by putting a lot of these images into a web page. You make it refresh by adding <meta id="refresh" http-equiv="refresh" content="5"> to the header. Ta-da!

Live graph from metrics.sr.ht

This is a live graph from metrics.sr.ht

Running the daemon

$ go build -o chartsrv main.go
$ ./chartsrv https://prometheus.example.org
Listening on :8142

Forward /chart.svg to this address with your favorite reverse proxy. If you want to listen to some other port, pass a second argument like :1337.

Usage

Create a URL like https://chartsrv.example.org/chart.svg?query=...&args... and set the query parameters as appropriate:

  • query: required. Prometheus query to execute.
  • title: chart title
  • stacked: set to create an area chart instead of a line chart
  • since, until: time.ParseDuration to set distance in the past to start charting from or until
  • width, height: adjust chart dimensions in inches
  • step: number of seconds between data points
  • min, max: Y axis limits
  • label: template for the chart legend in Go’s text/template format. All values provided by prometheus as tags are available - to label each matching result by the instance, for instance, use {{.instance}}

Clone

HTTP

Subscribe

License

Authors

Drew DeVault: 50%
Noam Preil: 30%
Krystian Chachuła: 20%

Analysis