There are multiple community solutions that help visualise storagenode state in Grafana:
- There’s one that @KernelPanick implemented that I think relies on logs and telegraf but I don’t know much about Visual Dashboard - Grafana Mon: 24hr Docker log > Telegraf > InfluxDB
- The one @kevink shared recently that relies on logs and grok-exporter Log-Exporter for Prometheus with Grafana Dashboard
- The one I shared here https://github.com/anclrii/Storj-Exporter that relies on storagenode API and not logs Prometheus Storj-Exporter
- There might be more
As @kevink rightly pointed out current storj binaries don’t expose anything that could be used with grafana. Some metrics are available in the node API and this exporter translates these metrics to prometheus compatible format which is pretty specific.
To get the idea of the format difference you can try spin up the exporter yourself with docker run -d --link=storagenode --name=storj-exporter -p 9651:9651 anclrii/storj-exporter:latest
and then curl -s storj-exporter:9651/metrics
will give you the output that storj binaries would need to expose.
If this is implemented, Prometheus would be able to scrape storagenodes directly rather then through my exporter and this would be a much better solution. Metrics could be updated along with the rest of the app, better performance etc. Thought even if storj binaries exposed prometheus compatible metrics, one would still need a prometheus server between node and grafana to scrape and store historic metrics, and also a grafana instance for dashboards.
I think it would be good if storj binaries exposed total/successful uploads/downloads and also generic error count might be useful. Currently we need to parse logs to get this metrics and it’s hard. It would be good to add these to the node API for a start so that I can translate them to prometheus and potentially exposing all metrics in prometheus compatible format would be awesome but would need more time to implement I guess.