Module sbroker_overload_meter

Sets a SASL alarm_handler alarm when the process's message queue is slow for an interval.

Behaviours: sbroker_meter.

Description

Sets a SASL alarm_handler alarm when the process's message queue is slow for an interval. Once the message queue becomes fast for an interval the alarm is cleared.

sbroker_overload_meter can be used as the sbroker_meter in a sbroker or a sregulator. Its argument is of the form:
  {Target :: non_neg_integer(), Interval :: pos_integer(), AlarmId :: any()}

Target is the target sojourn time of the message queue in milliseconds. The meter will set the alarm AlarmId in alarm_handler if the sojourn time of the message queue is above the target for Interval milliseconds. Once set if the sojourn time is below Target for Interval milliseconds the alarm is cleared. The description of the alarm is {message_queue_slow, Pid} where Pid is the pid() of the process.

This meter detects when the process is receiving more requests than it can handle and not whether a sbroker_queue is congested. If a sbroker_queue becomes congested it will drop requests to clear the congestion, causing a congestion alarm to be cleared very quickly.

Generated by EDoc, Sep 29 2016, 17:17:28.