proc_uptime.c 1.1 KB

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