@cryptotaxi247 / netdata-1 / commits / 577dbe944

allow netdata to be easily relocatable

Costa Tsaousis (ktsaou) committed Feb 15, 2017 at 01:24 UTC 577dbe94496479256311a8c84909c36123b7a406
38 files changed +164 -147
CMakeLists.txt
+36 -35
@@ -10,6 +10,8 @@ find_package (Threads)
10 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wformat-signedness -Werror=format-security -DNETDATA_INTERNAL_CHECKS=1")
11
12 set(NETDATA_SOURCE_FILES
13 + src/adaptive_resortable_list.c
14 + src/adaptive_resortable_list.h
15 src/appconfig.c
16 src/appconfig.h
17 src/avl.c
@@ -30,29 +32,37 @@ set(NETDATA_SOURCE_FILES
32 src/global_statistics.h
33 src/health.c
34 src/health.h
35 + src/inlined.h
36 src/ipc.c
37 src/ipc.h
38 src/log.c
39 src/log.h
40 + src/macos_fw.c
41 + src/macos_mach_smi.c
42 + src/macos_sysctl.c
43 src/main.c
44 src/main.h
45 src/plugin_checks.c
46 src/plugin_checks.h
47 + src/plugin_freebsd.c
48 + src/plugin_freebsd.h
49 src/plugin_idlejitter.c
50 src/plugin_idlejitter.h
51 + src/plugin_macos.c
52 + src/plugin_macos.h
53 src/plugin_nfacct.c
54 src/plugin_nfacct.h
55 src/plugin_proc.c
56 src/plugin_proc.h
47 - src/plugins_d.c
48 - src/plugins_d.h
57 + src/plugin_proc_diskspace.c
58 + src/plugin_proc_diskspace.h
59 src/plugin_tc.c
60 src/plugin_tc.h
61 + src/plugins_d.c
62 + src/plugins_d.h
63 src/popen.c
64 src/popen.h
65 src/proc_diskstats.c
54 - src/procfile.c
55 - src/procfile.h
66 src/proc_interrupts.c
67 src/proc_loadavg.c
68 src/proc_meminfo.c
@@ -61,8 +71,8 @@ set(NETDATA_SOURCE_FILES
71 src/proc_net_netstat.c
72 src/proc_net_rpc_nfs.c
73 src/proc_net_rpc_nfsd.c
64 - src/proc_net_snmp6.c
74 src/proc_net_snmp.c
75 + src/proc_net_snmp6.c
76 src/proc_net_softnet_stat.c
77 src/proc_net_stat_conntrack.c
78 src/proc_net_stat_synproxy.c
@@ -71,15 +81,34 @@ set(NETDATA_SOURCE_FILES
81 src/proc_softirqs.c
82 src/proc_stat.c
83 src/proc_sys_kernel_random_entropy_avail.c
84 + src/proc_uptime.c
85 src/proc_vmstat.c
86 + src/procfile.c
87 + src/procfile.h
88 src/registry.c
89 src/registry.h
77 - src/rrd2json.c
78 - src/rrd2json.h
90 + src/registry_db.c
91 + src/registry_init.c
92 + src/registry_internals.c
93 + src/registry_internals.h
94 + src/registry_log.c
95 + src/registry_machine.c
96 + src/registry_machine.h
97 + src/registry_person.c
98 + src/registry_person.h
99 + src/registry_url.c
100 + src/registry_url.h
101 src/rrd.c
102 src/rrd.h
103 + src/rrd2json.c
104 + src/rrd2json.h
105 + src/simple_pattern.c
106 + src/simple_pattern.h
107 + src/socket.c src/socket.h
108 src/storage_number.c
109 src/storage_number.h
110 + src/sys_devices_system_edac_mc.c
111 + src/sys_devices_system_node.c
112 src/sys_fs_cgroup.c
113 src/sys_kernel_mm_ksm.c
114 src/unit_test.c
@@ -94,34 +123,6 @@ set(NETDATA_SOURCE_FILES
123 src/web_client.h
124 src/web_server.c
125 src/web_server.h
97 - src/socket.c src/socket.h
98 - src/registry_url.c
99 - src/registry_url.h
100 - src/registry_internals.h
101 - src/registry_person.c
102 - src/registry_person.h
103 - src/registry_machine.c
104 - src/registry_machine.h
105 - src/registry_internals.c
106 - src/registry_init.c
107 - src/registry_db.c
108 - src/registry_log.c
109 - src/proc_uptime.c
110 - src/sys_devices_system_edac_mc.c
111 - src/plugin_proc_diskspace.c
112 - src/plugin_proc_diskspace.h
113 - src/simple_pattern.c
114 - src/simple_pattern.h
115 - src/inlined.h
116 - src/adaptive_resortable_list.h
117 - src/adaptive_resortable_list.c
118 - src/plugin_freebsd.c
119 - src/plugin_freebsd.h
120 - src/macos_fw.c
121 - src/macos_mach_smi.c
122 - src/macos_sysctl.c
123 - src/plugin_macos.c
124 - src/plugin_macos.h
126 )
127
128 set(APPS_PLUGIN_SOURCE_FILES
src/apps_plugin.c
+17 -17
@@ -687,19 +687,19 @@ static inline int managed_log(struct pid_stat *p, uint32_t log, int status) {
687 p->log_thrown |= log;
688 switch(log) {
689 case PID_LOG_IO:
690 - error("Cannot process %s/proc/%d/io (command '%s')", global_host_prefix, p->pid, p->comm);
690 + error("Cannot process %s/proc/%d/io (command '%s')", netdata_configured_host_prefix, p->pid, p->comm);
691 break;
692
693 case PID_LOG_STATM:
694 - error("Cannot process %s/proc/%d/statm (command '%s')", global_host_prefix, p->pid, p->comm);
694 + error("Cannot process %s/proc/%d/statm (command '%s')", netdata_configured_host_prefix, p->pid, p->comm);
695 break;
696
697 case PID_LOG_CMDLINE:
698 - error("Cannot process %s/proc/%d/cmdline (command '%s')", global_host_prefix, p->pid, p->comm);
698 + error("Cannot process %s/proc/%d/cmdline (command '%s')", netdata_configured_host_prefix, p->pid, p->comm);
699 break;
700
701 case PID_LOG_FDS:
702 - error("Cannot process entries in %s/proc/%d/fd (command '%s')", global_host_prefix, p->pid, p->comm);
702 + error("Cannot process entries in %s/proc/%d/fd (command '%s')", netdata_configured_host_prefix, p->pid, p->comm);
703 break;
704
705 case PID_LOG_STAT:
@@ -760,7 +760,7 @@ static inline int read_proc_pid_cmdline(struct pid_stat *p) {
760
761 if(unlikely(!p->cmdline_filename)) {
762 char filename[FILENAME_MAX + 1];
763 - snprintfz(filename, FILENAME_MAX, "%s/proc/%d/cmdline", global_host_prefix, p->pid);
763 + snprintfz(filename, FILENAME_MAX, "%s/proc/%d/cmdline", netdata_configured_host_prefix, p->pid);
764 p->cmdline_filename = strdupz(filename);
765 }
766
@@ -813,7 +813,7 @@ static inline int read_proc_pid_stat(struct pid_stat *p) {
813
814 if(unlikely(!p->stat_filename)) {
815 char filename[FILENAME_MAX + 1];
816 - snprintfz(filename, FILENAME_MAX, "%s/proc/%d/stat", global_host_prefix, p->pid);
816 + snprintfz(filename, FILENAME_MAX, "%s/proc/%d/stat", netdata_configured_host_prefix, p->pid);
817 p->stat_filename = strdupz(filename);
818 }
819
@@ -935,7 +935,7 @@ static inline int read_proc_pid_stat(struct pid_stat *p) {
935 }
936
937 if(unlikely(debug || (p->target && p->target->debug)))
938 - fprintf(stderr, "apps.plugin: READ PROC/PID/STAT: %s/proc/%d/stat, process: '%s' on target '%s' (dt=%llu) VALUES: utime=" KERNEL_UINT_FORMAT ", stime=" KERNEL_UINT_FORMAT ", cutime=" KERNEL_UINT_FORMAT ", cstime=" KERNEL_UINT_FORMAT ", minflt=" KERNEL_UINT_FORMAT ", majflt=" KERNEL_UINT_FORMAT ", cminflt=" KERNEL_UINT_FORMAT ", cmajflt=" KERNEL_UINT_FORMAT ", threads=%d\n", global_host_prefix, p->pid, p->comm, (p->target)?p->target->name:"UNSET", p->stat_collected_usec - p->last_stat_collected_usec, p->utime, p->stime, p->cutime, p->cstime, p->minflt, p->majflt, p->cminflt, p->cmajflt, p->num_threads);
938 + fprintf(stderr, "apps.plugin: READ PROC/PID/STAT: %s/proc/%d/stat, process: '%s' on target '%s' (dt=%llu) VALUES: utime=" KERNEL_UINT_FORMAT ", stime=" KERNEL_UINT_FORMAT ", cutime=" KERNEL_UINT_FORMAT ", cstime=" KERNEL_UINT_FORMAT ", minflt=" KERNEL_UINT_FORMAT ", majflt=" KERNEL_UINT_FORMAT ", cminflt=" KERNEL_UINT_FORMAT ", cmajflt=" KERNEL_UINT_FORMAT ", threads=%d\n", netdata_configured_host_prefix, p->pid, p->comm, (p->target)?p->target->name:"UNSET", p->stat_collected_usec - p->last_stat_collected_usec, p->utime, p->stime, p->cutime, p->cstime, p->minflt, p->majflt, p->cminflt, p->cmajflt, p->num_threads);
939
940 if(unlikely(global_iterations_counter == 1)) {
941 p->minflt = 0;
@@ -973,7 +973,7 @@ static inline int read_proc_pid_statm(struct pid_stat *p) {
973
974 if(unlikely(!p->statm_filename)) {
975 char filename[FILENAME_MAX + 1];
976 - snprintfz(filename, FILENAME_MAX, "%s/proc/%d/statm", global_host_prefix, p->pid);
976 + snprintfz(filename, FILENAME_MAX, "%s/proc/%d/statm", netdata_configured_host_prefix, p->pid);
977 p->statm_filename = strdupz(filename);
978 }
979
@@ -1011,7 +1011,7 @@ static inline int read_proc_pid_io(struct pid_stat *p) {
1011
1012 if(unlikely(!p->io_filename)) {
1013 char filename[FILENAME_MAX + 1];
1014 - snprintfz(filename, FILENAME_MAX, "%s/proc/%d/io", global_host_prefix, p->pid);
1014 + snprintfz(filename, FILENAME_MAX, "%s/proc/%d/io", netdata_configured_host_prefix, p->pid);
1015 p->io_filename = strdupz(filename);
1016 }
1017
@@ -1087,7 +1087,7 @@ static inline int read_proc_stat() {
1087 static usec_t collected_usec = 0, last_collected_usec = 0;
1088
1089 if(unlikely(!ff)) {
1090 - snprintfz(filename, FILENAME_MAX, "%s/proc/stat", global_host_prefix);
1090 + snprintfz(filename, FILENAME_MAX, "%s/proc/stat", netdata_configured_host_prefix);
1091 ff = procfile_open(filename, " \t:", PROCFILE_FLAG_DEFAULT);
1092 if(unlikely(!ff)) goto cleanup;
1093 }
@@ -1406,7 +1406,7 @@ static inline void zero_pid_fds(struct pid_stat *p, int first, int size) {
1406 static inline int read_pid_file_descriptors(struct pid_stat *p) {
1407 if(unlikely(!p->fds_dirname)) {
1408 char dirname[FILENAME_MAX+1];
1409 - snprintfz(dirname, FILENAME_MAX, "%s/proc/%d/fd", global_host_prefix, p->pid);
1409 + snprintfz(dirname, FILENAME_MAX, "%s/proc/%d/fd", netdata_configured_host_prefix, p->pid);
1410 p->fds_dirname = strdupz(dirname);
1411 }
1412
@@ -1449,7 +1449,7 @@ static inline int read_pid_file_descriptors(struct pid_stat *p) {
1449 if(unlikely(p->fds[fdid] == 0)) {
1450 // we don't know this fd, get it
1451
1452 - sprintf(fdname, "%s/proc/%d/fd/%s", global_host_prefix, p->pid, de->d_name);
1452 + sprintf(fdname, "%s/proc/%d/fd/%s", netdata_configured_host_prefix, p->pid, de->d_name);
1453 ssize_t l = readlink(fdname, linkname, FILENAME_MAX);
1454 if(unlikely(l == -1)) {
1455 if(debug || (p->target && p->target->debug)) {
@@ -1886,7 +1886,7 @@ static int collect_data_for_all_processes(void) {
1886
1887 char dirname[FILENAME_MAX + 1];
1888
1889 - snprintfz(dirname, FILENAME_MAX, "%s/proc", global_host_prefix);
1889 + snprintfz(dirname, FILENAME_MAX, "%s/proc", netdata_configured_host_prefix);
1890 DIR *dir = opendir(dirname);
1891 if(!dir) return 0;
1892
@@ -3090,12 +3090,12 @@ int main(int argc, char **argv) {
3090 error_log_errors_per_period = 100;
3091 error_log_throttle_period = 3600;
3092
3093 - global_host_prefix = getenv("NETDATA_HOST_PREFIX");
3094 - if(global_host_prefix == NULL) {
3093 + netdata_configured_host_prefix = getenv("NETDATA_HOST_PREFIX");
3094 + if(netdata_configured_host_prefix == NULL) {
3095 // info("NETDATA_HOST_PREFIX is not passed from netdata");
3096 - global_host_prefix = "";
3096 + netdata_configured_host_prefix = "";
3097 }
3098 - // else info("Found NETDATA_HOST_PREFIX='%s'", global_host_prefix);
3098 + // else info("Found NETDATA_HOST_PREFIX='%s'", netdata_configured_host_prefix);
3099
3100 config_dir = getenv("NETDATA_CONFIG_DIR");
3101 if(config_dir == NULL) {
src/common.c
+11 -3
@@ -8,7 +8,15 @@
8 # define MADV_DONTFORK INHERIT_NONE
9 #endif /* __FreeBSD__ || __APPLE__*/
10
11 -char *global_host_prefix = "";
11 +char *netdata_configured_config_dir = NULL;
12 +char *netdata_configured_log_dir = NULL;
13 +char *netdata_configured_plugins_dir = NULL;
14 +char *netdata_configured_web_dir = NULL;
15 +char *netdata_configured_cache_dir = NULL;
16 +char *netdata_configured_varlib_dir = NULL;
17 +char *netdata_configured_home_dir = NULL;
18 +char *netdata_configured_host_prefix = NULL;
19 +
20 int enable_ksm = 1;
21
22 volatile sig_atomic_t netdata_exit = 0;
@@ -1115,7 +1123,7 @@ long get_system_cpus(void) {
1123 #else
1124
1125 char filename[FILENAME_MAX + 1];
1118 - snprintfz(filename, FILENAME_MAX, "%s/proc/stat", global_host_prefix);
1126 + snprintfz(filename, FILENAME_MAX, "%s/proc/stat", netdata_configured_host_prefix);
1127
1128 procfile *ff = procfile_open(filename, NULL, PROCFILE_FLAG_DEFAULT);
1129 if(!ff) {
@@ -1172,7 +1180,7 @@ pid_t get_system_pid_max(void) {
1180 read = 1;
1181
1182 char filename[FILENAME_MAX + 1];
1175 - snprintfz(filename, FILENAME_MAX, "%s/proc/sys/kernel/pid_max", global_host_prefix);
1183 + snprintfz(filename, FILENAME_MAX, "%s/proc/sys/kernel/pid_max", netdata_configured_host_prefix);
1184
1185 unsigned long long max = 0;
1186 if(read_single_number_file(filename, &max) != 0) {
src/common.h
+9 -1
@@ -217,6 +217,15 @@
217 #include "inlined.h"
218 #include "adaptive_resortable_list.h"
219
220 +extern char *netdata_configured_config_dir;
221 +extern char *netdata_configured_log_dir;
222 +extern char *netdata_configured_plugins_dir;
223 +extern char *netdata_configured_web_dir;
224 +extern char *netdata_configured_cache_dir;
225 +extern char *netdata_configured_varlib_dir;
226 +extern char *netdata_configured_home_dir;
227 +extern char *netdata_configured_host_prefix;
228 +
229 extern void netdata_fix_chart_id(char *s);
230 extern void netdata_fix_chart_name(char *s);
231
@@ -255,7 +264,6 @@ extern int savememory(const char *filename, void *mem, size_t size);
264
265 extern int fd_is_valid(int fd);
266
258 -extern char *global_host_prefix;
267 extern int enable_ksm;
268
269 extern pid_t gettid(void);
src/daemon.c
+4 -4
@@ -84,8 +84,8 @@ int become_user(const char *username, int pid_fd)
84 uid_t uid = pw->pw_uid;
85 gid_t gid = pw->pw_gid;
86
87 - create_needed_dir(CACHE_DIR, uid, gid);
88 - create_needed_dir(VARLIB_DIR, uid, gid);
87 + create_needed_dir(netdata_configured_cache_dir, uid, gid);
88 + create_needed_dir(netdata_configured_varlib_dir, uid, gid);
89
90 if(pidfile[0]) {
91 if(chown(pidfile, uid, gid) == -1)
@@ -360,8 +360,8 @@ int become_daemon(int dont_fork, const char *user)
360 else debug(D_SYSTEM, "Successfully became user '%s'.", user);
361 }
362 else {
363 - create_needed_dir(CACHE_DIR, getuid(), getgid());
364 - create_needed_dir(VARLIB_DIR, getuid(), getgid());
363 + create_needed_dir(netdata_configured_cache_dir, getuid(), getgid());
364 + create_needed_dir(netdata_configured_varlib_dir, getuid(), getgid());
365 }
366
367 if(pidfd != -1)
src/health.c
+7 -9
@@ -11,9 +11,9 @@ struct health_options {
11 };
12
13 static struct health_options health = {
14 - .health_default_exec = PLUGINS_DIR "/alarm-notify.sh",
14 + .health_default_exec = NULL,
15 .health_default_recipient = "root",
16 - .log_filename = VARLIB_DIR "/health/alarm_log.db",
16 + .log_filename = NULL,
17 .log_entries_written = 0,
18 .log_fp = NULL
19 };
@@ -2389,7 +2389,7 @@ void health_readdir(const char *path) {
2389
2390 static inline char *health_config_dir(void) {
2391 char buffer[FILENAME_MAX + 1];
2392 - snprintfz(buffer, FILENAME_MAX, "%s/health.d", config_get("global", "config directory", CONFIG_DIR));
2392 + snprintfz(buffer, FILENAME_MAX, "%s/health.d", netdata_configured_config_dir);
2393 return config_get("health", "health configuration directory", buffer);
2394 }
2395
@@ -2401,7 +2401,8 @@ void health_init(void) {
2401 return;
2402 }
2403
2404 - char *pathname = config_get("health", "health db directory", VARLIB_DIR "/health");
2404 + char pathname[FILENAME_MAX + 1];
2405 + snprintfz(pathname, FILENAME_MAX, "%s/health", netdata_configured_varlib_dir);
2406 if(mkdir(pathname, 0770) == -1 && errno != EEXIST)
2407 fatal("Cannot create directory '%s'.", pathname);
2408
@@ -2414,11 +2415,8 @@ void health_init(void) {
2415
2416 char *path = health_config_dir();
2417
2417 - {
2418 - char buffer[FILENAME_MAX + 1];
2419 - snprintfz(buffer, FILENAME_MAX, "%s/alarm-notify.sh", config_get("global", "plugins directory", PLUGINS_DIR));
2420 - health.health_default_exec = config_get("health", "script to execute on alarm", buffer);
2421 - }
2418 + snprintfz(filename, FILENAME_MAX, "%s/alarm-notify.sh", netdata_configured_plugins_dir);
2419 + health.health_default_exec = config_get("health", "script to execute on alarm", filename);
2420
2421 long n = config_get_number("health", "in memory max health log entries", (long)localhost.health_log.max);
2422 if(n < 10) {
src/ipc.c
+1 -1
@@ -57,7 +57,7 @@ static inline int ipc_sem_get_limits(struct ipc_limits *lim) {
57 static char filename[FILENAME_MAX + 1] = "";
58
59 if(unlikely(!filename[0]))
60 - snprintfz(filename, FILENAME_MAX, "%s/proc/sys/kernel/sem", global_host_prefix);
60 + snprintfz(filename, FILENAME_MAX, "%s/proc/sys/kernel/sem", netdata_configured_host_prefix);
61
62 if(unlikely(!ff)) {
63 ff = procfile_open(filename, NULL, PROCFILE_FLAG_DEFAULT);
src/main.c
+31 -18
@@ -530,18 +530,26 @@ int main(int argc, char **argv) {
530 mallopt(M_ARENA_MAX, 1);
531 #endif
532
533 - char *config_dir = config_get("global", "config directory", CONFIG_DIR);
534 -
533 // prepare configuration environment variables for the plugins
536 - setenv("NETDATA_CONFIG_DIR" , verify_required_directory(config_dir) , 1);
537 - setenv("NETDATA_PLUGINS_DIR", verify_required_directory(config_get("global", "plugins directory" , PLUGINS_DIR)), 1);
538 - setenv("NETDATA_WEB_DIR" , verify_required_directory(config_get("global", "web files directory", WEB_DIR)) , 1);
539 - setenv("NETDATA_CACHE_DIR" , verify_required_directory(config_get("global", "cache directory" , CACHE_DIR)) , 1);
540 - setenv("NETDATA_LIB_DIR" , verify_required_directory(config_get("global", "lib directory" , VARLIB_DIR)) , 1);
541 - setenv("NETDATA_LOG_DIR" , verify_required_directory(config_get("global", "log directory" , LOG_DIR)) , 1);
534
543 - setenv("NETDATA_HOST_PREFIX", config_get("global", "host access prefix" , "") , 1);
544 - setenv("HOME" , config_get("global", "home directory" , CACHE_DIR) , 1);
535 + netdata_configured_config_dir = config_get("global", "config directory", CONFIG_DIR);
536 + netdata_configured_log_dir = config_get("global", "log directory", LOG_DIR);
537 + netdata_configured_plugins_dir = config_get("global", "plugins directory", PLUGINS_DIR);
538 + netdata_configured_web_dir = config_get("global", "web files directory", WEB_DIR);
539 + netdata_configured_cache_dir = config_get("global", "cache directory", CACHE_DIR);
540 + netdata_configured_varlib_dir = config_get("global", "lib directory", VARLIB_DIR);
541 + netdata_configured_home_dir = config_get("global", "home directory", CACHE_DIR);
542 +
543 + setenv("NETDATA_CONFIG_DIR" , verify_required_directory(netdata_configured_config_dir), 1);
544 + setenv("NETDATA_PLUGINS_DIR", verify_required_directory(netdata_configured_plugins_dir), 1);
545 + setenv("NETDATA_WEB_DIR" , verify_required_directory(netdata_configured_web_dir), 1);
546 + setenv("NETDATA_CACHE_DIR" , verify_required_directory(netdata_configured_cache_dir), 1);
547 + setenv("NETDATA_LIB_DIR" , verify_required_directory(netdata_configured_varlib_dir), 1);
548 + setenv("NETDATA_LOG_DIR" , verify_required_directory(netdata_configured_log_dir), 1);
549 + setenv("HOME" , verify_required_directory(netdata_configured_home_dir), 1);
550 +
551 + netdata_configured_host_prefix = config_get("global", "host access prefix", "");
552 + setenv("NETDATA_HOST_PREFIX", netdata_configured_host_prefix, 1);
553
554 // disable buffering for python plugins
555 setenv("PYTHONUNBUFFERED", "1", 1);
@@ -553,8 +561,8 @@ int main(int argc, char **argv) {
561 // work while we are cd into config_dir
562 // to allow the plugins refer to their config
563 // files using relative filenames
556 - if(chdir(config_dir) == -1)
557 - fatal("Cannot cd to '%s'", config_dir);
564 + if(chdir(netdata_configured_config_dir) == -1)
565 + fatal("Cannot cd to '%s'", netdata_configured_config_dir);
566
567 char path[1024 + 1], *p = getenv("PATH");
568 if(!p) p = "/bin:/usr/bin";
@@ -594,18 +602,23 @@ int main(int argc, char **argv) {
602
603 // --------------------------------------------------------------------
604
597 - global_host_prefix = config_get("global", "host access prefix", "");
598 - setenv("NETDATA_HOST_PREFIX", global_host_prefix, 1);
599 -
605 get_system_HZ();
606 get_system_cpus();
607 get_system_pid_max();
608
609 // --------------------------------------------------------------------
610
606 - stdout_filename = config_get("global", "debug log", LOG_DIR "/debug.log");
607 - stderr_filename = config_get("global", "error log", LOG_DIR "/error.log");
608 - stdaccess_filename = config_get("global", "access log", LOG_DIR "/access.log");
611 + {
612 + char filename[FILENAME_MAX + 1];
613 + snprintfz(filename, FILENAME_MAX, "%s/debug.log", netdata_configured_log_dir);
614 + stdout_filename = config_get("global", "debug log", filename);
615 +
616 + snprintfz(filename, FILENAME_MAX, "%s/error.log", netdata_configured_log_dir);
617 + stderr_filename = config_get("global", "error log", filename);
618 +
619 + snprintfz(filename, FILENAME_MAX, "%s/access.log", netdata_configured_log_dir);
620 + stdaccess_filename = config_get("global", "access log", filename);
621 + }
622
623 error_log_throttle_period_backup =
624 error_log_throttle_period = config_get_number("global", "errors flood protection period", error_log_throttle_period);
src/plugin_proc.c
+1 -1
@@ -157,7 +157,7 @@ int get_numa_node_count(void)
157 numa_node_count = 0;
158
159 char name[FILENAME_MAX + 1];
160 - snprintfz(name, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/devices/system/node");
160 + snprintfz(name, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/devices/system/node");
161 char *dirname = config_get("plugin:proc:/sys/devices/system/node", "directory to monitor", name);
162
163 DIR *dir = opendir(dirname);
src/plugin_tc.c
+1 -1
@@ -782,7 +782,7 @@ void *tc_main(void *ptr) {
782 #endif
783 uint32_t first_hash;
784
785 - snprintfz(buffer, TC_LINE_MAX, "%s/tc-qos-helper.sh", config_get("plugins", "plugins directory", PLUGINS_DIR));
785 + snprintfz(buffer, TC_LINE_MAX, "%s/tc-qos-helper.sh", netdata_configured_plugins_dir);
786 char *tc_script = config_get("plugin:tc", "script to run to get tc values", buffer);
787
788 for(;1;) {
src/plugins_d.c
+1 -1
@@ -442,7 +442,7 @@ void *pluginsd_main(void *ptr) {
442 if(pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL) != 0)
443 error("Cannot set pthread cancel state to ENABLE.");
444
445 - char *dir_name = config_get("plugins", "plugins directory", PLUGINS_DIR);
445 + char *dir_name = netdata_configured_plugins_dir;
446 int automatic_run = config_get_boolean("plugins", "enable running new plugins", 1);
447 int scan_frequency = (int) config_get_number("plugins", "check for new plugins every", 60);
448 DIR *dir = NULL;
src/proc_diskstats.c
+4 -4
@@ -72,7 +72,7 @@ static struct disk *get_disk(unsigned long major, unsigned long minor, char *dis
72
73 // get the default path for finding info about the block device
74 if(unlikely(!path_find_block_device[0])) {
75 - snprintfz(buffer, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/dev/block/%lu:%lu/%s");
75 + snprintfz(buffer, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/dev/block/%lu:%lu/%s");
76 snprintfz(path_find_block_device, FILENAME_MAX, "%s", config_get("plugin:proc:/proc/diskstats", "path to get block device infos", buffer));
77 }
78
@@ -126,11 +126,11 @@ static struct disk *get_disk(unsigned long major, unsigned long minor, char *dis
126 // find the disk sector size
127
128 if(unlikely(!path_to_get_hw_sector_size[0])) {
129 - snprintfz(buffer, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/block/%s/queue/hw_sector_size");
129 + snprintfz(buffer, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/block/%s/queue/hw_sector_size");
130 snprintfz(path_to_get_hw_sector_size, FILENAME_MAX, "%s", config_get("plugin:proc:/proc/diskstats", "path to get h/w sector size", buffer));
131 }
132 if(unlikely(!path_to_get_hw_sector_size_partitions[0])) {
133 - snprintfz(buffer, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/dev/block/%lu:%lu/subsystem/%s/../queue/hw_sector_size");
133 + snprintfz(buffer, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/dev/block/%lu:%lu/subsystem/%s/../queue/hw_sector_size");
134 snprintfz(path_to_get_hw_sector_size_partitions, FILENAME_MAX, "%s", config_get("plugin:proc:/proc/diskstats", "path to get h/w sector size for partitions", buffer));
135 }
136
@@ -233,7 +233,7 @@ int do_proc_diskstats(int update_every, usec_t dt) {
233
234 if(unlikely(!ff)) {
235 char filename[FILENAME_MAX + 1];
236 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/diskstats");
236 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/diskstats");
237 ff = procfile_open(config_get("plugin:proc:/proc/diskstats", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT);
238 }
239 if(unlikely(!ff)) return 0;
src/proc_interrupts.c
+1 -1
@@ -59,7 +59,7 @@ int do_proc_interrupts(int update_every, usec_t dt) {
59
60 if(unlikely(!ff)) {
61 char filename[FILENAME_MAX + 1];
62 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/interrupts");
62 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/interrupts");
63 ff = procfile_open(config_get("plugin:proc:/proc/interrupts", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT);
64 }
65 if(unlikely(!ff))
src/proc_loadavg.c
+1 -1
@@ -11,7 +11,7 @@ int do_proc_loadavg(int update_every, usec_t dt) {
11
12 if(unlikely(!ff)) {
13 char filename[FILENAME_MAX + 1];
14 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/loadavg");
14 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/loadavg");
15
16 ff = procfile_open(config_get("plugin:proc:/proc/loadavg", "filename to monitor", filename), " \t,:|/", PROCFILE_FLAG_DEFAULT);
17 if(unlikely(!ff))
src/proc_meminfo.c
+1 -1
@@ -109,7 +109,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
109
110 if(unlikely(!ff)) {
111 char filename[FILENAME_MAX + 1];
112 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/meminfo");
112 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/meminfo");
113 ff = procfile_open(config_get("plugin:proc:/proc/meminfo", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT);
114 if(unlikely(!ff))
115 return 1;
src/proc_net_dev.c
+1 -1
@@ -134,7 +134,7 @@ int do_proc_net_dev(int update_every, usec_t dt) {
134
135 if(unlikely(!ff)) {
136 char filename[FILENAME_MAX + 1];
137 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/dev");
137 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/dev");
138 ff = procfile_open(config_get("plugin:proc:/proc/net/dev", "filename to monitor", filename), " \t,:|", PROCFILE_FLAG_DEFAULT);
139 if(unlikely(!ff)) return 1;
140 }
src/proc_net_ip_vs_stats.c
+1 -1
@@ -13,7 +13,7 @@ int do_proc_net_ip_vs_stats(int update_every, usec_t dt) {
13
14 if(!ff) {
15 char filename[FILENAME_MAX + 1];
16 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/ip_vs_stats");
16 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/ip_vs_stats");
17 ff = procfile_open(config_get("plugin:proc:/proc/net/ip_vs_stats", "filename to monitor", filename), " \t,:|", PROCFILE_FLAG_DEFAULT);
18 }
19 if(!ff) return 1;
src/proc_net_netstat.c
+1 -1
@@ -195,7 +195,7 @@ int do_proc_net_netstat(int update_every, usec_t dt) {
195
196 if(unlikely(!ff)) {
197 char filename[FILENAME_MAX + 1];
198 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/netstat");
198 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/netstat");
199 ff = procfile_open(config_get("plugin:proc:/proc/net/netstat", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT);
200 if(unlikely(!ff)) return 1;
201 }
src/proc_net_rpc_nfs.c
+1 -1
@@ -136,7 +136,7 @@ int do_proc_net_rpc_nfs(int update_every, usec_t dt) {
136
137 if(!ff) {
138 char filename[FILENAME_MAX + 1];
139 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/rpc/nfs");
139 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/rpc/nfs");
140 ff = procfile_open(config_get("plugin:proc:/proc/net/rpc/nfs", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT);
141 }
142 if(!ff) return 1;
src/proc_net_rpc_nfsd.c
+1 -1
@@ -217,7 +217,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
217
218 if(!ff) {
219 char filename[FILENAME_MAX + 1];
220 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/rpc/nfsd");
220 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/rpc/nfsd");
221 ff = procfile_open(config_get("plugin:proc:/proc/net/rpc/nfsd", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT);
222 }
223 if(!ff) return 1;
src/proc_net_snmp.c
+1 -1
@@ -355,7 +355,7 @@ int do_proc_net_snmp(int update_every, usec_t dt) {
355
356 if(unlikely(!ff)) {
357 char filename[FILENAME_MAX + 1];
358 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/snmp");
358 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/snmp");
359 ff = procfile_open(config_get("plugin:proc:/proc/net/snmp", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT);
360 if(unlikely(!ff)) return 1;
361 }
src/proc_net_snmp6.c
+1 -1
@@ -246,7 +246,7 @@ int do_proc_net_snmp6(int update_every, usec_t dt) {
246
247 if(unlikely(!ff)) {
248 char filename[FILENAME_MAX + 1];
249 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/snmp6");
249 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/snmp6");
250 ff = procfile_open(config_get("plugin:proc:/proc/net/snmp6", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT);
251 if(unlikely(!ff))
252 return 1;
src/proc_net_softnet_stat.c
+1 -1
@@ -24,7 +24,7 @@ int do_proc_net_softnet_stat(int update_every, usec_t dt) {
24
25 if(unlikely(!ff)) {
26 char filename[FILENAME_MAX + 1];
27 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/softnet_stat");
27 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/softnet_stat");
28 ff = procfile_open(config_get("plugin:proc:/proc/net/softnet_stat", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT);
29 if(unlikely(!ff)) return 1;
30 }
src/proc_net_stat_conntrack.c
+3 -3
@@ -16,10 +16,10 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) {
16
17 if(unlikely(do_sockets == -1)) {
18 char filename[FILENAME_MAX + 1];
19 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/stat/nf_conntrack");
19 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/stat/nf_conntrack");
20 nf_conntrack_filename = config_get("plugin:proc:/proc/net/stat/nf_conntrack", "filename to monitor", filename);
21
22 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/sys/net/netfilter/nf_conntrack_max");
22 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/sys/net/netfilter/nf_conntrack_max");
23 nf_conntrack_max_filename = config_get("plugin:proc:/proc/sys/net/netfilter/nf_conntrack_max", "filename to monitor", filename);
24 usec_since_last_max = get_max_every = config_get_number("plugin:proc:/proc/sys/net/netfilter/nf_conntrack_max", "read every seconds", 10) * USEC_PER_SEC;
25
@@ -35,7 +35,7 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) {
35
36 do_sockets = 1;
37 if(!read_full) {
38 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/sys/net/netfilter/nf_conntrack_count");
38 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/sys/net/netfilter/nf_conntrack_count");
39 nf_conntrack_count_filename = config_get("plugin:proc:/proc/sys/net/netfilter/nf_conntrack_count", "filename to monitor", filename);
40
41 if(read_single_number_file(nf_conntrack_count_filename, &aentries))
src/proc_net_stat_synproxy.c
+1 -1
@@ -18,7 +18,7 @@ int do_proc_net_stat_synproxy(int update_every, usec_t dt) {
18
19 if(unlikely(!ff)) {
20 char filename[FILENAME_MAX + 1];
21 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/stat/synproxy");
21 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/stat/synproxy");
22 ff = procfile_open(config_get("plugin:proc:/proc/net/stat/synproxy", "filename to monitor", filename), " \t,:|", PROCFILE_FLAG_DEFAULT);
23 if(unlikely(!ff))
24 return 1;
src/proc_self_mountinfo.c
+2 -2
@@ -175,10 +175,10 @@ static inline int is_read_only(const char *s) {
175 // read the whole mountinfo into a linked list
176 struct mountinfo *mountinfo_read(int do_statvfs) {
177 char filename[FILENAME_MAX + 1];
178 - snprintfz(filename, FILENAME_MAX, "%s/proc/self/mountinfo", global_host_prefix);
178 + snprintfz(filename, FILENAME_MAX, "%s/proc/self/mountinfo", netdata_configured_host_prefix);
179 procfile *ff = procfile_open(filename, " \t", PROCFILE_FLAG_DEFAULT);
180 if(unlikely(!ff)) {
181 - snprintfz(filename, FILENAME_MAX, "%s/proc/1/mountinfo", global_host_prefix);
181 + snprintfz(filename, FILENAME_MAX, "%s/proc/1/mountinfo", netdata_configured_host_prefix);
182 ff = procfile_open(filename, " \t", PROCFILE_FLAG_DEFAULT);
183 if(unlikely(!ff)) return NULL;
184 }
src/proc_softirqs.c
+1 -1
@@ -58,7 +58,7 @@ int do_proc_softirqs(int update_every, usec_t dt) {
58
59 if(unlikely(!ff)) {
60 char filename[FILENAME_MAX + 1];
61 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/softirqs");
61 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/softirqs");
62 ff = procfile_open(config_get("plugin:proc:/proc/softirqs", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT);
63 if(unlikely(!ff)) return 1;
64 }
src/proc_stat.c
+1 -1
@@ -24,7 +24,7 @@ int do_proc_stat(int update_every, usec_t dt) {
24
25 if(unlikely(!ff)) {
26 char filename[FILENAME_MAX + 1];
27 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/stat");
27 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/stat");
28 ff = procfile_open(config_get("plugin:proc:/proc/stat", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT);
29 if(unlikely(!ff)) return 1;
30 }
src/proc_sys_kernel_random_entropy_avail.c
+1 -1
@@ -7,7 +7,7 @@ int do_proc_sys_kernel_random_entropy_avail(int update_every, usec_t dt) {
7
8 if(unlikely(!ff)) {
9 char filename[FILENAME_MAX + 1];
10 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/sys/kernel/random/entropy_avail");
10 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/sys/kernel/random/entropy_avail");
11 ff = procfile_open(config_get("plugin:proc:/proc/sys/kernel/random/entropy_avail", "filename to monitor", filename), "", PROCFILE_FLAG_DEFAULT);
12 if(unlikely(!ff)) return 1;
13 }
src/proc_uptime.c
+1 -1
@@ -13,7 +13,7 @@ int do_proc_uptime(int update_every, usec_t dt) {
13
14 if(unlikely(!ff)) {
15 char filename[FILENAME_MAX + 1];
16 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/uptime");
16 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/uptime");
17
18 ff = procfile_open(config_get("plugin:proc:/proc/uptime", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT);
19 if(unlikely(!ff))
src/proc_vmstat.c
+1 -1
@@ -62,7 +62,7 @@ int do_proc_vmstat(int update_every, usec_t dt) {
62
63 if(unlikely(!ff)) {
64 char filename[FILENAME_MAX + 1];
65 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/vmstat");
65 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/vmstat");
66 ff = procfile_open(config_get("plugin:proc:/proc/vmstat", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT);
67 if(unlikely(!ff)) return 1;
68 }
src/registry_init.c
+2 -1
@@ -7,7 +7,8 @@ int registry_init(void) {
7 registry.enabled = config_get_boolean("registry", "enabled", 0);
8
9 // pathnames
10 - registry.pathname = config_get("registry", "registry db directory", VARLIB_DIR "/registry");
10 + snprintfz(filename, FILENAME_MAX, "%s/registry", netdata_configured_varlib_dir);
11 + registry.pathname = config_get("registry", "registry db directory", filename);
12 if(mkdir(registry.pathname, 0770) == -1 && errno != EEXIST)
13 fatal("Cannot create directory '%s'.", registry.pathname);
14
src/rrd.c
+1 -9
@@ -392,19 +392,11 @@ char *rrdset_cache_dir(const char *id)
392 {
393 char *ret = NULL;
394
395 - static char *cache_dir = NULL;
396 - if(!cache_dir) {
397 - cache_dir = config_get("global", "cache directory", CACHE_DIR);
398 - int r = mkdir(cache_dir, 0755);
399 - if(r != 0 && errno != EEXIST)
400 - error("Cannot create directory '%s'", cache_dir);
401 - }
402 -
395 char b[FILENAME_MAX + 1];
396 char n[FILENAME_MAX + 1];
397 rrdset_strncpyz_name(b, id, FILENAME_MAX);
398
407 - snprintfz(n, FILENAME_MAX, "%s/%s", cache_dir, b);
399 + snprintfz(n, FILENAME_MAX, "%s/%s", netdata_configured_cache_dir, b);
400 ret = config_get(id, "cache directory", n);
401
402 if(rrd_memory_mode == RRD_MEMORY_MODE_MAP || rrd_memory_mode == RRD_MEMORY_MODE_SAVE) {
src/sys_devices_system_edac_mc.c
+1 -1
@@ -23,7 +23,7 @@ static struct mc *mc_root = NULL;
23
24 static void find_all_mc() {
25 char name[FILENAME_MAX + 1];
26 - snprintfz(name, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/devices/system/edac/mc");
26 + snprintfz(name, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/devices/system/edac/mc");
27 char *dirname = config_get("plugin:proc:/sys/devices/system/edac/mc", "directory to monitor", name);
28
29 DIR *dir = opendir(dirname);
src/sys_devices_system_node.c
+1 -1
@@ -12,7 +12,7 @@ static struct node *numa_root = NULL;
12 static int find_all_nodes() {
13 int numa_node_count = 0;
14 char name[FILENAME_MAX + 1];
15 - snprintfz(name, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/devices/system/node");
15 + snprintfz(name, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/devices/system/node");
16 char *dirname = config_get("plugin:proc:/sys/devices/system/node", "directory to monitor", name);
17
18 DIR *dir = opendir(dirname);
src/sys_fs_cgroup.c
+7 -6
@@ -49,7 +49,7 @@ static SIMPLE_PATTERN *enabled_cgroup_paths = NULL;
49 static SIMPLE_PATTERN *enabled_cgroup_renames = NULL;
50 static SIMPLE_PATTERN *systemd_services_cgroups = NULL;
51
52 -static char *cgroups_rename_script = PLUGINS_DIR "/cgroup-name.sh";
52 +static char *cgroups_rename_script = NULL;
53
54 static uint32_t Read_hash = 0;
55 static uint32_t Write_hash = 0;
@@ -105,7 +105,7 @@ void read_cgroup_plugin_configuration() {
105 s = "/sys/fs/cgroup/cpuacct";
106 }
107 else s = mi->mount_point;
108 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, s);
108 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, s);
109 cgroup_cpuacct_base = config_get("plugin:cgroups", "path to /sys/fs/cgroup/cpuacct", filename);
110
111 mi = mountinfo_find_by_filesystem_super_option(root, "cgroup", "blkio");
@@ -115,7 +115,7 @@ void read_cgroup_plugin_configuration() {
115 s = "/sys/fs/cgroup/blkio";
116 }
117 else s = mi->mount_point;
118 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, s);
118 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, s);
119 cgroup_blkio_base = config_get("plugin:cgroups", "path to /sys/fs/cgroup/blkio", filename);
120
121 mi = mountinfo_find_by_filesystem_super_option(root, "cgroup", "memory");
@@ -125,7 +125,7 @@ void read_cgroup_plugin_configuration() {
125 s = "/sys/fs/cgroup/memory";
126 }
127 else s = mi->mount_point;
128 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, s);
128 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, s);
129 cgroup_memory_base = config_get("plugin:cgroups", "path to /sys/fs/cgroup/memory", filename);
130
131 mi = mountinfo_find_by_filesystem_super_option(root, "cgroup", "devices");
@@ -135,7 +135,7 @@ void read_cgroup_plugin_configuration() {
135 s = "/sys/fs/cgroup/devices";
136 }
137 else s = mi->mount_point;
138 - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, s);
138 + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, s);
139 cgroup_devices_base = config_get("plugin:cgroups", "path to /sys/fs/cgroup/devices", filename);
140
141 cgroup_root_max = (int)config_get_number("plugin:cgroups", "max cgroups to allow", cgroup_root_max);
@@ -177,7 +177,8 @@ void read_cgroup_plugin_configuration() {
177 " * "
178 ), SIMPLE_PATTERN_EXACT);
179
180 - cgroups_rename_script = config_get("plugin:cgroups", "script to get cgroup names", cgroups_rename_script);
180 + snprintfz(filename, FILENAME_MAX, "%s/cgroup-name.sh", netdata_configured_plugins_dir);
181 + cgroups_rename_script = config_get("plugin:cgroups", "script to get cgroup names", filename);
182
183 enabled_cgroup_renames = simple_pattern_create(
184 config_get("plugin:cgroups", "run script to rename cgroups matching",
src/sys_kernel_mm_ksm.c
+5 -5
@@ -28,31 +28,31 @@ int do_sys_kernel_mm_ksm(int update_every, usec_t dt) {
28 page_size = sysconf(_SC_PAGESIZE);
29
30 if(!ff_pages_shared) {
31 - snprintfz(values[PAGES_SHARED].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_shared");
31 + snprintfz(values[PAGES_SHARED].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_shared");
32 snprintfz(values[PAGES_SHARED].filename, FILENAME_MAX, "%s", config_get("plugin:proc:/sys/kernel/mm/ksm", "/sys/kernel/mm/ksm/pages_shared", values[PAGES_SHARED].filename));
33 ff_pages_shared = procfile_open(values[PAGES_SHARED].filename, " \t:", PROCFILE_FLAG_DEFAULT);
34 }
35
36 if(!ff_pages_sharing) {
37 - snprintfz(values[PAGES_SHARING].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_sharing");
37 + snprintfz(values[PAGES_SHARING].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_sharing");
38 snprintfz(values[PAGES_SHARING].filename, FILENAME_MAX, "%s", config_get("plugin:proc:/sys/kernel/mm/ksm", "/sys/kernel/mm/ksm/pages_sharing", values[PAGES_SHARING].filename));
39 ff_pages_sharing = procfile_open(values[PAGES_SHARING].filename, " \t:", PROCFILE_FLAG_DEFAULT);
40 }
41
42 if(!ff_pages_unshared) {
43 - snprintfz(values[PAGES_UNSHARED].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_unshared");
43 + snprintfz(values[PAGES_UNSHARED].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_unshared");
44 snprintfz(values[PAGES_UNSHARED].filename, FILENAME_MAX, "%s", config_get("plugin:proc:/sys/kernel/mm/ksm", "/sys/kernel/mm/ksm/pages_unshared", values[PAGES_UNSHARED].filename));
45 ff_pages_unshared = procfile_open(values[PAGES_UNSHARED].filename, " \t:", PROCFILE_FLAG_DEFAULT);
46 }
47
48 if(!ff_pages_volatile) {
49 - snprintfz(values[PAGES_VOLATILE].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_volatile");
49 + snprintfz(values[PAGES_VOLATILE].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_volatile");
50 snprintfz(values[PAGES_VOLATILE].filename, FILENAME_MAX, "%s", config_get("plugin:proc:/sys/kernel/mm/ksm", "/sys/kernel/mm/ksm/pages_volatile", values[PAGES_VOLATILE].filename));
51 ff_pages_volatile = procfile_open(values[PAGES_VOLATILE].filename, " \t:", PROCFILE_FLAG_DEFAULT);
52 }
53
54 if(!ff_pages_to_scan) {
55 - snprintfz(values[PAGES_TO_SCAN].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_to_scan");
55 + snprintfz(values[PAGES_TO_SCAN].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_to_scan");
56 snprintfz(values[PAGES_TO_SCAN].filename, FILENAME_MAX, "%s", config_get("plugin:proc:/sys/kernel/mm/ksm", "/sys/kernel/mm/ksm/pages_to_scan", values[PAGES_TO_SCAN].filename));
57 ff_pages_to_scan = procfile_open(values[PAGES_TO_SCAN].filename, " \t:", PROCFILE_FLAG_DEFAULT);
58 }
src/web_client.c
+2 -7
@@ -290,12 +290,7 @@ gid_t web_files_gid(void) {
290
291 int mysendfile(struct web_client *w, char *filename)
292 {
293 - static char *web_dir = NULL;
294 -
295 - // initialize our static data
296 - if(unlikely(!web_dir)) web_dir = config_get("global", "web files directory", WEB_DIR);
297 -
298 - debug(D_WEB_CLIENT, "%llu: Looking for file '%s/%s'", w->id, web_dir, filename);
293 + debug(D_WEB_CLIENT, "%llu: Looking for file '%s/%s'", w->id, netdata_configured_web_dir, filename);
294
295 // skip leading slashes
296 while (*filename == '/') filename++;
@@ -324,7 +319,7 @@ int mysendfile(struct web_client *w, char *filename)
319
320 // access the file
321 char webfilename[FILENAME_MAX + 1];
327 - snprintfz(webfilename, FILENAME_MAX, "%s/%s", web_dir, filename);
322 + snprintfz(webfilename, FILENAME_MAX, "%s/%s", netdata_configured_web_dir, filename);
323
324 // check if the file exists
325 struct stat stat;