I’m working on a Phoenix monitoring project and I’m wondering what Elixir / Erlang specific metrics people are interested in, besides of the usual “how long did that controller take” and “how long did that database query need”.
I’m thinking of basically what recon’s node stats function returns:
run queue and error_logger queue size
memory by processes, atoms, binaries, and ets tables
bytes in and out of the node
number of reductions
Does that make sense? Would you like to track anything else?
Well Wobserver on hex.pm came out recently, it shows most of what :observer does but in the browser, it has an API to hook in to as well so could use it as a base or at least to see how it works.
As for awstats, about everything is useful, and at least based on the last time I saw google analytics it shows a *whole*lot*more*, but google analytics shows a couple of things that it does not, all combined would be nice, but I do like to look at all of it.
That is a great idea. Do you know of any way to get (node-) global data about that? I’ve only seen this metric reported by process, which would be quite complicated to implement with what I’m building right now.
They do? I only found it number of messages for individual processes in both :etop and :observer. Can you point me to where it is displayed for the whole node? Maybe from there I can figure out how they get to that value.
The project is currently in a closed alpha (you can sign up for the waitlist at https://pryin.io) and it’s not actually phoenix-only. You could still use it to keep track of beam metrics like how much memory is used and by what (ETS, atoms, binary, …), data about garbage collection, processes (number of processes, reductions, scheduler usage, …).
If you connect your phoenix app, you get metrics about how long controller and channels take, which ecto queries are run (and how long they take), and a lot more