tldr; Grafana is an awesome tool, but it isn’t flexible enough to replace the perf dashboard’s full functionality. I consider this experiment failed, but here are the results anyway.
I played with importing all the perf data into the time-series database, InfluxDB. Then, I visualized them just as perf.rlo do, with Grafana.
I was able to configure a correct query and dashboard for Grafana in half an hour. Here are the resulting graphs: https://snapshot.raintank.io/dashboard/snapshot/mbRr134JRP0J3dRMDm9xHmjEI0Zn9lIk?orgId=2 Grafana renders using canvas, so it should be considerably faster than perf.rlo.
Basically, I think Grafana can be a really powerful tool on visualizing time-series data, given that it can plot any way you want (as long as you can describe a query), with minimal setup/coding. It’s really specialized on time-series data, and I wasn’t able to replicate the “compare” functionality on perf.rlo with the Grafana+InfluxDB stack. It doesn’t handle the commit relationships, although I guess there’s a way to provide basic support for it. Also, if you try to let InfluxDB keep index on commits (instead of just storing it), the memory usage will quickly go up (in my case, 2GB).
I’ve put all the source needed to replicate this setup into a Gist: https://gist.github.com/ishitatsuyuki/0f8acbd9e00f82820573921e8907baea
This contains a Cargo project to ingest data into InfluxDB, and a snapshot of the Grafana JSON model used to visualize them.