- if(likely(do_loadavg)) {
- st = rrdset_find_byname("system.load");
- if(unlikely(!st)) {
- st = rrdset_create("system", "load", NULL, "load", NULL, "System Load Average", "load", 100, (update_every < MIN_LOADAVG_UPDATE_EVERY)?MIN_LOADAVG_UPDATE_EVERY:update_every, RRDSET_TYPE_LINE);
-
- rrddim_add(st, "load1", NULL, 1, 1000, RRDDIM_ABSOLUTE);
- rrddim_add(st, "load5", NULL, 1, 1000, RRDDIM_ABSOLUTE);
- rrddim_add(st, "load15", NULL, 1, 1000, RRDDIM_ABSOLUTE);
+ if(last_loadavg_usec <= dt) {
+ if(likely(do_loadavg)) {
+ if(unlikely(!load_chart)) {
+ load_chart = rrdset_find_byname("system.load");
+ if(unlikely(!load_chart)) {
+ load_chart = rrdset_create("system", "load", NULL, "load", NULL, "System Load Average", "load", 100, (update_every < MIN_LOADAVG_UPDATE_EVERY) ? MIN_LOADAVG_UPDATE_EVERY : update_every, RRDSET_TYPE_LINE);
+ rrddim_add(load_chart, "load1", NULL, 1, 1000, RRDDIM_ABSOLUTE);
+ rrddim_add(load_chart, "load5", NULL, 1, 1000, RRDDIM_ABSOLUTE);
+ rrddim_add(load_chart, "load15", NULL, 1, 1000, RRDDIM_ABSOLUTE);
+ }
+ }
+ else
+ rrdset_next(load_chart);
+
+ rrddim_set(load_chart, "load1", (collected_number) (load1 * 1000));
+ rrddim_set(load_chart, "load5", (collected_number) (load5 * 1000));
+ rrddim_set(load_chart, "load15", (collected_number) (load15 * 1000));
+ rrdset_done(load_chart);