summaryrefslogtreecommitdiffstats
path: root/daemon/analytics.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/analytics.c')
-rw-r--r--daemon/analytics.c89
1 files changed, 39 insertions, 50 deletions
diff --git a/daemon/analytics.c b/daemon/analytics.c
index bb878f708..4501a46a5 100644
--- a/daemon/analytics.c
+++ b/daemon/analytics.c
@@ -1,12 +1,13 @@
// SPDX-License-Identifier: GPL-3.0-or-later
#include "common.h"
+#include "buildinfo.h"
struct analytics_data analytics_data;
extern void analytics_exporting_connectors (BUFFER *b);
extern void analytics_exporting_connectors_ssl (BUFFER *b);
extern void analytics_build_info (BUFFER *b);
-extern int aclk_connected;
+extern int aclk_connected, aclk_use_new_cloud_arch;
struct collector {
char *plugin;
@@ -52,6 +53,7 @@ void analytics_log_data(void)
debug(D_ANALYTICS, "NETDATA_CONFIG_HOSTS_AVAILABLE : [%s]", analytics_data.netdata_config_hosts_available);
debug(D_ANALYTICS, "NETDATA_HOST_CLOUD_AVAILABLE : [%s]", analytics_data.netdata_host_cloud_available);
debug(D_ANALYTICS, "NETDATA_HOST_ACLK_AVAILABLE : [%s]", analytics_data.netdata_host_aclk_available);
+ debug(D_ANALYTICS, "NETDATA_HOST_ACLK_PROTOCOL : [%s]", analytics_data.netdata_host_aclk_protocol);
debug(D_ANALYTICS, "NETDATA_HOST_ACLK_IMPLEMENTATION : [%s]", analytics_data.netdata_host_aclk_implementation);
debug(D_ANALYTICS, "NETDATA_HOST_AGENT_CLAIMED : [%s]", analytics_data.netdata_host_agent_claimed);
debug(D_ANALYTICS, "NETDATA_HOST_CLOUD_ENABLED : [%s]", analytics_data.netdata_host_cloud_enabled);
@@ -97,6 +99,7 @@ void analytics_free_data(void)
freez(analytics_data.netdata_config_hosts_available);
freez(analytics_data.netdata_host_cloud_available);
freez(analytics_data.netdata_host_aclk_available);
+ freez(analytics_data.netdata_host_aclk_protocol);
freez(analytics_data.netdata_host_aclk_implementation);
freez(analytics_data.netdata_host_agent_claimed);
freez(analytics_data.netdata_host_cloud_enabled);
@@ -357,47 +360,23 @@ void analytics_alarms_notifications(void)
buffer_free(b);
}
-char *get_value_from_key(char *buffer, char *key)
-{
- char *s = NULL, *t = NULL;
- s = t = buffer + strlen(key) + 2;
- if (s) {
- while (*s == '\'')
- s++;
- while (*++t != '\0');
- while (--t > s && *t == '\'')
- *t = '\0';
- }
- return s;
-}
-
-/*
- * Checks for the existence of .install_type file and reads it
- */
void analytics_get_install_type(void)
{
- char *install_type_filename;
- analytics_set_data_str(&analytics_data.netdata_install_type, "");
- analytics_set_data_str(&analytics_data.netdata_prebuilt_distro, "");
+ struct install_type_info t = get_install_type();
- int install_type_filename_len = (strlen(netdata_configured_user_config_dir) + strlen(".install-type") + 3);
- install_type_filename = mallocz(sizeof(char) * install_type_filename_len);
- snprintfz(install_type_filename, install_type_filename_len - 1, "%s/%s", netdata_configured_user_config_dir, ".install-type");
+ if (t.install_type == NULL) {
+ analytics_set_data_str(&analytics_data.netdata_install_type, "unknown");
+ } else {
+ analytics_set_data_str(&analytics_data.netdata_install_type, t.install_type);
+ }
- FILE *fp = fopen(install_type_filename, "r");
- if (fp) {
- char *s, buf[256 + 1];
- size_t len = 0;
-
- while ((s = fgets_trim_len(buf, 256, fp, &len))) {
- if (!strncmp(buf, "INSTALL_TYPE='", 14))
- analytics_set_data_str(&analytics_data.netdata_install_type, (char *)get_value_from_key(buf, "INSTALL_TYPE"));
- else if (!strncmp(buf, "PREBUILT_DISTRO='", 17))
- analytics_set_data_str(&analytics_data.netdata_prebuilt_distro, (char *)get_value_from_key(buf, "PREBUILT_DISTRO"));
- }
- fclose(fp);
+ if (t.prebuilt_distro != NULL) {
+ analytics_set_data_str(&analytics_data.netdata_prebuilt_distro, t.prebuilt_distro);
}
- freez(install_type_filename);
+
+ freez(t.prebuilt_arch);
+ freez(t.prebuilt_distro);
+ freez(t.install_type);
}
/*
@@ -488,28 +467,18 @@ void analytics_alarms(void)
}
/*
- * Misc attributes to get (run from meta)
+ * Misc attributes to get (run from start)
*/
void analytics_misc(void)
{
#ifdef ENABLE_ACLK
analytics_set_data(&analytics_data.netdata_host_cloud_available, "true");
- if (aclk_ng)
- analytics_set_data_str(&analytics_data.netdata_host_aclk_implementation, "Next Generation");
- else
- analytics_set_data_str(&analytics_data.netdata_host_aclk_implementation, "legacy");
+ analytics_set_data_str(&analytics_data.netdata_host_aclk_implementation, "Next Generation");
#else
analytics_set_data(&analytics_data.netdata_host_cloud_available, "false");
analytics_set_data_str(&analytics_data.netdata_host_aclk_implementation, "");
#endif
-#ifdef ENABLE_ACLK
- if (aclk_connected)
- analytics_set_data(&analytics_data.netdata_host_aclk_available, "true");
- else
-#endif
- analytics_set_data(&analytics_data.netdata_host_aclk_available, "false");
-
analytics_set_data(&analytics_data.netdata_config_exporting_enabled, appconfig_get_boolean(&exporting_config, CONFIG_SECTION_EXPORTING, "enabled", CONFIG_BOOLEAN_NO) ? "true" : "false");
analytics_set_data(&analytics_data.netdata_config_is_private_registry, "false");
@@ -526,6 +495,23 @@ void analytics_misc(void)
analytics_set_data(&analytics_data.netdata_config_is_private_registry, "true");
}
+void analytics_aclk(void)
+{
+#ifdef ENABLE_ACLK
+ if (aclk_connected) {
+ analytics_set_data(&analytics_data.netdata_host_aclk_available, "true");
+#ifdef ENABLE_NEW_CLOUD_PROTOCOL
+ if (aclk_use_new_cloud_arch)
+ analytics_set_data_str(&analytics_data.netdata_host_aclk_protocol, "New");
+ else
+#endif
+ analytics_set_data_str(&analytics_data.netdata_host_aclk_protocol, "Legacy");
+ }
+ else
+#endif
+ analytics_set_data(&analytics_data.netdata_host_aclk_available, "false");
+}
+
/*
* Get the meta data, called from the thread once after the original delay
* These are values that won't change during agent runtime, and therefore
@@ -551,6 +537,7 @@ void analytics_gather_mutable_meta_data(void)
analytics_alarms();
analytics_charts();
analytics_metrics();
+ analytics_aclk();
rrdhost_unlock(localhost);
@@ -892,6 +879,7 @@ void set_global_environment()
analytics_set_data(&analytics_data.netdata_host_cloud_available, "null");
analytics_set_data(&analytics_data.netdata_host_aclk_implementation, "null");
analytics_set_data(&analytics_data.netdata_host_aclk_available, "null");
+ analytics_set_data(&analytics_data.netdata_host_aclk_protocol, "null");
analytics_set_data(&analytics_data.netdata_host_agent_claimed, "null");
analytics_set_data(&analytics_data.netdata_host_cloud_enabled, "null");
analytics_set_data(&analytics_data.netdata_config_https_available, "null");
@@ -979,7 +967,7 @@ void send_statistics(const char *action, const char *action_result, const char *
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' '%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' ",
as_script,
action,
action_result,
@@ -1013,6 +1001,7 @@ void send_statistics(const char *action, const char *action_result, const char *
analytics_data.netdata_config_hosts_available,
analytics_data.netdata_host_cloud_available,
analytics_data.netdata_host_aclk_available,
+ analytics_data.netdata_host_aclk_protocol,
analytics_data.netdata_host_aclk_implementation,
analytics_data.netdata_host_agent_claimed,
analytics_data.netdata_host_cloud_enabled,