I have been considering New Relic and AppSignal for a side project but would prefer something free for now. I just realized that LiveDashboard is touted for performance monitoring and I was wondering… has anyone here had a chance to use LiveDashbaord? If so, could you comment on how useful it is for monitoring production issues? (especially interested in latency and debugging)
Thank you so much.
There’s one big difference between LiveDashboard and the other solutions. LiveDashboard is live. It doesn’t store any data for later times. It’s nice for the act of debugging, but doesn’t help you in telling you that there are things to debug.
can you elaborate on this? the screenshot shows a “metrics” tab. wouldn’t that show things like request times?
It does, but it only shows new ones coming in at the time you have the dashboard open. It doesn’t show you historical data.
FWIW, this is exactly why I’ve been working on a PR and effort to get optional hooks to allow the app to provide historical information for metrics when the client initially connects… in my conception, this is probably only for last minutes or at most hours of history, and the hook wouldn’t give you any control or anything to go back further to days or weeks even if you stored it somewhere… José has indicated they are open to receiving a PR for the hook, but not to actually defaulting to or tackling storing state directly in LiveDashboard itself under any circumstances. If interested in this use case, I have a PR demoing this usage from my fork here github.com/beam-community/elixir-companies/pull/613 that’s at least functional for some simple use cases and I’m trying to prove it out and polish it there and in my fork, but definitely want more community buy-in/feedback and help getting the API right and figuring out who else is interested in this direction. My fork itself is here https://github.com/bglusman/phoenix_live_dashboard and there’s some additional discussion here Anyone running (or wanting to run) Live Dashboard in prod, I'd like to help you with custom metrics/history! and in some other places I can point to, one other thread here and one or two other PR’s into upstream dashboard
I’ll take a snippet from my blog post https://akoutmos.com/post/phoenix_live_dashboard/ as I covered this exact point there:
While LiveDashboard is an amazing tool, it is important to understand when you should/shouldn’t use it and whether or not it replaces any of your existing tools. To be clear, LiveDashboard does not replace your ELK or Prometheus+Grafana stacks. Those are purpose-built logging/monitoring tools with purpose built databases to store the data that you can query (see Structured logging in Elixir using Loki and Prometheus, PostGIS and Phoenix Part 1 for details on those topics). LiveDashboard on the other hand, does not actually persist any timeseries data or index any log messages. Instead, its focus is on presenting real-time logs and metrics to you whilst using the tool. When you close LiveDashboard, all the data captured during the duration of your session is gone.
If you are looking for something that is free (money wise), I would point you towards Prometheus and Grafana. They are both open source and well supported in the Elixir community. Check out my two part series to get some insight into setting up those tools:
Hopefully that helps!