查看源码 alarm_handler (sasl v4.2.2)
报警处理进程
报警处理进程是一个 gen_event
事件管理器进程,它接收系统中的报警。此进程并非旨在成为完整的报警处理器。它定义了一个可以发送报警的位置。在启动时,报警处理程序中会安装一个简单的事件处理程序,但鼓励用户编写并安装自己的处理程序。
简单的事件处理程序会将所有报警作为信息报告发送到错误日志记录器,并将所有报警保存到列表中。此列表可以传递给用户定义的事件处理程序,该处理程序可以稍后安装。如果生成大量报警,列表可能会变得很大。这是安装更好的用户定义处理程序的好理由。
提供了设置和清除报警的函数。报警格式由用户定义。例如,可以定义一个用于 SNMP 的事件处理程序,以及一个报警管理信息库 (MIB)。
报警处理程序是 SASL 应用程序的一部分。
在为报警处理程序编写新的事件处理程序时,必须处理以下事件
{set_alarm, {AlarmId, AlarmDescr}}
- 此事件由alarm_handler:set_alarm({AlarmId, AlarmDecsr})
生成。{clear_alarm, AlarmId}
- 此事件由alarm_handler:clear_alarm(AlarmId)
生成。
默认的简单处理程序名为 alarm_handler
,可以通过调用 gen_event:swap_handler/3
来交换,如下所示:gen_event:swap_handler(alarm_handler, {alarm_handler, swap}, {NewHandler, Args})
。 将会调用 NewHandler:init({Args, {alarm_handler, Alarms}})
。有关更多详细信息,请参阅 STDLIB 中的 gen_event
。
另请参阅
摘要
类型
函数
向所有事件处理程序发送事件 clear_alarm
。
收到此事件时,默认的简单处理程序会清除具有 id AlarmId
的最新接收到的报警。
-spec get_alarms() -> [alarm()].
返回所有活动报警的列表。此函数只能在安装了简单处理程序时使用。
向所有事件处理程序发送事件 set_alarm
。
收到此事件时,默认的简单处理程序会存储报警。AlarmId
标识报警,并在清除报警时使用。