sbroker_overload_meter (sbroker v1.1.1)
Sets an alarm when the process's message queue is slow for an interval.
sbroker_overload_meter
can be used as a sbroker_meter
in a sbroker
or a sregulator
. It will set a SASL alarm_handler
alarm when the process's message queue is slow for an interval and clear it once the message queue becomes fast for an interval. Its argument, spec()
, is of the form: #{alarm => Alarm :: any(), % default: {overload, self()}
target => Target :: non_neg_integer(), % default: 100
interval => Interval :: pos_integer()}. % default: 1000
Alarm
is the alarm_handler
alarm that will be set/cleared by the meter (defaults to {overload, self()}
). Target
is the target sojourn time of the message queue in milliseconds (defaults to 100
). Interval
is the interval in milliseconds (defaults to 1000
) that the message queue must be above the target for the alarm to be set and below the target for the alarm to be cleared. The description of the alarm is {message_queue_slow, self()}
.
sbroker_queue
is congested. If a sbroker_queue
becomes congested it will drop requests to clear the congestion, causing a congestion alarm (if one existed) to be cleared very quickly.
Link to this section Summary
Link to this section Types
Link to this type
spec/0
Specs
spec() :: #{alarm => Alarm :: any(), target => Target :: non_neg_integer(), interval => Interval :: pos_integer()}.