]> arthur.barton.de Git - netdata.git/commitdiff
Separate uptime module
authorVladimir Kobal <vlad@prokk.net>
Thu, 9 Mar 2017 17:26:15 +0000 (19:26 +0200)
committerVladimir Kobal <vlad@prokk.net>
Thu, 9 Mar 2017 17:27:07 +0000 (19:27 +0200)
src/freebsd_sysctl.c
src/plugin_freebsd.c
src/plugin_freebsd.h

index e85433cdc97fab83c18bd295cb94959b9c2f7300..4238bd10b6b313b7f5e75fb63e97795dfde37e47 100644 (file)
@@ -1188,6 +1188,42 @@ int do_kern_ipc_msq(int update_every, usec_t dt) {
     return 0;
 }
 
+// --------------------------------------------------------------------------------------------------------------------
+// uptime
+
+int do_uptime(int update_every, usec_t dt) {
+    struct timespec up_time;
+
+    clock_gettime(CLOCK_UPTIME, &up_time);
+
+    // --------------------------------------------------------------------
+
+    static RRDSET *st = NULL;
+    static RRDDIM *rd = NULL;
+
+    if(unlikely(!st)) {
+        st = rrdset_create_localhost("system",
+                                     "uptime",
+                                     NULL,
+                                     "uptime",
+                                     NULL,
+                                     "System Uptime",
+                                     "seconds",
+                                     1000,
+                                     update_every,
+                                     RRDSET_TYPE_LINE
+        );
+
+        rd = rrddim_add(st, "uptime", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+    }
+    else rrdset_next(st);
+
+    rrddim_set_by_pointer(st, rd, up_time.tv_sec);
+    rrdset_done(st);
+
+    return 0;
+}
+
 // --------------------------------------------------------------------------------------------------------------------
 // old sources
 
@@ -1200,9 +1236,9 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
         do_ip_packets = -1, do_ip_fragsout = -1, do_ip_fragsin = -1, do_ip_errors = -1,
         do_ip6_packets = -1, do_ip6_fragsout = -1, do_ip6_fragsin = -1, do_ip6_errors = -1,
         do_icmp6 = -1, do_icmp6_redir = -1, do_icmp6_errors = -1, do_icmp6_echos = -1, do_icmp6_router = -1,
-        do_icmp6_neighbor = -1, do_icmp6_types = -1, do_space = -1, do_inodes = -1, do_uptime = -1;
+        do_icmp6_neighbor = -1, do_icmp6_types = -1, do_space = -1, do_inodes = -1;
 
-    if (unlikely(do_uptime == -1)) {
+    if (unlikely(do_disk_io == -1)) {
         do_disk_io              = config_get_boolean("plugin:freebsd:sysctl", "stats for all disks", 1);
         do_netisr               = config_get_boolean("plugin:freebsd:sysctl", "netisr", 1);
         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) {
         do_icmp6_types          = config_get_boolean_ondemand("plugin:freebsd:sysctl", "icmp types", CONFIG_BOOLEAN_AUTO);
         do_space                = config_get_boolean("plugin:freebsd:sysctl", "space usage for all disks", 1);
         do_inodes               = config_get_boolean("plugin:freebsd:sysctl", "inodes usage for all disks", 1);
-        do_uptime               = config_get_boolean("plugin:freebsd:sysctl", "system uptime", 1);
     }
 
     RRDSET *st;
-    RRDDIM *rd;
 
     int ncpus;
     int i, n;
-    void *p;
     int common_error = 0;
-    size_t size;
     char title[4096 + 1];
 
     // NEEDED BY: do_disk_io
@@ -1325,9 +1357,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
     int mntsize;
     char mntonname[MNAMELEN + 1];
 
-    // NEEDED BY: do_uptime
-    struct timespec up_time;
-
     // --------------------------------------------------------------------
 
     if (likely(do_disk_io)) {
@@ -2612,21 +2641,5 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
         }
     }
 
-    // --------------------------------------------------------------------
-
-    if (likely(do_uptime)) {
-            clock_gettime(CLOCK_UPTIME, &up_time);
-            st = rrdset_find_localhost("system.uptime");
-
-            if(unlikely(!st)) {
-                st = rrdset_create_localhost("system", "uptime", NULL, "uptime", NULL, "System Uptime", "seconds", 1000, update_every, RRDSET_TYPE_LINE);
-                rrddim_add(st, "uptime", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
-            }
-            else rrdset_next(st);
-
-            rrddim_set(st, "uptime", up_time.tv_sec);
-            rrdset_done(st);
-    }
-
     return 0;
 }
index bc2adbdf0a74383f8d28f2a7c5c3dc343e563485..44acde72f050cac21453f249077248be0d6f8f91 100644 (file)
@@ -30,6 +30,7 @@ static struct freebsd_module {
         { .name = "kern.ipc.sem", .dim = "semaphores", .enabled = 1, .func = do_kern_ipc_sem },
         { .name = "kern.ipc.shm", .dim = "shared_memory", .enabled = 1, .func = do_kern_ipc_shm },
         { .name = "kern.ipc.msq", .dim = "message_queues", .enabled = 1, .func = do_kern_ipc_msq },
+        { .name = "uptime", .dim = "uptime", .enabled = 1, .func = do_uptime },
 
         // CPU metrics
         { .name = "kern.cp_times", .dim = "cp_times", .enabled = 1, .func = do_kern_cp_times },
index 77e24a43545caa6a5de027ad3eb6905da1855cfa..7b282de3bdc1a2f1ab1039cdfa6ab3d128fc133d 100644 (file)
@@ -23,6 +23,7 @@ extern int do_vm_stats_sys_v_pgfaults(int update_every, usec_t dt);
 extern int do_kern_ipc_sem(int update_every, usec_t dt);
 extern int do_kern_ipc_shm(int update_every, usec_t dt);
 extern int do_kern_ipc_msq(int update_every, usec_t dt);
+extern int do_uptime(int update_every, usec_t dt);
 
 extern int do_freebsd_sysctl_old(int update_every, usec_t dt);