Can anyone tell me how I may get
uwsgitop to monitor all of my vassals in my emperor-vassal setup in one shot?
I have an emperor-vassal setup for my uWSGI server, and I need to monitor all my vassals. I could always check my application logs for the various data, but it is more convenient to have a real-time updating, comprehensive display of all statistics.
So, I tried a couple of things:
I created a common .ini file which contains the following:
[uwsgi] stats = stats_vassal.sock
Then, in each vassal's .ini file I include that common .ini file. The problem with this approach is that I don't get any meaningful data when I run
stats_vassal.sockfile. My hypothesis as to why this is happening is that the data in that socket keeps getting overwritten by stats from some vassal that isn't in use.
So then I switched to....
In each vassal's .ini file, I set an option
stats = stats_%n.sock. Now, I can run
stats_*.sockfile to monitor that specific vassal.
But I want to be able to monitor all vassals in one go.
uwsgitopseems to accept only one argument.
I've looked into uWSGI's Metrics subsystem, and the "file" stats pusher seems to be what I want since it keeps appending to one file. However, when I tried to put
stats-push = file:path=stats_%n.sock,freq=1 in each of my vassal .ini files OR when I tried to put
stats-push = file:path=stats_vassal.sock,freq=1 in my common vassal .ini file, I get the following error when I restart uWSGI:
unable to find "file" stats_pusher
I then tried to include the
stats_pusher_file plugin in the same .ini file, but got the following error:
!!! UNABLE to load uWSGI plugin: ./stats_pusher_file_plugin.so: cannot open shared object file: No such file or directory !!!
And this is where I hit a dead end.