Add a machine distinct id to analytics (#15485)
* add a system distinct id to analytics
Emmanuel Vasilakis committed
Jul 24, 2023 at 21:00 UTC
d759ebbb7f65b84eb9874e86985bffac349e7f4b
2 files changed
+28
-7
daemon/anonymous-statistics.sh.in
+18
@@ -71,6 +71,23 @@ NETDATA_PREBUILT_DISTRO="${42}"
71
72
[ -z "$NETDATA_REGISTRY_UNIQUE_ID" ] && NETDATA_REGISTRY_UNIQUE_ID="00000000-0000-0000-0000-000000000000"
73
74
+KERNEL_NAME="$(uname -s)"
75
+MD5_PATH="$(exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum)"
76
+
77
+if [ "${KERNEL_NAME}" = Darwin ] && command -v ioreg >/dev/null 2>&1; then
78
+ SYSTEM_DISTINCT_ID="macos-$(ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }')"
79
+elif [ -f /etc/machine-id ] && [ -n "$MD5_PATH" ]; then
80
+ SYSTEM_DISTINCT_ID="machine-$($MD5_PATH < /etc/machine-id | cut -f1 -d" ")"
81
+elif [ -f /var/db/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
82
+ SYSTEM_DISTINCT_ID="dbus-$($MD5_PATH < /var/db/dbus/machine-id | cut -f1 -d" ")"
83
+elif [ -f /var/lib/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
84
+ SYSTEM_DISTINCT_ID="dbus-$($MD5_PATH < /var/lib/dbus/machine-id | cut -f1 -d" ")"
85
+elif command -v uuidgen > /dev/null 2>&1; then
86
+ SYSTEM_DISTINCT_ID="uuid-$(uuidgen | tr '[:upper:]' '[:lower:]')"
87
+else
88
+ SYSTEM_DISTINCT_ID="null"
89
+fi
90
+
91
# define body of request to be sent
92
REQ_BODY="$(cat << EOF
93
{
@@ -105,6 +122,7 @@ REQ_BODY="$(cat << EOF
122
"system_virt_detection": "${NETDATA_SYSTEM_VIRT_DETECTION}",
123
"system_container": "${NETDATA_SYSTEM_CONTAINER}",
124
"system_container_detection": "${NETDATA_SYSTEM_CONTAINER_DETECTION}",
125
+ "system_distinct_id": "${SYSTEM_DISTINCT_ID}",
126
"container_os_name": "${NETDATA_CONTAINER_OS_NAME}",
127
"container_os_id": "${NETDATA_CONTAINER_OS_ID}",
128
"container_os_id_like": "${NETDATA_CONTAINER_OS_ID_LIKE}",
packaging/installer/kickstart.sh
+10
-7
@@ -257,14 +257,16 @@ telemetry_event() {
257
TOTAL_RAM="$((TOTAL_RAM * 1024))"
258
fi
259
260
+ MD5_PATH="$(exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum)"
261
+
262
if [ "${KERNEL_NAME}" = Darwin ] && command -v ioreg >/dev/null 2>&1; then
263
DISTINCT_ID="macos-$(ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }')"
262
- elif [ -f /etc/machine-id ]; then
263
- DISTINCT_ID="machine-$(cat /etc/machine-id)"
264
- elif [ -f /var/db/dbus/machine-id ]; then
265
- DISTINCT_ID="dbus-$(cat /var/db/dbus/machine-id)"
266
- elif [ -f /var/lib/dbus/machine-id ]; then
267
- DISTINCT_ID="dbus-$(cat /var/lib/dbus/machine-id)"
264
+ elif [ -f /etc/machine-id ] && [ -n "$MD5_PATH" ]; then
265
+ DISTINCT_ID="machine-$($MD5_PATH < /etc/machine-id | cut -f1 -d" ")"
266
+ elif [ -f /var/db/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
267
+ DISTINCT_ID="dbus-$($MD5_PATH < /var/db/dbus/machine-id | cut -f1 -d" ")"
268
+ elif [ -f /var/lib/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
269
+ DISTINCT_ID="dbus-$($MD5_PATH < /var/lib/dbus/machine-id | cut -f1 -d" ")"
270
elif command -v uuidgen > /dev/null 2>&1; then
271
DISTINCT_ID="uuid-$(uuidgen | tr '[:upper:]' '[:lower:]')"
272
else
@@ -300,7 +302,8 @@ telemetry_event() {
302
"system_kernel_name": "${KERNEL_NAME}",
303
"system_kernel_version": "$(uname -r)",
304
"system_architecture": "$(uname -m)",
303
- "system_total_ram": "${TOTAL_RAM:-unknown}"
305
+ "system_total_ram": "${TOTAL_RAM:-unknown}",
306
+ "system_distinct_id": "${DISTINCT_ID}"
307
}
308
}
309
EOF