summaryrefslogtreecommitdiffstats
path: root/src/daemon/analytics.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-26 08:15:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-26 08:15:35 +0000
commitf09848204fa5283d21ea43e262ee41aa578e1808 (patch)
treec62385d7adf209fa6a798635954d887f718fb3fb /src/daemon/analytics.c
parentReleasing debian version 1.46.3-2. (diff)
downloadnetdata-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.c30
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);
+}