X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fload.c;h=83aca5eed46e5353b452fa1d63a9e264cf9680a2;hp=53854d148868d0e16f87e3c5f6b2c5653417e6da;hb=a9e50e9e30ecde17e167e271060c8183bfcbf407;hpb=e1fda36ff7e4b5f508b630b614b182e298d91fb7 diff --git a/src/load.c b/src/load.c index 53854d14..83aca5ee 100644 --- a/src/load.c +++ b/src/load.c @@ -38,183 +38,156 @@ #endif #if HAVE_STATGRAB_H -# include +#include #endif #ifdef HAVE_GETLOADAVG #if !defined(LOADAVG_1MIN) || !defined(LOADAVG_5MIN) || !defined(LOADAVG_15MIN) -#define LOADAVG_1MIN 0 -#define LOADAVG_5MIN 1 +#define LOADAVG_1MIN 0 +#define LOADAVG_5MIN 1 #define LOADAVG_15MIN 2 #endif #endif /* defined(HAVE_GETLOADAVG) */ #ifdef HAVE_PERFSTAT -# include /* AIX 5 */ -# include -# include +#include +#include /* AIX 5 */ +#include #endif /* HAVE_PERFSTAT */ static _Bool report_relative_load = 0; -static const char *config_keys[] = -{ - "ReportRelative" -}; -static int config_keys_num = STATIC_ARRAY_SIZE (config_keys); +static const char *config_keys[] = {"ReportRelative"}; +static int config_keys_num = STATIC_ARRAY_SIZE(config_keys); -static int load_config (const char *key, const char *value) -{ - if (strcasecmp (key, "ReportRelative") == 0) +static int load_config(const char *key, const char *value) { + if (strcasecmp(key, "ReportRelative") == 0) #ifdef _SC_NPROCESSORS_ONLN - report_relative_load = IS_TRUE (value) ? 1 : 0; + report_relative_load = IS_TRUE(value) ? 1 : 0; #else - WARNING ("load plugin: The \"ReportRelative\" configuration " - "is not available, because I can't determine the " - "number of CPUS on this system. Sorry."); + WARNING("load plugin: The \"ReportRelative\" configuration " + "is not available, because I can't determine the " + "number of CPUS on this system. Sorry."); #endif - return (-1); - + return -1; } -static void load_submit (gauge_t snum, gauge_t mnum, gauge_t lnum) -{ - int cores = 0; - char errbuf[1024]; - -#ifdef _SC_NPROCESSORS_ONLN - if (report_relative_load) { - if ((cores = sysconf(_SC_NPROCESSORS_ONLN)) < 1) { - WARNING ("load: sysconf failed : %s", - sstrerror (errno, errbuf, sizeof (errbuf))); - } - } +static void load_submit(gauge_t snum, gauge_t mnum, gauge_t lnum) { + int cores = 0; + +#ifdef _SC_NPROCESSORS_ONLN + if (report_relative_load) { + if ((cores = sysconf(_SC_NPROCESSORS_ONLN)) < 1) { + WARNING("load: sysconf failed : %s", STRERRNO); + } + } #endif - if (cores > 0) { - snum /= cores; - mnum /= cores; - lnum /= cores; - } - - value_list_t vl = VALUE_LIST_INIT; - value_t values[] = { - { .gauge = snum }, - { .gauge = mnum }, - { .gauge = lnum }, - }; - - vl.values = values; - vl.values_len = STATIC_ARRAY_SIZE (values); - - sstrncpy (vl.plugin, "load", sizeof (vl.plugin)); - sstrncpy (vl.type, "load", sizeof (vl.type)); - - if (cores > 0) { - sstrncpy(vl.type_instance, "relative", - sizeof (vl.type_instance)); - } - - plugin_dispatch_values (&vl); + if (cores > 0) { + snum /= cores; + mnum /= cores; + lnum /= cores; + } + + value_list_t vl = VALUE_LIST_INIT; + value_t values[] = { + {.gauge = snum}, {.gauge = mnum}, {.gauge = lnum}, + }; + + vl.values = values; + vl.values_len = STATIC_ARRAY_SIZE(values); + + sstrncpy(vl.plugin, "load", sizeof(vl.plugin)); + sstrncpy(vl.type, "load", sizeof(vl.type)); + + if (cores > 0) { + sstrncpy(vl.type_instance, "relative", sizeof(vl.type_instance)); + } + + plugin_dispatch_values(&vl); } -static int load_read (void) -{ +static int load_read(void) { #if defined(HAVE_GETLOADAVG) - double load[3]; - - if (getloadavg (load, 3) == 3) - load_submit (load[LOADAVG_1MIN], load[LOADAVG_5MIN], load[LOADAVG_15MIN]); - else - { - char errbuf[1024]; - WARNING ("load: getloadavg failed: %s", - sstrerror (errno, errbuf, sizeof (errbuf))); - } + double load[3]; + + if (getloadavg(load, 3) == 3) + load_submit(load[LOADAVG_1MIN], load[LOADAVG_5MIN], load[LOADAVG_15MIN]); + else { + WARNING("load: getloadavg failed: %s", STRERRNO); + } /* #endif HAVE_GETLOADAVG */ #elif defined(KERNEL_LINUX) - gauge_t snum, mnum, lnum; - FILE *loadavg; - char buffer[16]; - - char *fields[8]; - int numfields; - - if ((loadavg = fopen ("/proc/loadavg", "r")) == NULL) - { - char errbuf[1024]; - WARNING ("load: fopen: %s", - sstrerror (errno, errbuf, sizeof (errbuf))); - return (-1); - } - - if (fgets (buffer, 16, loadavg) == NULL) - { - char errbuf[1024]; - WARNING ("load: fgets: %s", - sstrerror (errno, errbuf, sizeof (errbuf))); - fclose (loadavg); - return (-1); - } - - if (fclose (loadavg)) - { - char errbuf[1024]; - WARNING ("load: fclose: %s", - sstrerror (errno, errbuf, sizeof (errbuf))); - } - - numfields = strsplit (buffer, fields, 8); - - if (numfields < 3) - return (-1); - - snum = atof (fields[0]); - mnum = atof (fields[1]); - lnum = atof (fields[2]); - - load_submit(snum, mnum, lnum); + gauge_t snum, mnum, lnum; + FILE *loadavg; + char buffer[16]; + + char *fields[8]; + int numfields; + + if ((loadavg = fopen("/proc/loadavg", "r")) == NULL) { + WARNING("load: fopen: %s", STRERRNO); + return -1; + } + + if (fgets(buffer, 16, loadavg) == NULL) { + WARNING("load: fgets: %s", STRERRNO); + fclose(loadavg); + return -1; + } + + if (fclose(loadavg)) { + WARNING("load: fclose: %s", STRERRNO); + } + + numfields = strsplit(buffer, fields, 8); + + if (numfields < 3) + return -1; + + snum = atof(fields[0]); + mnum = atof(fields[1]); + lnum = atof(fields[2]); + + load_submit(snum, mnum, lnum); /* #endif KERNEL_LINUX */ #elif HAVE_LIBSTATGRAB - gauge_t snum, mnum, lnum; - sg_load_stats *ls; + gauge_t snum, mnum, lnum; + sg_load_stats *ls; - if ((ls = sg_get_load_stats ()) == NULL) - return; + if ((ls = sg_get_load_stats()) == NULL) + return; - snum = ls->min1; - mnum = ls->min5; - lnum = ls->min15; - load_submit(snum, mnum, lnum); + snum = ls->min1; + mnum = ls->min5; + lnum = ls->min15; + load_submit(snum, mnum, lnum); /* #endif HAVE_LIBSTATGRAB */ #elif HAVE_PERFSTAT - gauge_t snum, mnum, lnum; - perfstat_cpu_total_t cputotal; - - if (perfstat_cpu_total(NULL, &cputotal, sizeof(perfstat_cpu_total_t), 1) < 0) - { - char errbuf[1024]; - WARNING ("load: perfstat_cpu : %s", - sstrerror (errno, errbuf, sizeof (errbuf))); - return (-1); - } - - snum = (float)cputotal.loadavg[0]/(float)(1<