From 577dbe94496479256311a8c84909c36123b7a406 Mon Sep 17 00:00:00 2001 From: "Costa Tsaousis (ktsaou)" Date: Wed, 15 Feb 2017 01:24:38 +0200 Subject: [PATCH] allow netdata to be easily relocatable --- CMakeLists.txt | 71 +++++++++++----------- src/apps_plugin.c | 34 +++++------ src/common.c | 14 ++++- src/common.h | 10 ++- src/daemon.c | 8 +-- src/health.c | 16 +++-- src/ipc.c | 2 +- src/main.c | 49 +++++++++------ src/plugin_proc.c | 2 +- src/plugin_tc.c | 2 +- src/plugins_d.c | 2 +- src/proc_diskstats.c | 8 +-- src/proc_interrupts.c | 2 +- src/proc_loadavg.c | 2 +- src/proc_meminfo.c | 2 +- src/proc_net_dev.c | 2 +- src/proc_net_ip_vs_stats.c | 2 +- src/proc_net_netstat.c | 2 +- src/proc_net_rpc_nfs.c | 2 +- src/proc_net_rpc_nfsd.c | 2 +- src/proc_net_snmp.c | 2 +- src/proc_net_snmp6.c | 2 +- src/proc_net_softnet_stat.c | 2 +- src/proc_net_stat_conntrack.c | 6 +- src/proc_net_stat_synproxy.c | 2 +- src/proc_self_mountinfo.c | 4 +- src/proc_softirqs.c | 2 +- src/proc_stat.c | 2 +- src/proc_sys_kernel_random_entropy_avail.c | 2 +- src/proc_uptime.c | 2 +- src/proc_vmstat.c | 2 +- src/registry_init.c | 3 +- src/rrd.c | 10 +-- src/sys_devices_system_edac_mc.c | 2 +- src/sys_devices_system_node.c | 2 +- src/sys_fs_cgroup.c | 13 ++-- src/sys_kernel_mm_ksm.c | 10 +-- src/web_client.c | 9 +-- 38 files changed, 164 insertions(+), 147 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 04c4415e..893af806 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,8 @@ find_package (Threads) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wformat-signedness -Werror=format-security -DNETDATA_INTERNAL_CHECKS=1") set(NETDATA_SOURCE_FILES + src/adaptive_resortable_list.c + src/adaptive_resortable_list.h src/appconfig.c src/appconfig.h src/avl.c @@ -30,29 +32,37 @@ set(NETDATA_SOURCE_FILES src/global_statistics.h src/health.c src/health.h + src/inlined.h src/ipc.c src/ipc.h src/log.c src/log.h + src/macos_fw.c + src/macos_mach_smi.c + src/macos_sysctl.c src/main.c src/main.h src/plugin_checks.c src/plugin_checks.h + src/plugin_freebsd.c + src/plugin_freebsd.h src/plugin_idlejitter.c src/plugin_idlejitter.h + src/plugin_macos.c + src/plugin_macos.h src/plugin_nfacct.c src/plugin_nfacct.h src/plugin_proc.c src/plugin_proc.h - src/plugins_d.c - src/plugins_d.h + src/plugin_proc_diskspace.c + src/plugin_proc_diskspace.h src/plugin_tc.c src/plugin_tc.h + src/plugins_d.c + src/plugins_d.h src/popen.c src/popen.h src/proc_diskstats.c - src/procfile.c - src/procfile.h src/proc_interrupts.c src/proc_loadavg.c src/proc_meminfo.c @@ -61,8 +71,8 @@ set(NETDATA_SOURCE_FILES src/proc_net_netstat.c src/proc_net_rpc_nfs.c src/proc_net_rpc_nfsd.c - src/proc_net_snmp6.c src/proc_net_snmp.c + src/proc_net_snmp6.c src/proc_net_softnet_stat.c src/proc_net_stat_conntrack.c src/proc_net_stat_synproxy.c @@ -71,15 +81,34 @@ set(NETDATA_SOURCE_FILES src/proc_softirqs.c src/proc_stat.c src/proc_sys_kernel_random_entropy_avail.c + src/proc_uptime.c src/proc_vmstat.c + src/procfile.c + src/procfile.h src/registry.c src/registry.h - src/rrd2json.c - src/rrd2json.h + src/registry_db.c + src/registry_init.c + src/registry_internals.c + src/registry_internals.h + src/registry_log.c + src/registry_machine.c + src/registry_machine.h + src/registry_person.c + src/registry_person.h + src/registry_url.c + src/registry_url.h src/rrd.c src/rrd.h + src/rrd2json.c + src/rrd2json.h + src/simple_pattern.c + src/simple_pattern.h + src/socket.c src/socket.h src/storage_number.c src/storage_number.h + src/sys_devices_system_edac_mc.c + src/sys_devices_system_node.c src/sys_fs_cgroup.c src/sys_kernel_mm_ksm.c src/unit_test.c @@ -94,34 +123,6 @@ set(NETDATA_SOURCE_FILES src/web_client.h src/web_server.c src/web_server.h - src/socket.c src/socket.h - src/registry_url.c - src/registry_url.h - src/registry_internals.h - src/registry_person.c - src/registry_person.h - src/registry_machine.c - src/registry_machine.h - src/registry_internals.c - src/registry_init.c - src/registry_db.c - src/registry_log.c - src/proc_uptime.c - src/sys_devices_system_edac_mc.c - src/plugin_proc_diskspace.c - src/plugin_proc_diskspace.h - src/simple_pattern.c - src/simple_pattern.h - src/inlined.h - src/adaptive_resortable_list.h - src/adaptive_resortable_list.c - src/plugin_freebsd.c - src/plugin_freebsd.h - src/macos_fw.c - src/macos_mach_smi.c - src/macos_sysctl.c - src/plugin_macos.c - src/plugin_macos.h ) set(APPS_PLUGIN_SOURCE_FILES diff --git a/src/apps_plugin.c b/src/apps_plugin.c index af634c0a..103bc143 100644 --- a/src/apps_plugin.c +++ b/src/apps_plugin.c @@ -687,19 +687,19 @@ static inline int managed_log(struct pid_stat *p, uint32_t log, int status) { p->log_thrown |= log; switch(log) { case PID_LOG_IO: - error("Cannot process %s/proc/%d/io (command '%s')", global_host_prefix, p->pid, p->comm); + error("Cannot process %s/proc/%d/io (command '%s')", netdata_configured_host_prefix, p->pid, p->comm); break; case PID_LOG_STATM: - error("Cannot process %s/proc/%d/statm (command '%s')", global_host_prefix, p->pid, p->comm); + error("Cannot process %s/proc/%d/statm (command '%s')", netdata_configured_host_prefix, p->pid, p->comm); break; case PID_LOG_CMDLINE: - error("Cannot process %s/proc/%d/cmdline (command '%s')", global_host_prefix, p->pid, p->comm); + error("Cannot process %s/proc/%d/cmdline (command '%s')", netdata_configured_host_prefix, p->pid, p->comm); break; case PID_LOG_FDS: - error("Cannot process entries in %s/proc/%d/fd (command '%s')", global_host_prefix, p->pid, p->comm); + error("Cannot process entries in %s/proc/%d/fd (command '%s')", netdata_configured_host_prefix, p->pid, p->comm); break; case PID_LOG_STAT: @@ -760,7 +760,7 @@ static inline int read_proc_pid_cmdline(struct pid_stat *p) { if(unlikely(!p->cmdline_filename)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s/proc/%d/cmdline", global_host_prefix, p->pid); + snprintfz(filename, FILENAME_MAX, "%s/proc/%d/cmdline", netdata_configured_host_prefix, p->pid); p->cmdline_filename = strdupz(filename); } @@ -813,7 +813,7 @@ static inline int read_proc_pid_stat(struct pid_stat *p) { if(unlikely(!p->stat_filename)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s/proc/%d/stat", global_host_prefix, p->pid); + snprintfz(filename, FILENAME_MAX, "%s/proc/%d/stat", netdata_configured_host_prefix, p->pid); p->stat_filename = strdupz(filename); } @@ -935,7 +935,7 @@ static inline int read_proc_pid_stat(struct pid_stat *p) { } if(unlikely(debug || (p->target && p->target->debug))) - 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); + 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); if(unlikely(global_iterations_counter == 1)) { p->minflt = 0; @@ -973,7 +973,7 @@ static inline int read_proc_pid_statm(struct pid_stat *p) { if(unlikely(!p->statm_filename)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s/proc/%d/statm", global_host_prefix, p->pid); + snprintfz(filename, FILENAME_MAX, "%s/proc/%d/statm", netdata_configured_host_prefix, p->pid); p->statm_filename = strdupz(filename); } @@ -1011,7 +1011,7 @@ static inline int read_proc_pid_io(struct pid_stat *p) { if(unlikely(!p->io_filename)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s/proc/%d/io", global_host_prefix, p->pid); + snprintfz(filename, FILENAME_MAX, "%s/proc/%d/io", netdata_configured_host_prefix, p->pid); p->io_filename = strdupz(filename); } @@ -1087,7 +1087,7 @@ static inline int read_proc_stat() { static usec_t collected_usec = 0, last_collected_usec = 0; if(unlikely(!ff)) { - snprintfz(filename, FILENAME_MAX, "%s/proc/stat", global_host_prefix); + snprintfz(filename, FILENAME_MAX, "%s/proc/stat", netdata_configured_host_prefix); ff = procfile_open(filename, " \t:", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) goto cleanup; } @@ -1406,7 +1406,7 @@ static inline void zero_pid_fds(struct pid_stat *p, int first, int size) { static inline int read_pid_file_descriptors(struct pid_stat *p) { if(unlikely(!p->fds_dirname)) { char dirname[FILENAME_MAX+1]; - snprintfz(dirname, FILENAME_MAX, "%s/proc/%d/fd", global_host_prefix, p->pid); + snprintfz(dirname, FILENAME_MAX, "%s/proc/%d/fd", netdata_configured_host_prefix, p->pid); p->fds_dirname = strdupz(dirname); } @@ -1449,7 +1449,7 @@ static inline int read_pid_file_descriptors(struct pid_stat *p) { if(unlikely(p->fds[fdid] == 0)) { // we don't know this fd, get it - sprintf(fdname, "%s/proc/%d/fd/%s", global_host_prefix, p->pid, de->d_name); + sprintf(fdname, "%s/proc/%d/fd/%s", netdata_configured_host_prefix, p->pid, de->d_name); ssize_t l = readlink(fdname, linkname, FILENAME_MAX); if(unlikely(l == -1)) { if(debug || (p->target && p->target->debug)) { @@ -1886,7 +1886,7 @@ static int collect_data_for_all_processes(void) { char dirname[FILENAME_MAX + 1]; - snprintfz(dirname, FILENAME_MAX, "%s/proc", global_host_prefix); + snprintfz(dirname, FILENAME_MAX, "%s/proc", netdata_configured_host_prefix); DIR *dir = opendir(dirname); if(!dir) return 0; @@ -3090,12 +3090,12 @@ int main(int argc, char **argv) { error_log_errors_per_period = 100; error_log_throttle_period = 3600; - global_host_prefix = getenv("NETDATA_HOST_PREFIX"); - if(global_host_prefix == NULL) { + netdata_configured_host_prefix = getenv("NETDATA_HOST_PREFIX"); + if(netdata_configured_host_prefix == NULL) { // info("NETDATA_HOST_PREFIX is not passed from netdata"); - global_host_prefix = ""; + netdata_configured_host_prefix = ""; } - // else info("Found NETDATA_HOST_PREFIX='%s'", global_host_prefix); + // else info("Found NETDATA_HOST_PREFIX='%s'", netdata_configured_host_prefix); config_dir = getenv("NETDATA_CONFIG_DIR"); if(config_dir == NULL) { diff --git a/src/common.c b/src/common.c index e3682e87..5243e407 100644 --- a/src/common.c +++ b/src/common.c @@ -8,7 +8,15 @@ # define MADV_DONTFORK INHERIT_NONE #endif /* __FreeBSD__ || __APPLE__*/ -char *global_host_prefix = ""; +char *netdata_configured_config_dir = NULL; +char *netdata_configured_log_dir = NULL; +char *netdata_configured_plugins_dir = NULL; +char *netdata_configured_web_dir = NULL; +char *netdata_configured_cache_dir = NULL; +char *netdata_configured_varlib_dir = NULL; +char *netdata_configured_home_dir = NULL; +char *netdata_configured_host_prefix = NULL; + int enable_ksm = 1; volatile sig_atomic_t netdata_exit = 0; @@ -1115,7 +1123,7 @@ long get_system_cpus(void) { #else char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s/proc/stat", global_host_prefix); + snprintfz(filename, FILENAME_MAX, "%s/proc/stat", netdata_configured_host_prefix); procfile *ff = procfile_open(filename, NULL, PROCFILE_FLAG_DEFAULT); if(!ff) { @@ -1172,7 +1180,7 @@ pid_t get_system_pid_max(void) { read = 1; char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s/proc/sys/kernel/pid_max", global_host_prefix); + snprintfz(filename, FILENAME_MAX, "%s/proc/sys/kernel/pid_max", netdata_configured_host_prefix); unsigned long long max = 0; if(read_single_number_file(filename, &max) != 0) { diff --git a/src/common.h b/src/common.h index e781d47b..5b9b65b0 100644 --- a/src/common.h +++ b/src/common.h @@ -217,6 +217,15 @@ #include "inlined.h" #include "adaptive_resortable_list.h" +extern char *netdata_configured_config_dir; +extern char *netdata_configured_log_dir; +extern char *netdata_configured_plugins_dir; +extern char *netdata_configured_web_dir; +extern char *netdata_configured_cache_dir; +extern char *netdata_configured_varlib_dir; +extern char *netdata_configured_home_dir; +extern char *netdata_configured_host_prefix; + extern void netdata_fix_chart_id(char *s); extern void netdata_fix_chart_name(char *s); @@ -255,7 +264,6 @@ extern int savememory(const char *filename, void *mem, size_t size); extern int fd_is_valid(int fd); -extern char *global_host_prefix; extern int enable_ksm; extern pid_t gettid(void); diff --git a/src/daemon.c b/src/daemon.c index dddafec6..e7f3b037 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -84,8 +84,8 @@ int become_user(const char *username, int pid_fd) uid_t uid = pw->pw_uid; gid_t gid = pw->pw_gid; - create_needed_dir(CACHE_DIR, uid, gid); - create_needed_dir(VARLIB_DIR, uid, gid); + create_needed_dir(netdata_configured_cache_dir, uid, gid); + create_needed_dir(netdata_configured_varlib_dir, uid, gid); if(pidfile[0]) { if(chown(pidfile, uid, gid) == -1) @@ -360,8 +360,8 @@ int become_daemon(int dont_fork, const char *user) else debug(D_SYSTEM, "Successfully became user '%s'.", user); } else { - create_needed_dir(CACHE_DIR, getuid(), getgid()); - create_needed_dir(VARLIB_DIR, getuid(), getgid()); + create_needed_dir(netdata_configured_cache_dir, getuid(), getgid()); + create_needed_dir(netdata_configured_varlib_dir, getuid(), getgid()); } if(pidfd != -1) diff --git a/src/health.c b/src/health.c index ffe4713b..9df2e241 100644 --- a/src/health.c +++ b/src/health.c @@ -11,9 +11,9 @@ struct health_options { }; static struct health_options health = { - .health_default_exec = PLUGINS_DIR "/alarm-notify.sh", + .health_default_exec = NULL, .health_default_recipient = "root", - .log_filename = VARLIB_DIR "/health/alarm_log.db", + .log_filename = NULL, .log_entries_written = 0, .log_fp = NULL }; @@ -2389,7 +2389,7 @@ void health_readdir(const char *path) { static inline char *health_config_dir(void) { char buffer[FILENAME_MAX + 1]; - snprintfz(buffer, FILENAME_MAX, "%s/health.d", config_get("global", "config directory", CONFIG_DIR)); + snprintfz(buffer, FILENAME_MAX, "%s/health.d", netdata_configured_config_dir); return config_get("health", "health configuration directory", buffer); } @@ -2401,7 +2401,8 @@ void health_init(void) { return; } - char *pathname = config_get("health", "health db directory", VARLIB_DIR "/health"); + char pathname[FILENAME_MAX + 1]; + snprintfz(pathname, FILENAME_MAX, "%s/health", netdata_configured_varlib_dir); if(mkdir(pathname, 0770) == -1 && errno != EEXIST) fatal("Cannot create directory '%s'.", pathname); @@ -2414,11 +2415,8 @@ void health_init(void) { char *path = health_config_dir(); - { - char buffer[FILENAME_MAX + 1]; - snprintfz(buffer, FILENAME_MAX, "%s/alarm-notify.sh", config_get("global", "plugins directory", PLUGINS_DIR)); - health.health_default_exec = config_get("health", "script to execute on alarm", buffer); - } + snprintfz(filename, FILENAME_MAX, "%s/alarm-notify.sh", netdata_configured_plugins_dir); + health.health_default_exec = config_get("health", "script to execute on alarm", filename); long n = config_get_number("health", "in memory max health log entries", (long)localhost.health_log.max); if(n < 10) { diff --git a/src/ipc.c b/src/ipc.c index a5ab342d..39797893 100644 --- a/src/ipc.c +++ b/src/ipc.c @@ -57,7 +57,7 @@ static inline int ipc_sem_get_limits(struct ipc_limits *lim) { static char filename[FILENAME_MAX + 1] = ""; if(unlikely(!filename[0])) - snprintfz(filename, FILENAME_MAX, "%s/proc/sys/kernel/sem", global_host_prefix); + snprintfz(filename, FILENAME_MAX, "%s/proc/sys/kernel/sem", netdata_configured_host_prefix); if(unlikely(!ff)) { ff = procfile_open(filename, NULL, PROCFILE_FLAG_DEFAULT); diff --git a/src/main.c b/src/main.c index 8dcc5d70..798b6c25 100644 --- a/src/main.c +++ b/src/main.c @@ -530,18 +530,26 @@ int main(int argc, char **argv) { mallopt(M_ARENA_MAX, 1); #endif - char *config_dir = config_get("global", "config directory", CONFIG_DIR); - // prepare configuration environment variables for the plugins - setenv("NETDATA_CONFIG_DIR" , verify_required_directory(config_dir) , 1); - setenv("NETDATA_PLUGINS_DIR", verify_required_directory(config_get("global", "plugins directory" , PLUGINS_DIR)), 1); - setenv("NETDATA_WEB_DIR" , verify_required_directory(config_get("global", "web files directory", WEB_DIR)) , 1); - setenv("NETDATA_CACHE_DIR" , verify_required_directory(config_get("global", "cache directory" , CACHE_DIR)) , 1); - setenv("NETDATA_LIB_DIR" , verify_required_directory(config_get("global", "lib directory" , VARLIB_DIR)) , 1); - setenv("NETDATA_LOG_DIR" , verify_required_directory(config_get("global", "log directory" , LOG_DIR)) , 1); - setenv("NETDATA_HOST_PREFIX", config_get("global", "host access prefix" , "") , 1); - setenv("HOME" , config_get("global", "home directory" , CACHE_DIR) , 1); + netdata_configured_config_dir = config_get("global", "config directory", CONFIG_DIR); + netdata_configured_log_dir = config_get("global", "log directory", LOG_DIR); + netdata_configured_plugins_dir = config_get("global", "plugins directory", PLUGINS_DIR); + netdata_configured_web_dir = config_get("global", "web files directory", WEB_DIR); + netdata_configured_cache_dir = config_get("global", "cache directory", CACHE_DIR); + netdata_configured_varlib_dir = config_get("global", "lib directory", VARLIB_DIR); + netdata_configured_home_dir = config_get("global", "home directory", CACHE_DIR); + + setenv("NETDATA_CONFIG_DIR" , verify_required_directory(netdata_configured_config_dir), 1); + setenv("NETDATA_PLUGINS_DIR", verify_required_directory(netdata_configured_plugins_dir), 1); + setenv("NETDATA_WEB_DIR" , verify_required_directory(netdata_configured_web_dir), 1); + setenv("NETDATA_CACHE_DIR" , verify_required_directory(netdata_configured_cache_dir), 1); + setenv("NETDATA_LIB_DIR" , verify_required_directory(netdata_configured_varlib_dir), 1); + setenv("NETDATA_LOG_DIR" , verify_required_directory(netdata_configured_log_dir), 1); + setenv("HOME" , verify_required_directory(netdata_configured_home_dir), 1); + + netdata_configured_host_prefix = config_get("global", "host access prefix", ""); + setenv("NETDATA_HOST_PREFIX", netdata_configured_host_prefix, 1); // disable buffering for python plugins setenv("PYTHONUNBUFFERED", "1", 1); @@ -553,8 +561,8 @@ int main(int argc, char **argv) { // work while we are cd into config_dir // to allow the plugins refer to their config // files using relative filenames - if(chdir(config_dir) == -1) - fatal("Cannot cd to '%s'", config_dir); + if(chdir(netdata_configured_config_dir) == -1) + fatal("Cannot cd to '%s'", netdata_configured_config_dir); char path[1024 + 1], *p = getenv("PATH"); if(!p) p = "/bin:/usr/bin"; @@ -594,18 +602,23 @@ int main(int argc, char **argv) { // -------------------------------------------------------------------- - global_host_prefix = config_get("global", "host access prefix", ""); - setenv("NETDATA_HOST_PREFIX", global_host_prefix, 1); - get_system_HZ(); get_system_cpus(); get_system_pid_max(); // -------------------------------------------------------------------- - stdout_filename = config_get("global", "debug log", LOG_DIR "/debug.log"); - stderr_filename = config_get("global", "error log", LOG_DIR "/error.log"); - stdaccess_filename = config_get("global", "access log", LOG_DIR "/access.log"); + { + char filename[FILENAME_MAX + 1]; + snprintfz(filename, FILENAME_MAX, "%s/debug.log", netdata_configured_log_dir); + stdout_filename = config_get("global", "debug log", filename); + + snprintfz(filename, FILENAME_MAX, "%s/error.log", netdata_configured_log_dir); + stderr_filename = config_get("global", "error log", filename); + + snprintfz(filename, FILENAME_MAX, "%s/access.log", netdata_configured_log_dir); + stdaccess_filename = config_get("global", "access log", filename); + } error_log_throttle_period_backup = error_log_throttle_period = config_get_number("global", "errors flood protection period", error_log_throttle_period); diff --git a/src/plugin_proc.c b/src/plugin_proc.c index 9fdb016f..215925a5 100644 --- a/src/plugin_proc.c +++ b/src/plugin_proc.c @@ -157,7 +157,7 @@ int get_numa_node_count(void) numa_node_count = 0; char name[FILENAME_MAX + 1]; - snprintfz(name, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/devices/system/node"); + snprintfz(name, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/devices/system/node"); char *dirname = config_get("plugin:proc:/sys/devices/system/node", "directory to monitor", name); DIR *dir = opendir(dirname); diff --git a/src/plugin_tc.c b/src/plugin_tc.c index 5fdbf325..3cb64505 100644 --- a/src/plugin_tc.c +++ b/src/plugin_tc.c @@ -782,7 +782,7 @@ void *tc_main(void *ptr) { #endif uint32_t first_hash; - snprintfz(buffer, TC_LINE_MAX, "%s/tc-qos-helper.sh", config_get("plugins", "plugins directory", PLUGINS_DIR)); + snprintfz(buffer, TC_LINE_MAX, "%s/tc-qos-helper.sh", netdata_configured_plugins_dir); char *tc_script = config_get("plugin:tc", "script to run to get tc values", buffer); for(;1;) { diff --git a/src/plugins_d.c b/src/plugins_d.c index 4b83b528..60f88d88 100644 --- a/src/plugins_d.c +++ b/src/plugins_d.c @@ -442,7 +442,7 @@ void *pluginsd_main(void *ptr) { if(pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL) != 0) error("Cannot set pthread cancel state to ENABLE."); - char *dir_name = config_get("plugins", "plugins directory", PLUGINS_DIR); + char *dir_name = netdata_configured_plugins_dir; int automatic_run = config_get_boolean("plugins", "enable running new plugins", 1); int scan_frequency = (int) config_get_number("plugins", "check for new plugins every", 60); DIR *dir = NULL; diff --git a/src/proc_diskstats.c b/src/proc_diskstats.c index 9f7e8e9b..b21838b6 100644 --- a/src/proc_diskstats.c +++ b/src/proc_diskstats.c @@ -72,7 +72,7 @@ static struct disk *get_disk(unsigned long major, unsigned long minor, char *dis // get the default path for finding info about the block device if(unlikely(!path_find_block_device[0])) { - snprintfz(buffer, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/dev/block/%lu:%lu/%s"); + snprintfz(buffer, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/dev/block/%lu:%lu/%s"); snprintfz(path_find_block_device, FILENAME_MAX, "%s", config_get("plugin:proc:/proc/diskstats", "path to get block device infos", buffer)); } @@ -126,11 +126,11 @@ static struct disk *get_disk(unsigned long major, unsigned long minor, char *dis // find the disk sector size if(unlikely(!path_to_get_hw_sector_size[0])) { - snprintfz(buffer, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/block/%s/queue/hw_sector_size"); + snprintfz(buffer, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/block/%s/queue/hw_sector_size"); snprintfz(path_to_get_hw_sector_size, FILENAME_MAX, "%s", config_get("plugin:proc:/proc/diskstats", "path to get h/w sector size", buffer)); } if(unlikely(!path_to_get_hw_sector_size_partitions[0])) { - snprintfz(buffer, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/dev/block/%lu:%lu/subsystem/%s/../queue/hw_sector_size"); + snprintfz(buffer, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/dev/block/%lu:%lu/subsystem/%s/../queue/hw_sector_size"); 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)); } @@ -233,7 +233,7 @@ int do_proc_diskstats(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/diskstats"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/diskstats"); ff = procfile_open(config_get("plugin:proc:/proc/diskstats", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT); } if(unlikely(!ff)) return 0; diff --git a/src/proc_interrupts.c b/src/proc_interrupts.c index f663c0fd..5e29f4f0 100644 --- a/src/proc_interrupts.c +++ b/src/proc_interrupts.c @@ -59,7 +59,7 @@ int do_proc_interrupts(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/interrupts"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/interrupts"); ff = procfile_open(config_get("plugin:proc:/proc/interrupts", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT); } if(unlikely(!ff)) diff --git a/src/proc_loadavg.c b/src/proc_loadavg.c index aa1b2aeb..4b1779f7 100644 --- a/src/proc_loadavg.c +++ b/src/proc_loadavg.c @@ -11,7 +11,7 @@ int do_proc_loadavg(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/loadavg"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/loadavg"); ff = procfile_open(config_get("plugin:proc:/proc/loadavg", "filename to monitor", filename), " \t,:|/", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) diff --git a/src/proc_meminfo.c b/src/proc_meminfo.c index 19ba8da3..da6a430b 100644 --- a/src/proc_meminfo.c +++ b/src/proc_meminfo.c @@ -109,7 +109,7 @@ int do_proc_meminfo(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/meminfo"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/meminfo"); ff = procfile_open(config_get("plugin:proc:/proc/meminfo", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; diff --git a/src/proc_net_dev.c b/src/proc_net_dev.c index a0e19f3c..bb1e4c0f 100644 --- a/src/proc_net_dev.c +++ b/src/proc_net_dev.c @@ -134,7 +134,7 @@ int do_proc_net_dev(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/dev"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/dev"); ff = procfile_open(config_get("plugin:proc:/proc/net/dev", "filename to monitor", filename), " \t,:|", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; } diff --git a/src/proc_net_ip_vs_stats.c b/src/proc_net_ip_vs_stats.c index a5329929..96f4660f 100644 --- a/src/proc_net_ip_vs_stats.c +++ b/src/proc_net_ip_vs_stats.c @@ -13,7 +13,7 @@ int do_proc_net_ip_vs_stats(int update_every, usec_t dt) { if(!ff) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/ip_vs_stats"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/ip_vs_stats"); ff = procfile_open(config_get("plugin:proc:/proc/net/ip_vs_stats", "filename to monitor", filename), " \t,:|", PROCFILE_FLAG_DEFAULT); } if(!ff) return 1; diff --git a/src/proc_net_netstat.c b/src/proc_net_netstat.c index 37b7add1..2235e79b 100644 --- a/src/proc_net_netstat.c +++ b/src/proc_net_netstat.c @@ -195,7 +195,7 @@ int do_proc_net_netstat(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/netstat"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/netstat"); ff = procfile_open(config_get("plugin:proc:/proc/net/netstat", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; } diff --git a/src/proc_net_rpc_nfs.c b/src/proc_net_rpc_nfs.c index 9dba08d5..e7f6bb6e 100644 --- a/src/proc_net_rpc_nfs.c +++ b/src/proc_net_rpc_nfs.c @@ -136,7 +136,7 @@ int do_proc_net_rpc_nfs(int update_every, usec_t dt) { if(!ff) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/rpc/nfs"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/rpc/nfs"); ff = procfile_open(config_get("plugin:proc:/proc/net/rpc/nfs", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT); } if(!ff) return 1; diff --git a/src/proc_net_rpc_nfsd.c b/src/proc_net_rpc_nfsd.c index e857ad6a..969910f3 100644 --- a/src/proc_net_rpc_nfsd.c +++ b/src/proc_net_rpc_nfsd.c @@ -217,7 +217,7 @@ int do_proc_net_rpc_nfsd(int update_every, usec_t dt) { if(!ff) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/rpc/nfsd"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/rpc/nfsd"); ff = procfile_open(config_get("plugin:proc:/proc/net/rpc/nfsd", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT); } if(!ff) return 1; diff --git a/src/proc_net_snmp.c b/src/proc_net_snmp.c index cd5c250a..7707d3b7 100644 --- a/src/proc_net_snmp.c +++ b/src/proc_net_snmp.c @@ -355,7 +355,7 @@ int do_proc_net_snmp(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/snmp"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/snmp"); ff = procfile_open(config_get("plugin:proc:/proc/net/snmp", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; } diff --git a/src/proc_net_snmp6.c b/src/proc_net_snmp6.c index 51d7121a..27859215 100644 --- a/src/proc_net_snmp6.c +++ b/src/proc_net_snmp6.c @@ -246,7 +246,7 @@ int do_proc_net_snmp6(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/snmp6"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/snmp6"); ff = procfile_open(config_get("plugin:proc:/proc/net/snmp6", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; diff --git a/src/proc_net_softnet_stat.c b/src/proc_net_softnet_stat.c index 2f4eb3e6..ed6d8db7 100644 --- a/src/proc_net_softnet_stat.c +++ b/src/proc_net_softnet_stat.c @@ -24,7 +24,7 @@ int do_proc_net_softnet_stat(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/softnet_stat"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/softnet_stat"); ff = procfile_open(config_get("plugin:proc:/proc/net/softnet_stat", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; } diff --git a/src/proc_net_stat_conntrack.c b/src/proc_net_stat_conntrack.c index b9c72498..7a90683b 100644 --- a/src/proc_net_stat_conntrack.c +++ b/src/proc_net_stat_conntrack.c @@ -16,10 +16,10 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) { if(unlikely(do_sockets == -1)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/stat/nf_conntrack"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/stat/nf_conntrack"); nf_conntrack_filename = config_get("plugin:proc:/proc/net/stat/nf_conntrack", "filename to monitor", filename); - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/sys/net/netfilter/nf_conntrack_max"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/sys/net/netfilter/nf_conntrack_max"); nf_conntrack_max_filename = config_get("plugin:proc:/proc/sys/net/netfilter/nf_conntrack_max", "filename to monitor", filename); 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; @@ -35,7 +35,7 @@ int do_proc_net_stat_conntrack(int update_every, usec_t dt) { do_sockets = 1; if(!read_full) { - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/sys/net/netfilter/nf_conntrack_count"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/sys/net/netfilter/nf_conntrack_count"); nf_conntrack_count_filename = config_get("plugin:proc:/proc/sys/net/netfilter/nf_conntrack_count", "filename to monitor", filename); if(read_single_number_file(nf_conntrack_count_filename, &aentries)) diff --git a/src/proc_net_stat_synproxy.c b/src/proc_net_stat_synproxy.c index 6bb0a3c6..688e8c7c 100644 --- a/src/proc_net_stat_synproxy.c +++ b/src/proc_net_stat_synproxy.c @@ -18,7 +18,7 @@ int do_proc_net_stat_synproxy(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/stat/synproxy"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/net/stat/synproxy"); ff = procfile_open(config_get("plugin:proc:/proc/net/stat/synproxy", "filename to monitor", filename), " \t,:|", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; diff --git a/src/proc_self_mountinfo.c b/src/proc_self_mountinfo.c index d07f2251..780c2af7 100644 --- a/src/proc_self_mountinfo.c +++ b/src/proc_self_mountinfo.c @@ -175,10 +175,10 @@ static inline int is_read_only(const char *s) { // read the whole mountinfo into a linked list struct mountinfo *mountinfo_read(int do_statvfs) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s/proc/self/mountinfo", global_host_prefix); + snprintfz(filename, FILENAME_MAX, "%s/proc/self/mountinfo", netdata_configured_host_prefix); procfile *ff = procfile_open(filename, " \t", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) { - snprintfz(filename, FILENAME_MAX, "%s/proc/1/mountinfo", global_host_prefix); + snprintfz(filename, FILENAME_MAX, "%s/proc/1/mountinfo", netdata_configured_host_prefix); ff = procfile_open(filename, " \t", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return NULL; } diff --git a/src/proc_softirqs.c b/src/proc_softirqs.c index c7b10d70..9eb72cd3 100644 --- a/src/proc_softirqs.c +++ b/src/proc_softirqs.c @@ -58,7 +58,7 @@ int do_proc_softirqs(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/softirqs"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/softirqs"); ff = procfile_open(config_get("plugin:proc:/proc/softirqs", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; } diff --git a/src/proc_stat.c b/src/proc_stat.c index f7e6d5bc..d52de1b2 100644 --- a/src/proc_stat.c +++ b/src/proc_stat.c @@ -24,7 +24,7 @@ int do_proc_stat(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/stat"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/stat"); ff = procfile_open(config_get("plugin:proc:/proc/stat", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; } diff --git a/src/proc_sys_kernel_random_entropy_avail.c b/src/proc_sys_kernel_random_entropy_avail.c index 388406e0..25dbca83 100644 --- a/src/proc_sys_kernel_random_entropy_avail.c +++ b/src/proc_sys_kernel_random_entropy_avail.c @@ -7,7 +7,7 @@ int do_proc_sys_kernel_random_entropy_avail(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/sys/kernel/random/entropy_avail"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/sys/kernel/random/entropy_avail"); ff = procfile_open(config_get("plugin:proc:/proc/sys/kernel/random/entropy_avail", "filename to monitor", filename), "", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; } diff --git a/src/proc_uptime.c b/src/proc_uptime.c index 9f341a33..8dd10b1f 100644 --- a/src/proc_uptime.c +++ b/src/proc_uptime.c @@ -13,7 +13,7 @@ int do_proc_uptime(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/uptime"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/uptime"); ff = procfile_open(config_get("plugin:proc:/proc/uptime", "filename to monitor", filename), " \t", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) diff --git a/src/proc_vmstat.c b/src/proc_vmstat.c index ea917b98..748fa348 100644 --- a/src/proc_vmstat.c +++ b/src/proc_vmstat.c @@ -62,7 +62,7 @@ int do_proc_vmstat(int update_every, usec_t dt) { if(unlikely(!ff)) { char filename[FILENAME_MAX + 1]; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/vmstat"); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/proc/vmstat"); ff = procfile_open(config_get("plugin:proc:/proc/vmstat", "filename to monitor", filename), " \t:", PROCFILE_FLAG_DEFAULT); if(unlikely(!ff)) return 1; } diff --git a/src/registry_init.c b/src/registry_init.c index fb61acd0..a846f861 100644 --- a/src/registry_init.c +++ b/src/registry_init.c @@ -7,7 +7,8 @@ int registry_init(void) { registry.enabled = config_get_boolean("registry", "enabled", 0); // pathnames - registry.pathname = config_get("registry", "registry db directory", VARLIB_DIR "/registry"); + snprintfz(filename, FILENAME_MAX, "%s/registry", netdata_configured_varlib_dir); + registry.pathname = config_get("registry", "registry db directory", filename); if(mkdir(registry.pathname, 0770) == -1 && errno != EEXIST) fatal("Cannot create directory '%s'.", registry.pathname); diff --git a/src/rrd.c b/src/rrd.c index a6c5cbb6..a1770439 100644 --- a/src/rrd.c +++ b/src/rrd.c @@ -392,19 +392,11 @@ char *rrdset_cache_dir(const char *id) { char *ret = NULL; - static char *cache_dir = NULL; - if(!cache_dir) { - cache_dir = config_get("global", "cache directory", CACHE_DIR); - int r = mkdir(cache_dir, 0755); - if(r != 0 && errno != EEXIST) - error("Cannot create directory '%s'", cache_dir); - } - char b[FILENAME_MAX + 1]; char n[FILENAME_MAX + 1]; rrdset_strncpyz_name(b, id, FILENAME_MAX); - snprintfz(n, FILENAME_MAX, "%s/%s", cache_dir, b); + snprintfz(n, FILENAME_MAX, "%s/%s", netdata_configured_cache_dir, b); ret = config_get(id, "cache directory", n); if(rrd_memory_mode == RRD_MEMORY_MODE_MAP || rrd_memory_mode == RRD_MEMORY_MODE_SAVE) { diff --git a/src/sys_devices_system_edac_mc.c b/src/sys_devices_system_edac_mc.c index c764615f..260f5121 100644 --- a/src/sys_devices_system_edac_mc.c +++ b/src/sys_devices_system_edac_mc.c @@ -23,7 +23,7 @@ static struct mc *mc_root = NULL; static void find_all_mc() { char name[FILENAME_MAX + 1]; - snprintfz(name, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/devices/system/edac/mc"); + snprintfz(name, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/devices/system/edac/mc"); char *dirname = config_get("plugin:proc:/sys/devices/system/edac/mc", "directory to monitor", name); DIR *dir = opendir(dirname); diff --git a/src/sys_devices_system_node.c b/src/sys_devices_system_node.c index 18c3fcd3..eb031829 100644 --- a/src/sys_devices_system_node.c +++ b/src/sys_devices_system_node.c @@ -12,7 +12,7 @@ static struct node *numa_root = NULL; static int find_all_nodes() { int numa_node_count = 0; char name[FILENAME_MAX + 1]; - snprintfz(name, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/devices/system/node"); + snprintfz(name, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/devices/system/node"); char *dirname = config_get("plugin:proc:/sys/devices/system/node", "directory to monitor", name); DIR *dir = opendir(dirname); diff --git a/src/sys_fs_cgroup.c b/src/sys_fs_cgroup.c index faeb7c93..8b92646b 100644 --- a/src/sys_fs_cgroup.c +++ b/src/sys_fs_cgroup.c @@ -49,7 +49,7 @@ static SIMPLE_PATTERN *enabled_cgroup_paths = NULL; static SIMPLE_PATTERN *enabled_cgroup_renames = NULL; static SIMPLE_PATTERN *systemd_services_cgroups = NULL; -static char *cgroups_rename_script = PLUGINS_DIR "/cgroup-name.sh"; +static char *cgroups_rename_script = NULL; static uint32_t Read_hash = 0; static uint32_t Write_hash = 0; @@ -105,7 +105,7 @@ void read_cgroup_plugin_configuration() { s = "/sys/fs/cgroup/cpuacct"; } else s = mi->mount_point; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, s); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, s); cgroup_cpuacct_base = config_get("plugin:cgroups", "path to /sys/fs/cgroup/cpuacct", filename); mi = mountinfo_find_by_filesystem_super_option(root, "cgroup", "blkio"); @@ -115,7 +115,7 @@ void read_cgroup_plugin_configuration() { s = "/sys/fs/cgroup/blkio"; } else s = mi->mount_point; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, s); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, s); cgroup_blkio_base = config_get("plugin:cgroups", "path to /sys/fs/cgroup/blkio", filename); mi = mountinfo_find_by_filesystem_super_option(root, "cgroup", "memory"); @@ -125,7 +125,7 @@ void read_cgroup_plugin_configuration() { s = "/sys/fs/cgroup/memory"; } else s = mi->mount_point; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, s); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, s); cgroup_memory_base = config_get("plugin:cgroups", "path to /sys/fs/cgroup/memory", filename); mi = mountinfo_find_by_filesystem_super_option(root, "cgroup", "devices"); @@ -135,7 +135,7 @@ void read_cgroup_plugin_configuration() { s = "/sys/fs/cgroup/devices"; } else s = mi->mount_point; - snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, s); + snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, s); cgroup_devices_base = config_get("plugin:cgroups", "path to /sys/fs/cgroup/devices", filename); 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() { " * " ), SIMPLE_PATTERN_EXACT); - cgroups_rename_script = config_get("plugin:cgroups", "script to get cgroup names", cgroups_rename_script); + snprintfz(filename, FILENAME_MAX, "%s/cgroup-name.sh", netdata_configured_plugins_dir); + cgroups_rename_script = config_get("plugin:cgroups", "script to get cgroup names", filename); enabled_cgroup_renames = simple_pattern_create( config_get("plugin:cgroups", "run script to rename cgroups matching", diff --git a/src/sys_kernel_mm_ksm.c b/src/sys_kernel_mm_ksm.c index 391aa4fd..4998b010 100644 --- a/src/sys_kernel_mm_ksm.c +++ b/src/sys_kernel_mm_ksm.c @@ -28,31 +28,31 @@ int do_sys_kernel_mm_ksm(int update_every, usec_t dt) { page_size = sysconf(_SC_PAGESIZE); if(!ff_pages_shared) { - snprintfz(values[PAGES_SHARED].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_shared"); + snprintfz(values[PAGES_SHARED].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_shared"); 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)); ff_pages_shared = procfile_open(values[PAGES_SHARED].filename, " \t:", PROCFILE_FLAG_DEFAULT); } if(!ff_pages_sharing) { - snprintfz(values[PAGES_SHARING].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_sharing"); + snprintfz(values[PAGES_SHARING].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_sharing"); 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)); ff_pages_sharing = procfile_open(values[PAGES_SHARING].filename, " \t:", PROCFILE_FLAG_DEFAULT); } if(!ff_pages_unshared) { - snprintfz(values[PAGES_UNSHARED].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_unshared"); + snprintfz(values[PAGES_UNSHARED].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_unshared"); 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)); ff_pages_unshared = procfile_open(values[PAGES_UNSHARED].filename, " \t:", PROCFILE_FLAG_DEFAULT); } if(!ff_pages_volatile) { - snprintfz(values[PAGES_VOLATILE].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_volatile"); + snprintfz(values[PAGES_VOLATILE].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_volatile"); 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)); ff_pages_volatile = procfile_open(values[PAGES_VOLATILE].filename, " \t:", PROCFILE_FLAG_DEFAULT); } if(!ff_pages_to_scan) { - snprintfz(values[PAGES_TO_SCAN].filename, FILENAME_MAX, "%s%s", global_host_prefix, "/sys/kernel/mm/ksm/pages_to_scan"); + snprintfz(values[PAGES_TO_SCAN].filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/kernel/mm/ksm/pages_to_scan"); 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)); ff_pages_to_scan = procfile_open(values[PAGES_TO_SCAN].filename, " \t:", PROCFILE_FLAG_DEFAULT); } diff --git a/src/web_client.c b/src/web_client.c index 5acb44d5..ed90dcf6 100644 --- a/src/web_client.c +++ b/src/web_client.c @@ -290,12 +290,7 @@ gid_t web_files_gid(void) { int mysendfile(struct web_client *w, char *filename) { - static char *web_dir = NULL; - - // initialize our static data - if(unlikely(!web_dir)) web_dir = config_get("global", "web files directory", WEB_DIR); - - debug(D_WEB_CLIENT, "%llu: Looking for file '%s/%s'", w->id, web_dir, filename); + debug(D_WEB_CLIENT, "%llu: Looking for file '%s/%s'", w->id, netdata_configured_web_dir, filename); // skip leading slashes while (*filename == '/') filename++; @@ -324,7 +319,7 @@ int mysendfile(struct web_client *w, char *filename) // access the file char webfilename[FILENAME_MAX + 1]; - snprintfz(webfilename, FILENAME_MAX, "%s/%s", web_dir, filename); + snprintfz(webfilename, FILENAME_MAX, "%s/%s", netdata_configured_web_dir, filename); // check if the file exists struct stat stat; -- 2.39.2