pthread_t main_thread;
+markup_format_t markup_format;
+output_format_t output_format;
+
+char *pct_mark;
+
/*
* Set the exit_upon_signal flag, because one cannot do anything in a safe
* manner in a signal handler (e.g. fprintf, which we really want to do for
}
char *sstrdup(const char *str) {
+ if (str == NULL) {
+ return NULL;
+ }
char *result = strdup(str);
exit_if_null(result, "Error: out of memory (strdup())\n");
return result;
CFG_STR("format", "%usage", CFGF_NONE),
CFG_STR("format_above_threshold", NULL, CFGF_NONE),
CFG_STR("format_above_degraded_threshold", NULL, CFGF_NONE),
+ CFG_STR("path", "/proc/stat", CFGF_NONE),
CFG_FLOAT("max_threshold", 95, CFGF_NONE),
CFG_FLOAT("degraded_threshold", 90, CFGF_NONE),
CFG_CUSTOM_ALIGN_OPT,
die("Could not create socket\n");
int interval = cfg_getint(cfg_general, "interval");
+ if (interval <= 0) {
+ die("Invalid interval attribute found in section %s, line %d: %d\n"
+ "Expected positive integer\n",
+ cfg_general->name, cfg_general->line, interval);
+ }
/* One memory page which each plugin can use to buffer output.
* Even though it’s unclean, we just assume that the user will not
CASE_SEC("cpu_usage") {
SEC_OPEN_MAP("cpu_usage");
- print_cpu_usage(json_gen, buffer, cfg_getstr(sec, "format"), cfg_getstr(sec, "format_above_threshold"), cfg_getstr(sec, "format_above_degraded_threshold"), cfg_getfloat(sec, "max_threshold"), cfg_getfloat(sec, "degraded_threshold"));
+ print_cpu_usage(json_gen, buffer, cfg_getstr(sec, "format"), cfg_getstr(sec, "format_above_threshold"), cfg_getstr(sec, "format_above_degraded_threshold"), cfg_getstr(sec, "path"), cfg_getfloat(sec, "max_threshold"), cfg_getfloat(sec, "degraded_threshold"));
SEC_CLOSE_MAP;
}
}