Download the PHP package innmind/homeostasis without Composer
On this page you can find all versions of the php package innmind/homeostasis. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download innmind/homeostasis
More information about innmind/homeostasis
Files in innmind/homeostasis
Package homeostasis
Short Description App health regulator
License MIT
Homepage http://github.com/Innmind/Homeostasis
Informations about the package homeostasis
Homeostasis
This lib is a mechanism to collect indicators from various sensors of your app (cpu usage, errors in logs, ...) and determine what action to take depending on the health of the system. For example if the app takes too much cpu for too long you should reduce the number of processes handled by the server.
In essence the process is always like this: collect sensor values => determine strategy => call actuators
.
Note: no actuators is implemented in this library because these are application specific so it's up to you to know how to regulate your app.
Usage
Above we defined a regulator that collects values from the cpu usage and the errors from the symfony logs. Each sensor is given the same importance/weight.
A sensor must return a value between 0
and 1
, 0
means there is not enough activity and 1
means there's too much. So the obvious goal is that the overall value tends toward 0.5
. But as for each sensor the way to calculate this value is different and non linear, you an specify a polynom to modulate this. In the example above we specified a linear polynom for both cpu and logs but you should change those as not enough errors in the logs makes no sense; polynoms should look something like this:
Finally, the ModulateStateHistory
wrap is here to erase part of the history otherwise the system would have a hard time to find the tendency in the activity.
All versions of homeostasis with dependencies
innmind/immutable Version ~3.5
innmind/math Version ~5.0
innmind/time-continuum Version ~2.2
innmind/filesystem Version ~4.0
innmind/server-status Version ~2.0
innmind/log-reader Version ~4.0
innmind/json Version ^1.2