@cryptotaxi247 / netdata-1 / commits / d6371adc1

Add uptime badge to FreeBSD plugin

Vladimir Kobal committed Jan 13, 2017 at 02:22 UTC d6371adc12098717a664d44ce05fb8f143fedb18
1 file changed +28 -1
src/freebsd_sysctl.c
+28 -1
@@ -35,6 +35,8 @@
35 #include <netinet/icmp6.h>
36 // NEEDED BY do_space, do_inodes
37 #include <sys/mount.h>
38 +// NEEDED BY do_uptime
39 +#include <time.h>
40
41 #define KILO_FACTOR 1024
42 #define MEGA_FACTOR 1048576 // 1024 * 1024
@@ -62,7 +64,7 @@ int do_freebsd_sysctl(int update_every, usec_t dt) {
64 do_ip_packets = -1, do_ip_fragsout = -1, do_ip_fragsin = -1, do_ip_errors = -1,
65 do_ip6_packets = -1, do_ip6_fragsout = -1, do_ip6_fragsin = -1, do_ip6_errors = -1,
66 do_icmp6 = -1, do_icmp6_redir = -1, do_icmp6_errors = -1, do_icmp6_echos = -1, do_icmp6_router = -1,
65 - do_icmp6_neighbor = -1, do_icmp6_types = -1, do_space = -1, do_inodes = -1;
67 + do_icmp6_neighbor = -1, do_icmp6_types = -1, do_space = -1, do_inodes = -1, do_uptime = -1;
68
69 if (unlikely(do_cpu == -1)) {
70 do_cpu = config_get_boolean("plugin:freebsd:sysctl", "cpu utilization", 1);
@@ -116,6 +118,7 @@ int do_freebsd_sysctl(int update_every, usec_t dt) {
118 do_icmp6_types = config_get_boolean_ondemand("plugin:freebsd:sysctl", "icmp types", CONFIG_ONDEMAND_ONDEMAND);
119 do_space = config_get_boolean("plugin:freebsd:sysctl", "space usage for all disks", 1);
120 do_inodes = config_get_boolean("plugin:freebsd:sysctl", "inodes usage for all disks", 1);
121 + do_uptime = config_get_boolean("plugin:macos:sysctl", "system uptime", 1);
122 }
123
124 RRDSET *st;
@@ -269,6 +272,9 @@ int do_freebsd_sysctl(int update_every, usec_t dt) {
272 int mntsize;
273 char mntonname[MNAMELEN + 1];
274
275 + // NEEDED BY: do_uptime
276 + struct timespec boot_time, cur_time;
277 +
278 // --------------------------------------------------------------------
279
280 if (last_loadavg_usec <= dt) {
@@ -2174,5 +2180,26 @@ int do_freebsd_sysctl(int update_every, usec_t dt) {
2180 }
2181 }
2182
2183 + // --------------------------------------------------------------------
2184 +
2185 + if (likely(do_uptime)) {
2186 + if (unlikely(GETSYSCTL("kern.boottime", boot_time))) {
2187 + do_uptime = 0;
2188 + error("DISABLED: system.uptime");
2189 + } else {
2190 + clock_gettime(CLOCK_REALTIME, &cur_time);
2191 + st = rrdset_find("system.uptime");
2192 +
2193 + if(unlikely(!st)) {
2194 + st = rrdset_create("system", "uptime", NULL, "uptime", NULL, "System Uptime", "seconds", 1000, update_every, RRDSET_TYPE_LINE);
2195 + rrddim_add(st, "uptime", NULL, 1, 1, RRDDIM_ABSOLUTE);
2196 + }
2197 + else rrdset_next(st);
2198 +
2199 + rrddim_set(st, "uptime", cur_time.tv_sec - boot_time.tv_sec);
2200 + rrdset_done(st);
2201 + }
2202 + }
2203 +
2204 return 0;
2205 }