diff options
author | Emmanuel Vasilakis <mrzammler@mm.st> | 2022-01-13 12:22:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-13 12:22:15 +0200 |
commit | d229783de4f8476d540d1109953868db823e3a0a (patch) | |
tree | 2746a6025372ec6d48b7b16bc0a8b90dca27f49e | |
parent | 4f309da9d59214976ada2e339ee302d93fce6939 (diff) |
Send the cloud protocol used to posthog (#11842)
* send analytics for cloud protocol used
* add aclk-available-protocol to api/v1/info
* fix build with --disable-cloud
* remove aclk_legacy and aclk_ng define checks
-rw-r--r-- | daemon/analytics.c | 35 | ||||
-rw-r--r-- | daemon/analytics.h | 3 | ||||
-rwxr-xr-x | daemon/anonymous-statistics.sh.in | 20 | ||||
-rw-r--r-- | web/api/web_api_v1.c | 24 |
4 files changed, 51 insertions, 31 deletions
diff --git a/daemon/analytics.c b/daemon/analytics.c index 9408364e83..89091a4878 100644 --- a/daemon/analytics.c +++ b/daemon/analytics.c @@ -6,7 +6,7 @@ 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 +52,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 +98,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); @@ -488,7 +490,7 @@ void analytics_alarms(void) } /* - * Misc attributes to get (run from meta) + * Misc attributes to get (run from start) */ void analytics_misc(void) { @@ -500,13 +502,6 @@ void analytics_misc(void) 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"); @@ -523,6 +518,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 @@ -548,6 +560,7 @@ void analytics_gather_mutable_meta_data(void) analytics_alarms(); analytics_charts(); analytics_metrics(); + analytics_aclk(); rrdhost_unlock(localhost); @@ -889,6 +902,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"); @@ -976,7 +990,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, @@ -1010,6 +1024,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, diff --git a/daemon/analytics.h b/daemon/analytics.h index 78ced981ee..343448cd71 100644 --- a/daemon/analytics.h +++ b/daemon/analytics.h @@ -29,7 +29,7 @@ }, /* Needed to calculate the space needed for parameters */ -#define ANALYTICS_NO_OF_ITEMS 38 +#define ANALYTICS_NO_OF_ITEMS 39 struct analytics_data { char *netdata_config_stream_enabled; @@ -61,6 +61,7 @@ struct analytics_data { char *netdata_config_hosts_available; char *netdata_host_cloud_available; char *netdata_host_aclk_available; + char *netdata_host_aclk_protocol; char *netdata_host_aclk_implementation; char *netdata_host_agent_claimed; char *netdata_host_cloud_enabled; diff --git a/daemon/anonymous-statistics.sh.in b/daemon/anonymous-statistics.sh.in index f49d19d09d..9167b7062d 100755 --- a/daemon/anonymous-statistics.sh.in +++ b/daemon/anonymous-statistics.sh.in @@ -54,15 +54,16 @@ NETDATA_CONFIG_IS_PARENT="${29}" NETDATA_CONFIG_HOSTS_AVAILABLE="${30}" NETDATA_HOST_CLOUD_AVAILABLE="${31}" NETDATA_HOST_ACLK_AVAILABLE="${32}" -NETDATA_HOST_ACLK_IMPLEMENTATION="${33}" -NETDATA_HOST_AGENT_CLAIMED="${34}" -NETDATA_HOST_CLOUD_ENABLED="${35}" -NETDATA_CONFIG_HTTPS_AVAILABLE="${36}" -NETDATA_INSTALL_TYPE="${37}" -NETDATA_IS_PRIVATE_REGISTRY="${38}" -NETDATA_USE_PRIVATE_REGISTRY="${39}" -NETDATA_CONFIG_OOM_SCORE="${40}" -NETDATA_PREBUILT_DISTRO="${41}" +NETDATA_HOST_ACLK_PROTOCOL="${33}" +NETDATA_HOST_ACLK_IMPLEMENTATION="${34}" +NETDATA_HOST_AGENT_CLAIMED="${35}" +NETDATA_HOST_CLOUD_ENABLED="${36}" +NETDATA_CONFIG_HTTPS_AVAILABLE="${37}" +NETDATA_INSTALL_TYPE="${38}" +NETDATA_IS_PRIVATE_REGISTRY="${39}" +NETDATA_USE_PRIVATE_REGISTRY="${40}" +NETDATA_CONFIG_OOM_SCORE="${41}" +NETDATA_PREBUILT_DISTRO="${42}" # define body of request to be sent @@ -147,6 +148,7 @@ REQ_BODY="$(cat << EOF "host_cloud_enabled": ${NETDATA_HOST_CLOUD_ENABLED}, "host_agent_claimed": ${NETDATA_HOST_AGENT_CLAIMED}, "host_aclk_available": ${NETDATA_HOST_ACLK_AVAILABLE}, + "host_aclk_protocol": ${NETDATA_HOST_ACLK_PROTOCOL}, "host_aclk_implementation": ${NETDATA_HOST_ACLK_IMPLEMENTATION}, "mirrored_host_count": ${NETDATA_MIRRORED_HOST_COUNT}, "mirrored_hosts_reachable": ${NETDATA_MIRRORED_HOSTS_REACHABLE}, diff --git a/web/api/web_api_v1.c b/web/api/web_api_v1.c index 6e66dfd260..829a92224a 100644 --- a/web/api/web_api_v1.c +++ b/web/api/web_api_v1.c @@ -3,6 +3,7 @@ #include "web_api_v1.h" char *api_secret; +extern int aclk_use_new_cloud_arch; static struct { const char *name; @@ -984,24 +985,18 @@ inline int web_client_api_request_v1_info_fill_buffer(RRDHOST *host, BUFFER *wb) #ifdef ENABLE_ACLK buffer_strcat(wb, "\t\"cloud-available\": true,\n"); -#ifdef ACLK_NG buffer_strcat(wb, "\t\"aclk-ng-available\": true,\n"); -#else - buffer_strcat(wb, "\t\"aclk-ng-available\": false,\n"); -#endif -#if defined(ACLK_NG) && defined(ENABLE_NEW_CLOUD_PROTOCOL) +#ifdef ENABLE_NEW_CLOUD_PROTOCOL buffer_strcat(wb, "\t\"aclk-ng-new-cloud-protocol\": true,\n"); #else buffer_strcat(wb, "\t\"aclk-ng-new-cloud-protocol\": false,\n"); #endif -#ifdef ACLK_LEGACY - buffer_strcat(wb, "\t\"aclk-legacy-available\": true,\n"); -#else buffer_strcat(wb, "\t\"aclk-legacy-available\": false,\n"); -#endif buffer_strcat(wb, "\t\"aclk-implementation\": \"Next Generation\",\n"); #else buffer_strcat(wb, "\t\"cloud-available\": false,\n"); + buffer_strcat(wb, "\t\"aclk-ng-available\": false,\n"); + buffer_strcat(wb, "\t\"aclk-legacy-available\": false,\n"); #endif char *agent_id = is_agent_claimed(); if (agent_id == NULL) @@ -1011,11 +1006,18 @@ inline int web_client_api_request_v1_info_fill_buffer(RRDHOST *host, BUFFER *wb) freez(agent_id); } #ifdef ENABLE_ACLK - if (aclk_connected) + if (aclk_connected) { buffer_strcat(wb, "\t\"aclk-available\": true,\n"); +#ifdef ENABLE_NEW_CLOUD_PROTOCOL + if (aclk_use_new_cloud_arch) + buffer_strcat(wb, "\t\"aclk-available-protocol\": \"New\",\n"); + else +#endif + buffer_strcat(wb, "\t\"aclk-available-protocol\": \"Legacy\",\n"); + } else #endif - buffer_strcat(wb, "\t\"aclk-available\": false,\n"); // Intentionally valid with/without #ifdef above + buffer_strcat(wb, "\t\"aclk-available\": false,\n\t\"aclk-available-protocol\": null,\n"); // Intentionally valid with/without #ifdef above buffer_strcat(wb, "\t\"memory-mode\": "); analytics_get_data(analytics_data.netdata_config_memory_mode, wb); |