| 1 | // SPDX-License-Identifier: GPL-3.0-or-later |
| 2 | |
| 3 | #include "plugin_proc.h" |
| 4 | |
| 5 | int do_proc_uptime(int update_every, usec_t dt) { |
| 6 | (void)dt; |
| 7 | |
| 8 | static const char *uptime_filename = NULL; |
| 9 | if(!uptime_filename) { |
| 10 | char filename[FILENAME_MAX + 1]; |
| 11 | snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/uptime"); |
| 12 | |
| 13 | uptime_filename = inicfg_get(&netdata_config, "plugin:proc:/proc/uptime", "filename to monitor", filename); |
| 14 | } |
| 15 | |
| 16 | static RRDSET *st = NULL; |
| 17 | static RRDDIM *rd = NULL; |
| 18 | |
| 19 | if(unlikely(!st)) { |
| 20 | |
| 21 | st = rrdset_create_localhost( |
| 22 | "system" |
| 23 | , "uptime" |
| 24 | , NULL |
| 25 | , "uptime" |
| 26 | , NULL |
| 27 | , "System Uptime" |
| 28 | , "seconds" |
| 29 | , PLUGIN_PROC_NAME |
| 30 | , "/proc/uptime" |
| 31 | , NETDATA_CHART_PRIO_SYSTEM_UPTIME |
| 32 | , update_every |
| 33 | , RRDSET_TYPE_LINE |
| 34 | ); |
| 35 | |
| 36 | rd = rrddim_add(st, "uptime", NULL, 1, 1000, RRD_ALGORITHM_ABSOLUTE); |
| 37 | } |
| 38 | |
| 39 | rrddim_set_by_pointer(st, rd, uptime_msec(uptime_filename)); |
| 40 | rrdset_done(st); |
| 41 | return 0; |
| 42 | } |