Feature requestED: monitoring Nginx from the outside

François Battail fb at francois.battail.name
Thu May 1 16:42:36 MSD 2008

Le jeudi 01 mai 2008 à 11:39 +0200, Manlio Perillo a écrit :

> Each variable will be correct, but since you are writing the value to a 
> shared memory location not atomically, the variable as read by the 
> client will not be correct.

Yes, I'm aware of this, but at this time I don't know which system calls
to use to be compatible with other OSes, so assume there will be a
critical section (for example a mutex/spin lock in shared memory) and
that the script must use it prior reading data.

> Moreover it really does not make sense to write in a shared memory if 
> you want to support monitoring tools!
> Just write a module like the stub_status module!

Sorry, but I do not understand what you mean. I just want to provide
something like /proc (on Linux) which is used by many monitoring tools.

> Finally there is one last problem.
> Nginx uses only a few shared variables (the one handled the the 
> stub_status module).
> All other variables are private to each worker process.
> This means that probably your shared memory location will contain values 
> not very useful.

I agree. It's why I provide a very simple API to help migrating useful
data to the monitoring area, of course it's not transparent and
variables need to be ngx_atomic_t, not private. But that way it will be
easy to add monitoring support if *needed*.

For example gzip compress ratio can be compared to CPU use in mid/long
term; should I use gzip level 9 or 1 for *my* application?
It could be done if modules provide the possibility to monitor useful
variables if needed. It's a framework with a very low hit on
performance; I can change the API in such way that if monitoring is not
enabled, then the module will know that it should use private variable
instead of ngx_atomic_t, but I agree it's not completly transparent.

Thank you for your input, I'm listening and it's open ;-)

Best regards.

More information about the nginx mailing list