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:
process count
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
scheduler usage
Does that make sense? Would you like to track anything else?
The usual things that :observer shows is quite nice, other than that the usual things that webservers can usually log, in addition to things that something like awstats shows (I use it a lot). ^.^
I’ve never used Awstats so far, it looks like it reports google analytics kind of data, right? What would you say are the most important metrics it returns for you?
Observer reports quite a lot, too Are there any metrics from it that would be more important than others?
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.
What about this project makes it monitoring for a phoenix app only. I would like all of those things but only one of the applications Im building is a phoenix app. The others are all phoenix free.
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