diff options
Diffstat (limited to '')
-rw-r--r-- | collectors/cgroups.plugin/cgroup-network.c | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/collectors/cgroups.plugin/cgroup-network.c b/collectors/cgroups.plugin/cgroup-network.c index b00f246bb..508ea07c6 100644 --- a/collectors/cgroups.plugin/cgroup-network.c +++ b/collectors/cgroups.plugin/cgroup-network.c @@ -10,12 +10,16 @@ #include <sched.h> #endif -char environment_variable2[FILENAME_MAX + 50] = ""; -char environment_variable3[FILENAME_MAX + 50] = ""; +char env_netdata_host_prefix[FILENAME_MAX + 50] = ""; +char env_netdata_log_method[FILENAME_MAX + 50] = ""; +char env_netdata_log_format[FILENAME_MAX + 50] = ""; +char env_netdata_log_level[FILENAME_MAX + 50] = ""; char *environment[] = { "PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin", - environment_variable2, - environment_variable3, + env_netdata_host_prefix, + env_netdata_log_method, + env_netdata_log_format, + env_netdata_log_level, NULL }; @@ -288,7 +292,8 @@ int switch_namespace(const char *prefix, pid_t pid) { pid_t read_pid_from_cgroup_file(const char *filename) { int fd = open(filename, procfile_open_flags); if(fd == -1) { - collector_error("Cannot open pid_from_cgroup() file '%s'.", filename); + if (errno != ENOENT) + collector_error("Cannot open pid_from_cgroup() file '%s'.", filename); return 0; } @@ -648,12 +653,11 @@ void usage(void) { } int main(int argc, char **argv) { - stderror = stderr; pid_t pid = 0; - program_name = argv[0]; program_version = VERSION; - error_log_syslog = 0; + clocks_init(); + nd_log_initialize_for_external_plugins("cgroup-network"); // since cgroup-network runs as root, prevent it from opening symbolic links procfile_open_flags = O_RDONLY|O_NOFOLLOW; @@ -662,7 +666,7 @@ int main(int argc, char **argv) { // make sure NETDATA_HOST_PREFIX is safe netdata_configured_host_prefix = getenv("NETDATA_HOST_PREFIX"); - if(verify_netdata_host_prefix() == -1) exit(1); + if(verify_netdata_host_prefix(false) == -1) exit(1); if(netdata_configured_host_prefix[0] != '\0' && verify_path(netdata_configured_host_prefix) == -1) fatal("invalid NETDATA_HOST_PREFIX '%s'", netdata_configured_host_prefix); @@ -671,11 +675,20 @@ int main(int argc, char **argv) { // build a safe environment for our script // the first environment variable is a fixed PATH= - snprintfz(environment_variable2, sizeof(environment_variable2) - 1, "NETDATA_HOST_PREFIX=%s", netdata_configured_host_prefix); + snprintfz(env_netdata_host_prefix, sizeof(env_netdata_host_prefix) - 1, "NETDATA_HOST_PREFIX=%s", netdata_configured_host_prefix); - char *s = getenv("NETDATA_LOG_SEVERITY_LEVEL"); + char *s; + + s = getenv("NETDATA_LOG_METHOD"); + snprintfz(env_netdata_log_method, sizeof(env_netdata_log_method) - 1, "NETDATA_LOG_METHOD=%s", nd_log_method_for_external_plugins(s)); + + s = getenv("NETDATA_LOG_FORMAT"); + if (s) + snprintfz(env_netdata_log_format, sizeof(env_netdata_log_format) - 1, "NETDATA_LOG_FORMAT=%s", s); + + s = getenv("NETDATA_LOG_LEVEL"); if (s) - snprintfz(environment_variable3, sizeof(environment_variable3) - 1, "NETDATA_LOG_SEVERITY_LEVEL=%s", s); + snprintfz(env_netdata_log_level, sizeof(env_netdata_log_level) - 1, "NETDATA_LOG_LEVEL=%s", s); // ------------------------------------------------------------------------ @@ -686,8 +699,6 @@ int main(int argc, char **argv) { if(argc != 3) usage(); - - log_set_global_severity_for_external_plugins(); int arg = 1; int helper = 1; |