Correct cycle for rrddim in CPU temperature chart
Vladimir Kobal committed
Aug 15, 2017 at 15:22 UTC
092c387fdbe2770bc7e4d63442274087c5b2d2cb
1 file changed
+18
-16
src/freebsd_sysctl.c
+18
-16
@@ -408,29 +408,31 @@ int do_dev_cpu_temperature(int update_every, usec_t dt) {
408
memset(&rd_pcpu_temperature[old_number_of_cpus], 0, sizeof(RRDDIM) * (number_of_cpus - old_number_of_cpus));
409
}
410
411
- for (i = 0; i < number_of_cpus; i++) {
412
- if (unlikely(!st)) {
413
- st = rrdset_create_localhost("cpu",
414
- "temperature",
415
- NULL,
416
- "temperature",
417
- "cpu.temperatute",
418
- "Core temperature",
419
- "degree",
420
- 1050,
421
- update_every,
422
- RRDSET_TYPE_STACKED
423
- );
424
-
411
+ if (unlikely(!st)) {
412
+ st = rrdset_create_localhost("cpu",
413
+ "temperature",
414
+ NULL,
415
+ "temperature",
416
+ "cpu.temperatute",
417
+ "Core temperature",
418
+ "degree",
419
+ 1050,
420
+ update_every,
421
+ RRDSET_TYPE_STACKED
422
+ );
423
+ } else rrdset_next(st);
424
425
+ for (i = 0; i < number_of_cpus; i++) {
426
+ if (unlikely(!rd_pcpu_temperature[i])) {
427
sprintf(char_rd, "cpu%d.temp", i);
428
rd_pcpu_temperature[i] = rrddim_add(st, char_rd, NULL, 1, 1, RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL);
428
- } else rrdset_next(st);
429
+ }
430
431
rrddim_set_by_pointer(st, rd_pcpu_temperature[i], pcpu_temperature[i]);
431
- rrdset_done(st);
432
}
433
434
+ rrdset_done(st);
435
+
436
old_number_of_cpus = number_of_cpus;
437
438
return 0;