Daemon which renders SVG plots from Prometheus data
Revert "Add chart URL tool"
Fix handling of absolute staticDir paths
Add chart URL tool



You can also use your local clone with git send-email.


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.


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}}