What metrics about your Phoenix app would you like tracked?

Hey everyone,

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?

Thanks,
Manuel

4 Likes

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). ^.^

3 Likes

I like the idea of Awstats in a Phoenix app too :023:

3 Likes

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 :slight_smile: Are there any metrics from it that would be more important than others?

1 Like

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. :slight_smile:

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. :slight_smile:

1 Like

number of messages in inbox. Because this is a bottleneck or a problem coming.

2 Likes

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.

1 Like

no idea. :etop and :observer give it, but i don’t know if they have another way to do it than lookup all the process…

1 Like

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.

1 Like

Oh no i mean per individual process. What may be interesting is to get the max we have. Or at top quartile, something like that

2 Likes

Max ram used in each process type to make it easier to identify where to cap it

2 Likes

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 :slight_smile:

3 Likes