HACKER Q&A
📣 prmph

Recommendations for simple performance monitoring infrastructure


We are looking for recommendations for a simple, maintainable solution for monitoring performance in our Node web app hosted on Heroku.

Our needs are simple: an API that we can call from anywhere (in-app, from external test agents, etc.) to report/store a measurement according to our own custom structure, and a web-based dashboard where we can view the data (with history).

Is there any solution (preferably open-source that can be self hosted) that offers these features? Alternatively, is there a service that allows to run, store, and analyze ongoing reports from Google PageSpeed Insights or WebPageTest? Or would it be better to roll our own solution?

We strongly prefer the most simple software that meets these requirements. There are a huge number of (mostly too complex) commercial solutions out there, and it is tough to sort through them all to see how they provide these features in a simple way.


  👤 XCSme Accepted Answer ✓
For monitoring we ended up using collectd + Grafana, but it takes a while to set it up and make it work, it's probably better to go with an external service if you don't want to spend time. We also used a bit https://pm2.keymetrics.io/ monitoring, it's pretty nice, but it becomes really expensive if you have more than 2-3 servers.

👤 ankitnayan
Hosting your own solution on Heroku might be costly and not worth maintaining. Go for commercial products like Graphite or Collectd + Grafana if all you need is to send your own custom structured metrics. If you need APM capabilities, checkout DataDog

👤 karmakaze
I don't use Heroku, but for metrics/monitoring prefer to use DataDog. There is a Heroku buildpack for DataDog. For small dyno sizes the DataDog agent may have some impact so check performance externally before/after (by making requests over the network).


👤 pranay01
What metrics do you want to monitor? Are these things like latency, error rates etc? Or more like dyno memory usage, cpu usage and so on?