master
in 197 lines 8.91 KB
Raw
1 #!/usr/bin/env sh
2
3 # Valid actions:
4
5 # - FATAL - netdata exited due to a fatal condition
6 # ACTION_RESULT -- program name and thread tag
7 # ACTION_DATA -- fmt, args passed to fatal
8 # - START - netdata started
9 # ACTION_DATA -- nan
10 # - EXIT - installation action
11 # ACTION_DATA -- ret value of
12
13 ACTION="${1}"
14 ACTION_RESULT="${2}"
15 ACTION_DATA="${3}"
16 ACTION_DATA=$(echo "${ACTION_DATA}" | tr '"' "'")
17
18 # -------------------------------------------------------------------------------------------------
19 # check opt-out
20
21 if [ -f "@configdir_POST@/.opt-out-from-anonymous-statistics" ] ||
22 [ ! "${DISABLE_TELEMETRY:-0}" -eq 0 ] ||
23 [ -n "$DISABLE_TELEMETRY" ] ||
24 [ ! "${DO_NOT_TRACK:-0}" -eq 0 ] ||
25 [ -n "$DO_NOT_TRACK" ]; then
26 exit 0
27 fi
28
29 # -------------------------------------------------------------------------------------------------
30 # Get the extra variables
31
32 NETDATA_CONFIG_STREAM_ENABLED="${4}"
33 NETDATA_CONFIG_MEMORY_MODE="${5}"
34 NETDATA_CONFIG_EXPORTING_ENABLED="${6}"
35 NETDATA_EXPORTING_CONNECTORS="${7}"
36 NETDATA_ALLMETRICS_PROMETHEUS_USED="${8}"
37 NETDATA_ALLMETRICS_SHELL_USED="${9}"
38 NETDATA_ALLMETRICS_JSON_USED="${10}"
39 NETDATA_DASHBOARD_USED="${11}"
40 NETDATA_COLLECTORS="${12}"
41 NETDATA_COLLECTORS_COUNT="${13}"
42 NETDATA_BUILDINFO="${14}"
43 NETDATA_CONFIG_PAGE_CACHE_SIZE="${15}"
44 NETDATA_CONFIG_MULTIDB_DISK_QUOTA="${16}"
45 NETDATA_CONFIG_HTTPS_ENABLED="${17}"
46 NETDATA_CONFIG_WEB_ENABLED="${18}"
47 NETDATA_CONFIG_RELEASE_CHANNEL="${19}"
48 NETDATA_MIRRORED_HOST_COUNT="${20}"
49 NETDATA_MIRRORED_HOSTS_REACHABLE="${21}"
50 NETDATA_MIRRORED_HOSTS_UNREACHABLE="${22}"
51 NETDATA_NOTIFICATION_METHODS="${23}"
52 NETDATA_ALARMS_NORMAL="${24}"
53 NETDATA_ALARMS_WARNING="${25}"
54 NETDATA_ALARMS_CRITICAL="${26}"
55 NETDATA_CHARTS_COUNT="${27}"
56 NETDATA_METRICS_COUNT="${28}"
57 NETDATA_CONFIG_IS_PARENT="${29}"
58 NETDATA_CONFIG_HOSTS_AVAILABLE="${30}"
59 NETDATA_HOST_CLOUD_AVAILABLE="${31}"
60 NETDATA_HOST_ACLK_AVAILABLE="${32}"
61 NETDATA_HOST_ACLK_PROTOCOL="${33}"
62 NETDATA_HOST_ACLK_IMPLEMENTATION="${34}"
63 NETDATA_HOST_AGENT_CLAIMED="${35}"
64 NETDATA_HOST_CLOUD_ENABLED="${36}"
65 NETDATA_CONFIG_HTTPS_AVAILABLE="${37}"
66 NETDATA_INSTALL_TYPE="${38}"
67 NETDATA_IS_PRIVATE_REGISTRY="${39}"
68 NETDATA_USE_PRIVATE_REGISTRY="${40}"
69 NETDATA_CONFIG_OOM_SCORE="${41}"
70 NETDATA_PREBUILT_DISTRO="${42}"
71 NETDATA_FAIL_REASON="${43}"
72
73 [ -z "$NETDATA_REGISTRY_UNIQUE_ID" ] && NETDATA_REGISTRY_UNIQUE_ID="00000000-0000-0000-0000-000000000000"
74
75 KERNEL_NAME="$(uname -s)"
76 MD5_PATH="$(exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum)"
77
78 if [ "${KERNEL_NAME}" = Darwin ] && command -v ioreg >/dev/null 2>&1; then
79 SYSTEM_DISTINCT_ID="macos-$(ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }')"
80 elif [ -f /etc/machine-id ] && [ -n "$MD5_PATH" ]; then
81 SYSTEM_DISTINCT_ID="machine-$($MD5_PATH < /etc/machine-id | cut -f1 -d" ")"
82 elif [ -f /var/db/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
83 SYSTEM_DISTINCT_ID="dbus-$($MD5_PATH < /var/db/dbus/machine-id | cut -f1 -d" ")"
84 elif [ -f /var/lib/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
85 SYSTEM_DISTINCT_ID="dbus-$($MD5_PATH < /var/lib/dbus/machine-id | cut -f1 -d" ")"
86 elif command -v uuidgen > /dev/null 2>&1; then
87 SYSTEM_DISTINCT_ID="uuid-$(uuidgen | tr '[:upper:]' '[:lower:]')"
88 else
89 SYSTEM_DISTINCT_ID="null"
90 fi
91
92 # define body of request to be sent
93 REQ_BODY="$(cat << EOF
94 {
95 "event": "${ACTION} ${ACTION_RESULT}",
96 "properties": {
97 "distinct_id": "${NETDATA_REGISTRY_UNIQUE_ID}",
98 "\$current_url": "agent backend",
99 "\$pathname": "netdata-backend",
100 "\$host": "backend.netdata.io",
101 "\$ip": "127.0.0.1",
102 "event_source": "agent backend",
103 "action": "${ACTION}",
104 "action_result": "${ACTION_RESULT}",
105 "action_data": "${ACTION_DATA}",
106 "netdata_machine_guid": "${NETDATA_REGISTRY_UNIQUE_ID}",
107 "netdata_version": "${NETDATA_VERSION}",
108 "netdata_buildinfo": ${NETDATA_BUILDINFO},
109 "netdata_release_channel": ${NETDATA_CONFIG_RELEASE_CHANNEL},
110 "netdata_install_type": ${NETDATA_INSTALL_TYPE},
111 "netdata_prebuilt_distro": ${NETDATA_PREBUILT_DISTRO},
112 "host_os_name": "${NETDATA_HOST_OS_NAME}",
113 "host_os_id": "${NETDATA_HOST_OS_ID}",
114 "host_os_id_like": "${NETDATA_HOST_OS_ID_LIKE}",
115 "host_os_version": "${NETDATA_HOST_OS_VERSION}",
116 "host_os_version_id": "${NETDATA_HOST_OS_VERSION_ID}",
117 "host_os_detection": "${NETDATA_HOST_OS_DETECTION}",
118 "host_is_k8s_node": "${NETDATA_HOST_IS_K8S_NODE}",
119 "system_kernel_name": "${NETDATA_SYSTEM_KERNEL_NAME}",
120 "system_kernel_version": "${NETDATA_SYSTEM_KERNEL_VERSION}",
121 "system_architecture": "${NETDATA_SYSTEM_ARCHITECTURE}",
122 "system_virtualization": "${NETDATA_SYSTEM_VIRTUALIZATION}",
123 "system_virt_detection": "${NETDATA_SYSTEM_VIRT_DETECTION}",
124 "system_container": "${NETDATA_SYSTEM_CONTAINER}",
125 "system_container_detection": "${NETDATA_SYSTEM_CONTAINER_DETECTION}",
126 "system_distinct_id": "${SYSTEM_DISTINCT_ID}",
127 "container_os_name": "${NETDATA_CONTAINER_OS_NAME}",
128 "container_os_id": "${NETDATA_CONTAINER_OS_ID}",
129 "container_os_id_like": "${NETDATA_CONTAINER_OS_ID_LIKE}",
130 "container_os_version": "${NETDATA_CONTAINER_OS_VERSION}",
131 "container_os_version_id": "${NETDATA_CONTAINER_OS_VERSION_ID}",
132 "container_os_detection": "${NETDATA_CONTAINER_OS_DETECTION}",
133 "container_is_official_image": ${NETDATA_CONTAINER_IS_OFFICIAL_IMAGE},
134 "system_cpu_detection": "${NETDATA_SYSTEM_CPU_DETECTION}",
135 "system_cpu_freq": "${NETDATA_SYSTEM_CPU_FREQ}",
136 "system_cpu_logical_cpu_count": "${NETDATA_SYSTEM_CPU_LOGICAL_CPU_COUNT}",
137 "system_cpu_model": "${NETDATA_SYSTEM_CPU_MODEL}",
138 "system_cpu_vendor": "${NETDATA_SYSTEM_CPU_VENDOR}",
139 "system_disk_detection": "${NETDATA_SYSTEM_DISK_DETECTION}",
140 "system_ram_detection": "${NETDATA_SYSTEM_RAM_DETECTION}",
141 "system_total_disk_size": "${NETDATA_SYSTEM_TOTAL_DISK_SIZE}",
142 "system_total_ram": "${NETDATA_SYSTEM_TOTAL_RAM}",
143 "config_stream_enabled": ${NETDATA_CONFIG_STREAM_ENABLED},
144 "config_memory_mode": ${NETDATA_CONFIG_MEMORY_MODE},
145 "config_page_cache_size": ${NETDATA_CONFIG_PAGE_CACHE_SIZE},
146 "config_multidb_disk_quota": ${NETDATA_CONFIG_MULTIDB_DISK_QUOTA},
147 "config_https_enabled": ${NETDATA_CONFIG_HTTPS_ENABLED},
148 "config_https_available": ${NETDATA_CONFIG_HTTPS_AVAILABLE},
149 "config_web_enabled": ${NETDATA_CONFIG_WEB_ENABLED},
150 "config_exporting_enabled": ${NETDATA_CONFIG_EXPORTING_ENABLED},
151 "config_is_parent": ${NETDATA_CONFIG_IS_PARENT},
152 "config_is_private_registry": ${NETDATA_IS_PRIVATE_REGISTRY},
153 "config_private_registry_used": ${NETDATA_USE_PRIVATE_REGISTRY},
154 "config_hosts_available": ${NETDATA_CONFIG_HOSTS_AVAILABLE},
155 "config_oom_score": ${NETDATA_CONFIG_OOM_SCORE},
156 "alarms_normal": ${NETDATA_ALARMS_NORMAL},
157 "alarms_warning": ${NETDATA_ALARMS_WARNING},
158 "alarms_critical": ${NETDATA_ALARMS_CRITICAL},
159 "host_charts_count": ${NETDATA_CHARTS_COUNT},
160 "host_metrics_count": ${NETDATA_METRICS_COUNT},
161 "host_collectors":[
162 ${NETDATA_COLLECTORS}
163 ],
164 "host_collectors_count": ${NETDATA_COLLECTORS_COUNT},
165 "host_notification_methods": ${NETDATA_NOTIFICATION_METHODS},
166 "host_allmetrics_prometheus_used": ${NETDATA_ALLMETRICS_PROMETHEUS_USED},
167 "host_allmetrics_shell_used": ${NETDATA_ALLMETRICS_SHELL_USED},
168 "host_allmetrics_json_used": ${NETDATA_ALLMETRICS_JSON_USED},
169 "host_dashboard_used": ${NETDATA_DASHBOARD_USED},
170 "host_cloud_available": ${NETDATA_HOST_CLOUD_AVAILABLE},
171 "host_cloud_enabled": ${NETDATA_HOST_CLOUD_ENABLED},
172 "host_agent_claimed": ${NETDATA_HOST_AGENT_CLAIMED},
173 "host_aclk_available": ${NETDATA_HOST_ACLK_AVAILABLE},
174 "host_aclk_protocol": ${NETDATA_HOST_ACLK_PROTOCOL},
175 "host_aclk_implementation": ${NETDATA_HOST_ACLK_IMPLEMENTATION},
176 "mirrored_host_count": ${NETDATA_MIRRORED_HOST_COUNT},
177 "mirrored_hosts_reachable": ${NETDATA_MIRRORED_HOSTS_REACHABLE},
178 "mirrored_hosts_unreachable": ${NETDATA_MIRRORED_HOSTS_UNREACHABLE},
179 "exporting_connectors": ${NETDATA_EXPORTING_CONNECTORS},
180 "netdata_fail_reason": ${NETDATA_FAIL_REASON}
181 }
182 }
183 EOF
184 )"
185
186 # send the anonymous statistics to Netdata
187 if [ -n "$(command -v curl 2> /dev/null)" ]; then
188 curl --silent -o /dev/null --write-out '%{http_code}' -X POST --max-time 2 --header "Content-Type: application/json" -d "${REQ_BODY}" https://us-east1-netdata-analytics-bi.cloudfunctions.net/ingest_agent_events
189 else
190 wget -q -O - --no-check-certificate \
191 --server-response \
192 --method POST \
193 --timeout=1 \
194 --header 'Content-Type: application/json' \
195 --body-data "${REQ_BODY}" \
196 'https://us-east1-netdata-analytics-bi.cloudfunctions.net/ingest_agent_events' 2>&1 | awk '/^ HTTP/{print $2}'
197 fi