mgwidmann

mgwidmann

Measuring & Tuning GenStage/Flow performance

I have personally never put a flow application into production so I was wondering what others were doing with regard to measuring and tuning GenStage and Flow specific metrics. I’ve never seen anything specifically targeted at this and from my experience with GenStage/Flow it can be quite challenging to get it right. Beyond normal CPU/Memory metrics and such, what would you use to tune and monitor your flow application?

Basically, I’d like to know what others are doing to 1) Develop and tune their flow application to get the most performance out of it, and 2) Monitor and understand that performance when deployed in production.

A list of metrics I would be interested in would be something along the lines of:

  • For each producer or producer/consumer:
    • Event count buffer - average, p90 and p100
    • Time to generate new events - average & p90
    • Number of events generated - average
    • Demand count buffer - average, p90 and p100
  • For each consumer or producer/consumer:
    • Event counts processed - average, p90
    • Time to process each event - average & p90
    • Some way to determine distribution of work, not sure about this one, is it all one or two workers doing everything or is it evenly spread?

I understand you could simply put a :timer.tc(fn -> end) around each of the implementations (or something fancier with a macro) but I’m curious more about what are people using and what metrics are they tracking to tune and monitor.

First Post!

nicholasjhenry

nicholasjhenry

I would very interested to find out what path you took with this. What performance monitoring did you add? Cheers!

Where Next?

Popular in Discussions Top

jer
I’ve been using umbrellas for a while, and generally started off (on greenfield projects at least) by isolating subapps based on clearly ...
New
chuck
Let me start by stating an assumption: Phoenix is a great approach to building REST APIs. There are many reasons for this, but I will ass...
New
Nvim
Anybody knows a comprehensive comparison of Django and Phoenix, thanks for the help. Where are they similar? Where do they differ the m...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New
nunobernardes99
Hi there Elixir friends :vulcan_salute: In a recent task I was on, I needed to check in two dates which of them is the maximum and which...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New
shishini
I think this twitter post and youtube video didn’t get as much attention as I hoped I am still new to Elixir, so can’t really judge ...
New

Other popular topics Top

Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 131117 1222
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New

We're in Beta

About us Mission Statement