@cryptotaxi247 / netdata-1 / commits / cf1597811

Separate uptime module

Vladimir Kobal committed Mar 9, 2017 at 19:26 UTC cf1597811865739b265c00e91d1a1c661ff8e880
3 files changed +40 -25
src/freebsd_sysctl.c
+38 -25
@@ -1188,6 +1188,42 @@ int do_kern_ipc_msq(int update_every, usec_t dt) {
1188 return 0;
1189 }
1190
1191 +// --------------------------------------------------------------------------------------------------------------------
1192 +// uptime
1193 +
1194 +int do_uptime(int update_every, usec_t dt) {
1195 + struct timespec up_time;
1196 +
1197 + clock_gettime(CLOCK_UPTIME, &up_time);
1198 +
1199 + // --------------------------------------------------------------------
1200 +
1201 + static RRDSET *st = NULL;
1202 + static RRDDIM *rd = NULL;
1203 +
1204 + if(unlikely(!st)) {
1205 + st = rrdset_create_localhost("system",
1206 + "uptime",
1207 + NULL,
1208 + "uptime",
1209 + NULL,
1210 + "System Uptime",
1211 + "seconds",
1212 + 1000,
1213 + update_every,
1214 + RRDSET_TYPE_LINE
1215 + );
1216 +
1217 + rd = rrddim_add(st, "uptime", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
1218 + }
1219 + else rrdset_next(st);
1220 +
1221 + rrddim_set_by_pointer(st, rd, up_time.tv_sec);
1222 + rrdset_done(st);
1223 +
1224 + return 0;
1225 +}
1226 +
1227 // --------------------------------------------------------------------------------------------------------------------
1228 // old sources
1229
@@ -1200,9 +1236,9 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
1236 do_ip_packets = -1, do_ip_fragsout = -1, do_ip_fragsin = -1, do_ip_errors = -1,
1237 do_ip6_packets = -1, do_ip6_fragsout = -1, do_ip6_fragsin = -1, do_ip6_errors = -1,
1238 do_icmp6 = -1, do_icmp6_redir = -1, do_icmp6_errors = -1, do_icmp6_echos = -1, do_icmp6_router = -1,
1203 - do_icmp6_neighbor = -1, do_icmp6_types = -1, do_space = -1, do_inodes = -1, do_uptime = -1;
1239 + do_icmp6_neighbor = -1, do_icmp6_types = -1, do_space = -1, do_inodes = -1;
1240
1205 - if (unlikely(do_uptime == -1)) {
1241 + if (unlikely(do_disk_io == -1)) {
1242 do_disk_io = config_get_boolean("plugin:freebsd:sysctl", "stats for all disks", 1);
1243 do_netisr = config_get_boolean("plugin:freebsd:sysctl", "netisr", 1);
1244 do_netisr_per_core = config_get_boolean("plugin:freebsd:sysctl", "netisr per core", 1);
@@ -1236,17 +1272,13 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
1272 do_icmp6_types = config_get_boolean_ondemand("plugin:freebsd:sysctl", "icmp types", CONFIG_BOOLEAN_AUTO);
1273 do_space = config_get_boolean("plugin:freebsd:sysctl", "space usage for all disks", 1);
1274 do_inodes = config_get_boolean("plugin:freebsd:sysctl", "inodes usage for all disks", 1);
1239 - do_uptime = config_get_boolean("plugin:freebsd:sysctl", "system uptime", 1);
1275 }
1276
1277 RRDSET *st;
1243 - RRDDIM *rd;
1278
1279 int ncpus;
1280 int i, n;
1247 - void *p;
1281 int common_error = 0;
1249 - size_t size;
1282 char title[4096 + 1];
1283
1284 // NEEDED BY: do_disk_io
@@ -1325,9 +1357,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
1357 int mntsize;
1358 char mntonname[MNAMELEN + 1];
1359
1328 - // NEEDED BY: do_uptime
1329 - struct timespec up_time;
1330 -
1360 // --------------------------------------------------------------------
1361
1362 if (likely(do_disk_io)) {
@@ -2612,21 +2641,5 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
2641 }
2642 }
2643
2615 - // --------------------------------------------------------------------
2616 -
2617 - if (likely(do_uptime)) {
2618 - clock_gettime(CLOCK_UPTIME, &up_time);
2619 - st = rrdset_find_localhost("system.uptime");
2620 -
2621 - if(unlikely(!st)) {
2622 - st = rrdset_create_localhost("system", "uptime", NULL, "uptime", NULL, "System Uptime", "seconds", 1000, update_every, RRDSET_TYPE_LINE);
2623 - rrddim_add(st, "uptime", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
2624 - }
2625 - else rrdset_next(st);
2626 -
2627 - rrddim_set(st, "uptime", up_time.tv_sec);
2628 - rrdset_done(st);
2629 - }
2630 -
2644 return 0;
2645 }
src/plugin_freebsd.c
+1
@@ -30,6 +30,7 @@ static struct freebsd_module {
30 { .name = "kern.ipc.sem", .dim = "semaphores", .enabled = 1, .func = do_kern_ipc_sem },
31 { .name = "kern.ipc.shm", .dim = "shared_memory", .enabled = 1, .func = do_kern_ipc_shm },
32 { .name = "kern.ipc.msq", .dim = "message_queues", .enabled = 1, .func = do_kern_ipc_msq },
33 + { .name = "uptime", .dim = "uptime", .enabled = 1, .func = do_uptime },
34
35 // CPU metrics
36 { .name = "kern.cp_times", .dim = "cp_times", .enabled = 1, .func = do_kern_cp_times },
src/plugin_freebsd.h
+1
@@ -23,6 +23,7 @@ extern int do_vm_stats_sys_v_pgfaults(int update_every, usec_t dt);
23 extern int do_kern_ipc_sem(int update_every, usec_t dt);
24 extern int do_kern_ipc_shm(int update_every, usec_t dt);
25 extern int do_kern_ipc_msq(int update_every, usec_t dt);
26 +extern int do_uptime(int update_every, usec_t dt);
27
28 extern int do_freebsd_sysctl_old(int update_every, usec_t dt);
29