diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-26 08:15:24 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-26 08:15:35 +0000 |
commit | f09848204fa5283d21ea43e262ee41aa578e1808 (patch) | |
tree | c62385d7adf209fa6a798635954d887f718fb3fb /src/daemon/analytics.c | |
parent | Releasing debian version 1.46.3-2. (diff) | |
download | netdata-f09848204fa5283d21ea43e262ee41aa578e1808.tar.xz netdata-f09848204fa5283d21ea43e262ee41aa578e1808.zip |
Merging upstream version 1.47.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | src/daemon/analytics.c | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/src/daemon/analytics.c b/src/daemon/analytics.c index 33f6f357f..0e5c221c4 100644 --- a/src/daemon/analytics.c +++ b/src/daemon/analytics.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-or-later +#include "analytics.h" #include "common.h" #include "buildinfo.h" @@ -325,18 +326,15 @@ void analytics_alarms_notifications(void) strcat(script, " dump_methods"); - pid_t command_pid; - netdata_log_debug(D_ANALYTICS, "Executing %s", script); BUFFER *b = buffer_create(1000, NULL); int cnt = 0; - FILE *fp_child_input; - FILE *fp_child_output = netdata_popen(script, &command_pid, &fp_child_input); - if (fp_child_output) { + POPEN_INSTANCE *instance = spawn_popen_run(script); + if (instance) { char line[200 + 1]; - while (fgets(line, 200, fp_child_output) != NULL) { + while (fgets(line, 200, instance->child_stdout_fp) != NULL) { char *end = line; while (*end && *end != '\n') end++; @@ -349,7 +347,7 @@ void analytics_alarms_notifications(void) cnt++; } - netdata_pclose(fp_child_input, fp_child_output, command_pid); + spawn_popen_wait(instance); } freez(script); @@ -470,8 +468,6 @@ void analytics_alarms(void) */ void analytics_misc(void) { - spinlock_init(&analytics_data.spinlock); - #ifdef ENABLE_ACLK analytics_set_data(&analytics_data.netdata_host_cloud_available, "true"); analytics_set_data_str(&analytics_data.netdata_host_aclk_implementation, "Next Generation"); @@ -1002,8 +998,6 @@ void analytics_statistic_send(const analytics_statistic_t *statistic) { char *command_to_run = mallocz( sizeof(char) * (strlen(statistic->action) + strlen(action_result) + strlen(action_data) + strlen(as_script) + analytics_data.data_length + (ANALYTICS_NO_OF_ITEMS * 3) + 15)); - pid_t command_pid; - sprintf( command_to_run, "%s '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' '%s' ", @@ -1056,12 +1050,11 @@ void analytics_statistic_send(const analytics_statistic_t *statistic) { "%s '%s' '%s' '%s'", as_script, statistic->action, action_result, action_data); - FILE *fp_child_input; - FILE *fp_child_output = netdata_popen(command_to_run, &command_pid, &fp_child_input); - if (fp_child_output) { + POPEN_INSTANCE *instance = spawn_popen_run(command_to_run); + if (instance) { char buffer[4 + 1]; - char *s = fgets(buffer, 4, fp_child_output); - int exit_code = netdata_pclose(fp_child_input, fp_child_output, command_pid); + char *s = fgets(buffer, 4, instance->child_stdout_fp); + int exit_code = spawn_popen_wait(instance); if (exit_code) nd_log(NDLS_DAEMON, NDLP_NOTICE, @@ -1081,3 +1074,8 @@ void analytics_statistic_send(const analytics_statistic_t *statistic) { freez(command_to_run); } + +void analytics_init(void) +{ + spinlock_init(&analytics_data.spinlock); +} |