}
typedef struct {
+ uint8_t enabled;
uint8_t running;
uint8_t alarm;
uint32_t interval;
cpu_monitor_t cpu_monitor;
} globals;
-static uint8_t ftdm_cpu_monitor_disabled = 0;
-
enum ftdm_enum_cpu_alarm_action_flags
{
FTDM_CPU_ALARM_ACTION_WARN = (1 << 0),
ftdm_log(FTDM_LOG_ERROR, "unknown span variable '%s'\n", var);
}
} else if (!strncasecmp(cfg.category, "general", 7)) {
- if (!strncasecmp(var, "cpu_monitoring_interval", sizeof("cpu_monitoring_interval")-1)) {
+ if (!strncasecmp(var, "cpu_monitor", sizeof("cpu_monitor")-1)) {
+ if (!strncasecmp(val, "yes", 3)) {
+ globals.cpu_monitor.enabled = 1;
+ if (!globals.cpu_monitor.alarm_action_flags) {
+ globals.cpu_monitor.alarm_action_flags |= FTDM_CPU_ALARM_ACTION_WARN;
+ }
+ }
+ } else if (!strncasecmp(var, "cpu_monitoring_interval", sizeof("cpu_monitoring_interval")-1)) {
if (atoi(val) > 0) {
globals.cpu_monitor.interval = atoi(val);
} else {
ftdm_interrupt_destroy(&globals.cpu_monitor.interrupt);
}
-FT_DECLARE(void) ftdm_cpu_monitor_disable(void)
-{
- ftdm_cpu_monitor_disabled = 1;
-}
-
-
FT_DECLARE(ftdm_status_t) ftdm_global_init(void)
{
memset(&globals, 0, sizeof(globals));
ftdm_log(FTDM_LOG_NOTICE, "Modules configured: %d \n", modcount);
+ globals.cpu_monitor.enabled = 0;
globals.cpu_monitor.interval = 1000;
- globals.cpu_monitor.alarm_action_flags = FTDM_CPU_ALARM_ACTION_WARN | FTDM_CPU_ALARM_ACTION_REJECT;
+ globals.cpu_monitor.alarm_action_flags = 0;
globals.cpu_monitor.set_alarm_threshold = 80;
globals.cpu_monitor.reset_alarm_threshold = 70;
return FTDM_FAIL;
}
- if (!ftdm_cpu_monitor_disabled) {
+ if (globals.cpu_monitor.enabled) {
+ ftdm_log(FTDM_LOG_INFO, "CPU Monitor is running interval:%d lo-thres:%d hi-thres:%d\n",
+ globals.cpu_monitor.interval,
+ globals.cpu_monitor.set_alarm_threshold,
+ globals.cpu_monitor.reset_alarm_threshold);
+
if (ftdm_cpu_monitor_start() != FTDM_SUCCESS) {
return FTDM_FAIL;
}