@cryptotaxi247 / netdata-1 / commits / 3c8049dae

Add CPU frequency chart to FreeBSD plugin

Vladimir Kobal committed Oct 9, 2017 at 21:58 UTC 3c8049dae31c5ac00e342917f0cf8628cbfb1e2b
3 files changed +45
src/freebsd_sysctl.c
+43
@@ -442,6 +442,49 @@ int do_dev_cpu_temperature(int update_every, usec_t dt) {
442 return 0;
443 }
444
445 +// --------------------------------------------------------------------------------------------------------------------
446 +// dev.cpu.0.freq
447 +
448 +int do_dev_cpu_0_freq(int update_every, usec_t dt) {
449 + (void)dt;
450 + static int mib[4] = {0, 0, 0, 0};
451 + int cpufreq;
452 +
453 + if (unlikely(GETSYSCTL_SIMPLE("dev.cpu.0.freq", mib, cpufreq))) {
454 + error("DISABLED: cpu.scaling_cur_freq chart");
455 + error("DISABLED: dev.cpu.0.freq module");
456 + return 1;
457 + } else {
458 +
459 + // --------------------------------------------------------------------
460 +
461 + static RRDSET *st = NULL;
462 + static RRDDIM *rd = NULL;
463 +
464 + if (unlikely(!st)) {
465 + st = rrdset_create_localhost("cpu",
466 + "scaling_cur_freq",
467 + NULL,
468 + "cpufreq",
469 + NULL,
470 + "Current CPU Scaling Frequency",
471 + "MHz",
472 + 5003,
473 + update_every,
474 + RRDSET_TYPE_LINE
475 + );
476 +
477 + rd = rrddim_add(st, "frequency", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE);
478 + }
479 + else rrdset_next(st);
480 +
481 + rrddim_set_by_pointer(st, rd, cpufreq);
482 + rrdset_done(st);
483 + }
484 +
485 + return 0;
486 +}
487 +
488 // --------------------------------------------------------------------------------------------------------------------
489 // hw.intrcnt
490
src/plugin_freebsd.c
+1
@@ -37,6 +37,7 @@ static struct freebsd_module {
37 // CPU metrics
38 { .name = "kern.cp_times", .dim = "cp_times", .enabled = 1, .func = do_kern_cp_times },
39 { .name = "dev.cpu.temperature", .dim = "cpu_temperature", .enabled = 1, .func = do_dev_cpu_temperature },
40 + { .name = "dev.cpu.0.freq", .dim = "cpu_frequency", .enabled = 1, .func = do_dev_cpu_0_freq },
41
42 // disk metrics
43 { .name = "kern.devstat", .dim = "kern_devstat", .enabled = 1, .func = do_kern_devstat },
src/plugin_freebsd.h
+1
@@ -18,6 +18,7 @@ extern int do_vm_vmtotal(int update_every, usec_t dt);
18 extern int do_kern_cp_time(int update_every, usec_t dt);
19 extern int do_kern_cp_times(int update_every, usec_t dt);
20 extern int do_dev_cpu_temperature(int update_every, usec_t dt);
21 +extern int do_dev_cpu_0_freq(int update_every, usec_t dt);
22 extern int do_hw_intcnt(int update_every, usec_t dt);
23 extern int do_vm_stats_sys_v_intr(int update_every, usec_t dt);
24 extern int do_vm_stats_sys_v_soft(int update_every, usec_t dt);