@cryptotaxi247 / netdata-1 / commits / d229783de

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

Emmanuel Vasilakis committed Jan 13, 2022 at 12:22 UTC d229783de4f8476d540d1109953868db823e3a0a
4 files changed +51 -31
daemon/analytics.c
+25 -10
@@ -6,7 +6,7 @@ struct analytics_data analytics_data;
6 extern void analytics_exporting_connectors (BUFFER *b);
7 extern void analytics_exporting_connectors_ssl (BUFFER *b);
8 extern void analytics_build_info (BUFFER *b);
9 -extern int aclk_connected;
9 +extern int aclk_connected, aclk_use_new_cloud_arch;
10
11 struct collector {
12 char *plugin;
@@ -52,6 +52,7 @@ void analytics_log_data(void)
52 debug(D_ANALYTICS, "NETDATA_CONFIG_HOSTS_AVAILABLE : [%s]", analytics_data.netdata_config_hosts_available);
53 debug(D_ANALYTICS, "NETDATA_HOST_CLOUD_AVAILABLE : [%s]", analytics_data.netdata_host_cloud_available);
54 debug(D_ANALYTICS, "NETDATA_HOST_ACLK_AVAILABLE : [%s]", analytics_data.netdata_host_aclk_available);
55 + debug(D_ANALYTICS, "NETDATA_HOST_ACLK_PROTOCOL : [%s]", analytics_data.netdata_host_aclk_protocol);
56 debug(D_ANALYTICS, "NETDATA_HOST_ACLK_IMPLEMENTATION : [%s]", analytics_data.netdata_host_aclk_implementation);
57 debug(D_ANALYTICS, "NETDATA_HOST_AGENT_CLAIMED : [%s]", analytics_data.netdata_host_agent_claimed);
58 debug(D_ANALYTICS, "NETDATA_HOST_CLOUD_ENABLED : [%s]", analytics_data.netdata_host_cloud_enabled);
@@ -97,6 +98,7 @@ void analytics_free_data(void)
98 freez(analytics_data.netdata_config_hosts_available);
99 freez(analytics_data.netdata_host_cloud_available);
100 freez(analytics_data.netdata_host_aclk_available);
101 + freez(analytics_data.netdata_host_aclk_protocol);
102 freez(analytics_data.netdata_host_aclk_implementation);
103 freez(analytics_data.netdata_host_agent_claimed);
104 freez(analytics_data.netdata_host_cloud_enabled);
@@ -488,7 +490,7 @@ void analytics_alarms(void)
490 }
491
492 /*
491 - * Misc attributes to get (run from meta)
493 + * Misc attributes to get (run from start)
494 */
495 void analytics_misc(void)
496 {
@@ -500,13 +502,6 @@ void analytics_misc(void)
502 analytics_set_data_str(&analytics_data.netdata_host_aclk_implementation, "");
503 #endif
504
503 -#ifdef ENABLE_ACLK
504 - if (aclk_connected)
505 - analytics_set_data(&analytics_data.netdata_host_aclk_available, "true");
506 - else
507 -#endif
508 - analytics_set_data(&analytics_data.netdata_host_aclk_available, "false");
509 -
505 analytics_set_data(&analytics_data.netdata_config_exporting_enabled, appconfig_get_boolean(&exporting_config, CONFIG_SECTION_EXPORTING, "enabled", CONFIG_BOOLEAN_NO) ? "true" : "false");
506
507 analytics_set_data(&analytics_data.netdata_config_is_private_registry, "false");
@@ -523,6 +518,23 @@ void analytics_misc(void)
518 analytics_set_data(&analytics_data.netdata_config_is_private_registry, "true");
519 }
520
521 +void analytics_aclk(void)
522 +{
523 +#ifdef ENABLE_ACLK
524 + if (aclk_connected) {
525 + analytics_set_data(&analytics_data.netdata_host_aclk_available, "true");
526 +#ifdef ENABLE_NEW_CLOUD_PROTOCOL
527 + if (aclk_use_new_cloud_arch)
528 + analytics_set_data_str(&analytics_data.netdata_host_aclk_protocol, "New");
529 + else
530 +#endif
531 + analytics_set_data_str(&analytics_data.netdata_host_aclk_protocol, "Legacy");
532 + }
533 + else
534 +#endif
535 + analytics_set_data(&analytics_data.netdata_host_aclk_available, "false");
536 +}
537 +
538 /*
539 * Get the meta data, called from the thread once after the original delay
540 * These are values that won't change during agent runtime, and therefore
@@ -548,6 +560,7 @@ void analytics_gather_mutable_meta_data(void)
560 analytics_alarms();
561 analytics_charts();
562 analytics_metrics();
563 + analytics_aclk();
564
565 rrdhost_unlock(localhost);
566
@@ -889,6 +902,7 @@ void set_global_environment()
902 analytics_set_data(&analytics_data.netdata_host_cloud_available, "null");
903 analytics_set_data(&analytics_data.netdata_host_aclk_implementation, "null");
904 analytics_set_data(&analytics_data.netdata_host_aclk_available, "null");
905 + analytics_set_data(&analytics_data.netdata_host_aclk_protocol, "null");
906 analytics_set_data(&analytics_data.netdata_host_agent_claimed, "null");
907 analytics_set_data(&analytics_data.netdata_host_cloud_enabled, "null");
908 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 *
990
991 sprintf(
992 command_to_run,
979 - "%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' ",
993 + "%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' ",
994 as_script,
995 action,
996 action_result,
@@ -1010,6 +1024,7 @@ void send_statistics(const char *action, const char *action_result, const char *
1024 analytics_data.netdata_config_hosts_available,
1025 analytics_data.netdata_host_cloud_available,
1026 analytics_data.netdata_host_aclk_available,
1027 + analytics_data.netdata_host_aclk_protocol,
1028 analytics_data.netdata_host_aclk_implementation,
1029 analytics_data.netdata_host_agent_claimed,
1030 analytics_data.netdata_host_cloud_enabled,
daemon/analytics.h
+2 -1
@@ -29,7 +29,7 @@
29 },
30
31 /* Needed to calculate the space needed for parameters */
32 -#define ANALYTICS_NO_OF_ITEMS 38
32 +#define ANALYTICS_NO_OF_ITEMS 39
33
34 struct analytics_data {
35 char *netdata_config_stream_enabled;
@@ -61,6 +61,7 @@ struct analytics_data {
61 char *netdata_config_hosts_available;
62 char *netdata_host_cloud_available;
63 char *netdata_host_aclk_available;
64 + char *netdata_host_aclk_protocol;
65 char *netdata_host_aclk_implementation;
66 char *netdata_host_agent_claimed;
67 char *netdata_host_cloud_enabled;
daemon/anonymous-statistics.sh.in
+11 -9
@@ -54,15 +54,16 @@ NETDATA_CONFIG_IS_PARENT="${29}"
54 NETDATA_CONFIG_HOSTS_AVAILABLE="${30}"
55 NETDATA_HOST_CLOUD_AVAILABLE="${31}"
56 NETDATA_HOST_ACLK_AVAILABLE="${32}"
57 -NETDATA_HOST_ACLK_IMPLEMENTATION="${33}"
58 -NETDATA_HOST_AGENT_CLAIMED="${34}"
59 -NETDATA_HOST_CLOUD_ENABLED="${35}"
60 -NETDATA_CONFIG_HTTPS_AVAILABLE="${36}"
61 -NETDATA_INSTALL_TYPE="${37}"
62 -NETDATA_IS_PRIVATE_REGISTRY="${38}"
63 -NETDATA_USE_PRIVATE_REGISTRY="${39}"
64 -NETDATA_CONFIG_OOM_SCORE="${40}"
65 -NETDATA_PREBUILT_DISTRO="${41}"
57 +NETDATA_HOST_ACLK_PROTOCOL="${33}"
58 +NETDATA_HOST_ACLK_IMPLEMENTATION="${34}"
59 +NETDATA_HOST_AGENT_CLAIMED="${35}"
60 +NETDATA_HOST_CLOUD_ENABLED="${36}"
61 +NETDATA_CONFIG_HTTPS_AVAILABLE="${37}"
62 +NETDATA_INSTALL_TYPE="${38}"
63 +NETDATA_IS_PRIVATE_REGISTRY="${39}"
64 +NETDATA_USE_PRIVATE_REGISTRY="${40}"
65 +NETDATA_CONFIG_OOM_SCORE="${41}"
66 +NETDATA_PREBUILT_DISTRO="${42}"
67
68
69 # define body of request to be sent
@@ -147,6 +148,7 @@ REQ_BODY="$(cat << EOF
148 "host_cloud_enabled": ${NETDATA_HOST_CLOUD_ENABLED},
149 "host_agent_claimed": ${NETDATA_HOST_AGENT_CLAIMED},
150 "host_aclk_available": ${NETDATA_HOST_ACLK_AVAILABLE},
151 + "host_aclk_protocol": ${NETDATA_HOST_ACLK_PROTOCOL},
152 "host_aclk_implementation": ${NETDATA_HOST_ACLK_IMPLEMENTATION},
153 "mirrored_host_count": ${NETDATA_MIRRORED_HOST_COUNT},
154 "mirrored_hosts_reachable": ${NETDATA_MIRRORED_HOSTS_REACHABLE},
web/api/web_api_v1.c
+13 -11
@@ -3,6 +3,7 @@
3 #include "web_api_v1.h"
4
5 char *api_secret;
6 +extern int aclk_use_new_cloud_arch;
7
8 static struct {
9 const char *name;
@@ -984,24 +985,18 @@ inline int web_client_api_request_v1_info_fill_buffer(RRDHOST *host, BUFFER *wb)
985
986 #ifdef ENABLE_ACLK
987 buffer_strcat(wb, "\t\"cloud-available\": true,\n");
987 -#ifdef ACLK_NG
988 buffer_strcat(wb, "\t\"aclk-ng-available\": true,\n");
989 -#else
990 - buffer_strcat(wb, "\t\"aclk-ng-available\": false,\n");
991 -#endif
992 -#if defined(ACLK_NG) && defined(ENABLE_NEW_CLOUD_PROTOCOL)
989 +#ifdef ENABLE_NEW_CLOUD_PROTOCOL
990 buffer_strcat(wb, "\t\"aclk-ng-new-cloud-protocol\": true,\n");
991 #else
992 buffer_strcat(wb, "\t\"aclk-ng-new-cloud-protocol\": false,\n");
993 #endif
997 -#ifdef ACLK_LEGACY
998 - buffer_strcat(wb, "\t\"aclk-legacy-available\": true,\n");
999 -#else
994 buffer_strcat(wb, "\t\"aclk-legacy-available\": false,\n");
1001 -#endif
995 buffer_strcat(wb, "\t\"aclk-implementation\": \"Next Generation\",\n");
996 #else
997 buffer_strcat(wb, "\t\"cloud-available\": false,\n");
998 + buffer_strcat(wb, "\t\"aclk-ng-available\": false,\n");
999 + buffer_strcat(wb, "\t\"aclk-legacy-available\": false,\n");
1000 #endif
1001 char *agent_id = is_agent_claimed();
1002 if (agent_id == NULL)
@@ -1011,11 +1006,18 @@ inline int web_client_api_request_v1_info_fill_buffer(RRDHOST *host, BUFFER *wb)
1006 freez(agent_id);
1007 }
1008 #ifdef ENABLE_ACLK
1014 - if (aclk_connected)
1009 + if (aclk_connected) {
1010 buffer_strcat(wb, "\t\"aclk-available\": true,\n");
1011 +#ifdef ENABLE_NEW_CLOUD_PROTOCOL
1012 + if (aclk_use_new_cloud_arch)
1013 + buffer_strcat(wb, "\t\"aclk-available-protocol\": \"New\",\n");
1014 + else
1015 +#endif
1016 + buffer_strcat(wb, "\t\"aclk-available-protocol\": \"Legacy\",\n");
1017 + }
1018 else
1019 #endif
1018 - buffer_strcat(wb, "\t\"aclk-available\": false,\n"); // Intentionally valid with/without #ifdef above
1020 + buffer_strcat(wb, "\t\"aclk-available\": false,\n\t\"aclk-available-protocol\": null,\n"); // Intentionally valid with/without #ifdef above
1021
1022 buffer_strcat(wb, "\t\"memory-mode\": ");
1023 analytics_get_data(analytics_data.netdata_config_memory_mode, wb);