0
0
Fork 0
mirror of https://github.com/netdata/netdata.git synced 2025-04-13 17:19:11 +00:00

Add basic telemetry to the new kickstart script. ()

* Add basic telemetry to the new kickstart script.

* Properly handle install type info for telemetry events.

* Actually remove exit trap at end of script.

* Update packaging/installer/kickstart-ng.sh

Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>

* Fix handling of memory info on macOS.

* Addressed feedback from @ilyam8.

* Fix issues pointed out in code reivew.

* Update packaging/installer/kickstart-ng.sh

Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>

* Add install prefix to search path when looking for existing installs.

* Make variable names more sensible.

* Fix install prefix handling in new kickstart script.

* Fix kernel name handling in telemetry function.

* More generically strip final `/usr` from path when looking for existing install.

* Update packaging/installer/kickstart-ng.sh

Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>

Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
This commit is contained in:
Austin S. Hemmelgarn 2021-11-04 09:05:23 -04:00 committed by GitHub
parent 8deede4376
commit ce60351a6c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 220 additions and 49 deletions

View file

@ -371,6 +371,10 @@ while [ -n "${1}" ]; do
NETDATA_PREFIX="${2}/netdata"
shift 1
;;
"--install-no-prefix")
NETDATA_PREFIX="${2}"
shift 1
;;
"--help" | "-h")
usage
exit 1

View file

@ -5,14 +5,19 @@
# ======================================================================
# Constants
KICKSTART_OPTIONS="${*}"
PACKAGES_SCRIPT="https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh"
PATH="${PATH}:/usr/local/bin:/usr/local/sbin"
REPOCONFIG_URL_PREFIX="https://packagecloud.io/netdata/netdata-repoconfig/packages"
REPOCONFIG_VERSION="1-1"
PATH="${PATH}:/usr/local/bin:/usr/local/sbin"
TELEMETRY_URL="https://posthog.netdata.cloud/capture/"
START_TIME="$(date +%s)"
# ======================================================================
# Defaults for environment variables
SELECTED_INSTALL_METHOD="none"
INSTALL_TYPE="unknown"
INSTALL_PREFIX=""
NETDATA_AUTO_UPDATES="1"
NETDATA_CLAIM_ONLY=0
@ -27,6 +32,7 @@ RELEASE_CHANNEL="nightly"
NETDATA_DISABLE_TELEMETRY="${DO_NOT_TRACK:-0}"
NETDATA_TARBALL_BASEURL="${NETDATA_TARBALL_BASEURL:-https://storage.googleapis.com/netdata-nightlies}"
NETDATA_INSTALLER_OPTIONS="${NETDATA_INSTALLER_OPTIONS:-""}"
TELEMETRY_API_KEY="${NETDATA_POSTHOG_API_KEY:-mqkwGT0JNFqO-zX2t0mW6Tec9yooaVu7xCBlXtHnt5Y}"
if [ ! -t 1 ]; then
INTERACTIVE=0
@ -79,6 +85,119 @@ Additionally, this script may use the following environment variables:
HEREDOC
}
# ======================================================================
# Telemetry functions
telemetry_event() {
if [ "${NETDATA_DISABLE_TELEMETRY}" -eq 1 ]; then
return 0
fi
now="$(date +%s)"
total_duration="$((now - START_TIME))"
if [ -e "/etc/os-release" ]; then
eval "$(grep -E "^(NAME|ID|ID_LIKE|VERSION|VERSION_ID)=" < /etc/os-release | sed 's/^/HOST_/')"
fi
if [ -z "${HOST_NAME}" ] || [ -z "${HOST_VERSION}" ] || [ -z "${HOST_ID}" ]; then
if [ -f "/etc/lsb-release" ]; then
DISTRIB_ID="unknown"
DISTRIB_RELEASE="unknown"
DISTRIB_CODENAME="unknown"
eval "$(grep -E "^(DISTRIB_ID|DISTRIB_RELEASE|DISTRIB_CODENAME)=" < /etc/lsb-release)"
if [ -z "${HOST_NAME}" ]; then HOST_NAME="${DISTRIB_ID}"; fi
if [ -z "${HOST_VERSION}" ]; then HOST_VERSION="${DISTRIB_RELEASE}"; fi
if [ -z "${HOST_ID}" ]; then HOST_ID="${DISTRIB_CODENAME}"; fi
fi
fi
KERNEL_NAME="$(uname -s)"
if [ "${KERNEL_NAME}" = FreeBSD ]; then
TOTAL_RAM="$(sysctl -n hw.physmem)"
elif [ "${KERNEL_NAME}" = Darwin ]; then
TOTAL_RAM="$(sysctl -n hw.memsize)"
elif [ -r /proc/meminfo ]; then
TOTAL_RAM="$(grep -F MemTotal /proc/meminfo | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' | cut -f 1 -d ' ')"
TOTAL_RAM="$((TOTAL_RAM * 1024))"
fi
if [ -f /etc/machine-id ]; then
DISTINCT_ID="$(cat /etc/machine-id)"
elif command -v uuidgen > /dev/null 2>&1; then
DISTINCT_ID="$(uuidgen)"
else
DISTINCT_ID="null"
fi
REQ_BODY="$(cat << EOF
{
"api_key": "${TELEMETRY_API_KEY}",
"event": "${1}",
"properties": {
"distinct_id": "${DISTINCT_ID}",
"event_source": "agent installer",
"\$current_url": "agent installer",
"\$pathname": "netdata-installer",
"\$host": "installer.netdata.io",
"\$ip": "127.0.0.1",
"script_variant": "kickstart-ng",
"error_code": "${3}",
"error_message": "${2}",
"install_options": "${KICKSTART_OPTIONS}",
"total_runtime": "${total_duration}",
"selected_install_method": "${SELECTED_INSTALL_METHOD}",
"netdata_release_channel": "${RELEASE_CHANNEL:-null}",
"netdata_install_type": "${INSTALL_TYPE}",
"host_os_name": "${HOST_NAME:-unknown}",
"host_os_id": "${HOST_ID:-unknown}",
"host_os_id_like": "${HOST_ID_LIKE:-unknown}",
"host_os_version": "${HOST_VERSION:-unknown}",
"host_os_version_id": "${HOST_VERSION_ID:-unknown}",
"system_kernel_name": "${KERNEL_NAME}",
"system_kernel_version": "$(uname -r)",
"system_architecture": "$(uname -m)",
"system_total_ram": "${TOTAL_RAM:-unknown}"
}
}
EOF
)"
if [ -n "$(command -v curl 2> /dev/null)" ]; then
curl --silent -o /dev/null -X POST --max-time 2 --header "Content-Type: application/json" -d "${REQ_BODY}" "${TELEMETRY_URL}" > /dev/null
else
wget -q -O - --no-check-certificate \
--method POST \
--timeout=1 \
--header 'Content-Type: application/json' \
--body-data "${REQ_BODY}" \
"${TELEMETRY_URL}" > /dev/null
fi
}
trap_handler() {
code="${1}"
lineno="${2}"
printf >&2 "%s\n\n" "${TPUT_BGRED}${TPUT_WHITE}${TPUT_BOLD} ERROR ${TPUT_RESET} Installer exited unexpectedly (${code}-${lineno})"
telemetry_event INSTALL_CRASH "Installer exited unexpectedly (${code}-${lineno})" "E${code}-${lineno}"
trap - EXIT
cleanup
exit 1
}
trap 'trap_handler 0 ${LINENO}' EXIT
trap 'trap_handler 1 0' HUP
trap 'trap_handler 2 0' INT
trap 'trap_handler 3 0' QUIT
trap 'trap_handler 13 0' PIPE
trap 'trap_handler 15 0' TERM
# ======================================================================
# Utility functions
@ -118,7 +237,9 @@ cleanup() {
fatal() {
printf >&2 "%s\n\n" "${TPUT_BGRED}${TPUT_WHITE}${TPUT_BOLD} ABORTED ${TPUT_RESET} ${*}"
telemetry_event "INSTALL_FAILED" "${1}" "${2}"
cleanup
trap - EXIT
exit 1
}
@ -215,7 +336,7 @@ create_tmp_directory() {
if [ -z "${TMPDIR}" ] || _cannot_use_tmpdir "${TMPDIR}"; then
if _cannot_use_tmpdir /tmp; then
if _cannot_use_tmpdir "${PWD}"; then
fatal "Unable to find a usable temporary directory. Please set \$TMPDIR to a path that is both writable and allows execution of files and try again."
fatal "Unable to find a usable temporary directory. Please set \$TMPDIR to a path that is both writable and allows execution of files and try again." F0400
else
TMPDIR="${PWD}"
fi
@ -235,7 +356,7 @@ download() {
elif command -v wget > /dev/null 2>&1; then
run wget -T 15 -O "${dest}" "${url}" || return 1
else
fatal "I need curl or wget to proceed, but neither of them are available on this system."
fatal "I need curl or wget to proceed, but neither of them are available on this system." F0003
fi
}
@ -247,7 +368,7 @@ get_redirect() {
elif command -v wget > /dev/null 2>&1; then
run sh -c "wget --max-redirect=0 ${url} 2>&1 | grep Location | cut -d ' ' -f2 | grep -o '[^/]*$'" || return 1
else
fatal "I need curl or wget to proceed, but neither of them are available on this system."
fatal "I need curl or wget to proceed, but neither of them are available on this system." F0003
fi
}
@ -259,7 +380,7 @@ safe_sha256sum() {
elif command -v shasum > /dev/null 2>&1; then
shasum -a 256 "$@"
else
fatal "I could not find a suitable checksum binary to use"
fatal "I could not find a suitable checksum binary to use" F0004
fi
}
@ -274,7 +395,7 @@ get_system_info() {
elif [ -s "/usr/lib/os-release" ] && [ -r "/usr/lib/os-release" ]; then
os_release_file="/usr/lib/os-release"
else
fatal "Cannot find an os-release file ..."
fatal "Cannot find an os-release file ..." F0401
fi
# shellcheck disable=SC1090
@ -314,7 +435,7 @@ get_system_info() {
SYSARCH="$(uname -m)"
;;
*)
fatal "Unsupported system type detected. Netdata cannot be installed on this system using this script."
fatal "Unsupported system type detected. Netdata cannot be installed on this system using this script." F0200
;;
esac
}
@ -339,7 +460,7 @@ confirm_root_support() {
fi
if [ -z "${ROOTCMD}" ]; then
fatal "We need root privileges to continue, but cannot find a way to gain them. Either re-run this script as root, or set \$ROOTCMD to a command that can be used to gain root privileges"
fatal "We need root privileges to continue, but cannot find a way to gain them. Either re-run this script as root, or set \$ROOTCMD to a command that can be used to gain root privileges" F0201
fi
fi
}
@ -370,7 +491,7 @@ update() {
progress "Updated existing install at ${ndprefix}"
return 0
else
fatal "Failed to update existing Netdata install at ${ndprefix}"
fatal "Failed to update existing Netdata install at ${ndprefix}" F0100
fi
else
return 1
@ -381,7 +502,15 @@ handle_existing_install() {
if pkg_installed netdata; then
ndprefix="/"
else
ndpath="$(command -v netdata 2>/dev/null)"
if [ -n "${INSTALL_PREFIX}" ]; then
searchpath="${INSTALL_PREFIX}/bin:${INSTALL_PREFIX}/sbin:${INSTALL_PREFIX}/usr/bin:${INSTALL_PREFIX}/usr/sbin:${PATH}"
searchpath="${INSTALL_PREFIX}/netdata/bin:${INSTALL_PREFIX}/netdata/sbin:${INSTALL_PREFIX}/netdata/usr/bin:${INSTALL_PREFIX}/netdata/usr/sbin:${searchpath}"
else
searchpath="${PATH}"
fi
ndpath="$(PATH="${searchpath}" command -v netdata 2>/dev/null)"
if [ -z "$ndpath" ] && [ -x /opt/netdata/bin/netdata ]; then
ndpath="/opt/netdata/bin/netdata"
fi
@ -390,8 +519,8 @@ handle_existing_install() {
ndprefix="$(dirname "$(dirname "${ndpath}")")"
fi
if [ "${ndprefix}" = /usr ]; then
ndprefix="/"
if echo "${ndprefix}" | grep -Eq '/usr$'; then
ndprefix="$(dirname "${ndprefix}")"
fi
fi
@ -430,12 +559,12 @@ handle_existing_install() {
if [ -n "${NETDATA_UNSAFE_REINSTALL}" ]; then
warning "Reinstalling over top of a ${INSTALL_TYPE} installation may be unsafe, but the user has requested we proceed."
elif [ "${INTERACTIVE}" -eq 0 ]; then
fatal "User requested reinstall, but we cannot safely reinstall over top of a ${INSTALL_TYPE} installation, exiting."
fatal "User requested reinstall, but we cannot safely reinstall over top of a ${INSTALL_TYPE} installation, exiting." F0104
else
if confirm "Reinstalling over top of a ${INSTALL_TYPE} installation may be unsafe, do you want to continue?"; then
progress "OK, continuing."
else
fatal "Cancelling reinstallation at user request."
fatal "Cancelling reinstallation at user request." F0105
fi
fi
;;
@ -460,32 +589,33 @@ handle_existing_install() {
claim
ret=$?
elif [ "${NETDATA_CLAIM_ONLY}" -eq 1 ]; then
fatal "User asked to claim, but did not proide a claiming token."
fatal "User asked to claim, but did not proide a claiming token." F0202
else
progress "Not attempting to claim existing install at ${ndprefix} (no claiming token provided)."
fi
cleanup
trap - EXIT
exit $ret
;;
oci)
fatal "This is an OCI container, use the regular image lifecycle management commands in your container instead of this script for managing it."
fatal "This is an OCI container, use the regular image lifecycle management commands in your container instead of this script for managing it." F0203
;;
*)
if [ -n "${NETDATA_REINSTALL}" ] || [ -n "${NETDATA_UNSAFE_REINSTALL}" ]; then
if [ -n "${NETDATA_UNSAFE_REINSTALL}" ]; then
warning "Reinstalling over top of a ${INSTALL_TYPE} installation may be unsafe, but the user has requested we proceed."
elif [ "${INTERACTIVE}" -eq 0 ]; then
fatal "User requested reinstall, but we cannot safely reinstall over top of a ${INSTALL_TYPE} installation, exiting."
fatal "User requested reinstall, but we cannot safely reinstall over top of a ${INSTALL_TYPE} installation, exiting." F0104
else
if confirm "Reinstalling over top of a ${INSTALL_TYPE} installation may be unsafe, do you want to continue?"; then
progress "OK, continuing."
else
fatal "Cancelling reinstallation at user request."
fatal "Cancelling reinstallation at user request." F0105
fi
fi
else
fatal "Found an existing netdata install at ${ndprefix}, but the install type is '${INSTALL_TYPE}', which is not supported, refusing to proceed."
fatal "Found an existing netdata install at ${ndprefix}, but the install type is '${INSTALL_TYPE}', which is not supported, refusing to proceed." F0103
fi
;;
esac
@ -526,16 +656,22 @@ EOF
confirm_install_prefix() {
if [ -n "${INSTALL_PREFIX}" ] && [ "${NETDATA_ONLY_BUILD}" -ne 1 ]; then
fatal "The \`--install\` option is only supported together with the \`--only-build\` option."
fatal "The \`--install\` option is only supported together with the \`--only-build\` option." F0204
fi
case "${SYSTYPE}" in
Darwin) INSTALL_PREFIX="${INSTALL_PREFIX:-/usr/local/netdata}" ;;
FreeBSD) INSTALL_PREFIX="${INSTALL_PREFIX:-/usr/local}" ;;
esac
if [ -n "${INSTALL_PREFIX}" ]; then
NETDATA_INSTALLER_OPTIONS="${NETDATA_INSTALLER_OPTIONS} --install ${INSTALL_PREFIX}"
else
case "${SYSTYPE}" in
Darwin)
INSTALL_PREFIX="/usr/local/netdata"
NETDATA_INSTALLER_OPTIONS="${NETDATA_INSTALLER_OPTIONS} --install-no-prefix ${INSTALL_PREFIX}"
;;
FreeBSD)
INSTALL_PREFIX="/usr/local"
NETDATA_INSTALLER_OPTIONS="${NETDATA_INSTALLER_OPTIONS} --install-no-prefix ${INSTALL_PREFIX}"
;;
esac
fi
}
@ -545,11 +681,11 @@ confirm_install_prefix() {
check_claim_opts() {
# shellcheck disable=SC2235,SC2030
if [ -z "${NETDATA_CLAIM_TOKEN}" ] && [ -n "${NETDATA_CLAIM_ROOMS}" ]; then
fatal "Invalid claiming options, claim rooms may only be specified when a token and URL are specified."
fatal "Invalid claiming options, claim rooms may only be specified when a token and URL are specified." F0204
elif [ -z "${NETDATA_CLAIM_TOKEN}" ] && [ -n "${NETDATA_CLAIM_EXTRA}" ]; then
fatal "Invalid claiming options, a claiming token must be specified."
fatal "Invalid claiming options, a claiming token must be specified." F0204
elif [ "${NETDATA_DISABLE_CLOUD}" -eq 1 ] && [ -n "${NETDATA_CLAIM_TOKEN}" ]; then
fatal "Cloud explicitly disabled, but automatic claiming requested. Either enable Netdata Cloud, or remove the --claim-* options."
fatal "Cloud explicitly disabled, but automatic claiming requested. Either enable Netdata Cloud, or remove the --claim-* options." F0204
fi
}
@ -574,6 +710,7 @@ claim() {
warning "Unable to claim node, you must do so manually."
if [ -z "${NETDATA_NEW_INSTALL}" ]; then
cleanup
trap - EXIT
exit 1
fi
fi
@ -681,6 +818,7 @@ try_package_install() {
pkg_install_opts="${interactive_opts}"
repo_update_opts="${interactive_opts}"
uninstall_subcmd="uninstall"
INSTALL_TYPE="binpkg-deb"
;;
ubuntu)
needs_early_refresh=1
@ -693,6 +831,7 @@ try_package_install() {
pkg_install_opts="${interactive_opts}"
repo_update_opts="${interactive_opts}"
uninstall_subcmd="uninstall"
INSTALL_TYPE="binpkg-deb"
;;
centos)
if command -v dnf > /dev/null; then
@ -708,6 +847,7 @@ try_package_install() {
pkg_install_opts="${interactive_opts}"
repo_update_opts="${interactive_opts}"
uninstall_subcmd="remove"
INSTALL_TYPE="binpkg-rpm"
;;
fedora)
if command -v dnf > /dev/null; then
@ -723,6 +863,7 @@ try_package_install() {
pkg_install_opts="${interactive_opts}"
repo_update_opts="${interactive_opts}"
uninstall_subcmd="remove"
INSTALL_TYPE="binpkg-rpm"
;;
opensuse)
pm_cmd="zypper"
@ -734,6 +875,7 @@ try_package_install() {
pkg_install_opts="${interactive_opts} --allow-unsigned-rpm"
repo_update_opts=""
uninstall_subcmd="remove"
INSTALL_TYPE="binpkg-rpm"
;;
*)
warning "We do not provide native packages for ${DISTRO}."
@ -772,7 +914,7 @@ try_package_install() {
progress "Updating repository metadata."
# shellcheck disable=SC2086
if ! run ${ROOTCMD} env ${env} ${pm_cmd} ${repo_subcmd} ${repo_update_opts}; then
fatal "Failed to update repository metadata."
fatal "Failed to update repository metadata." F0205
fi
fi
else
@ -842,11 +984,11 @@ try_static_install() {
fi
if ! download "${NETDATA_STATIC_ARCHIVE_CHECKSUM_URL}" "${tmpdir}/sha256sum.txt"; then
fatal "Unable to fetch checksums to verify static build archive."
fatal "Unable to fetch checksums to verify static build archive." F0206
fi
if ! grep "netdata-${SYSARCH}-latest.gz.run" "${tmpdir}/sha256sum.txt" | safe_sha256sum -c - > /dev/null 2>&1; then
fatal "Static binary checksum validation failed. Usually this is a result of an older copy of the file being cached somewhere upstream and can be resolved by retrying in an hour."
fatal "Static binary checksum validation failed. Usually this is a result of an older copy of the file being cached somewhere upstream and can be resolved by retrying in an hour." F0207
fi
if [ "${INTERACTIVE}" -eq 0 ]; then
@ -856,7 +998,9 @@ try_static_install() {
progress "Installing netdata"
# shellcheck disable=SC2086
if ! run ${ROOTCMD} sh "${tmpdir}/netdata-${SYSARCH}-latest.gz.run" ${opts} -- ${NETDATA_AUTO_UPDATES:+--auto-update} ${NETDATA_INSTALLER_OPTIONS}; then
fatal "Failed to install static build of Netdata on ${SYSARCH}."
warning "Failed to install static build of Netdata on ${SYSARCH}."
run rm -rf /opt/netdata
return 2
fi
install_type_file="/opt/netdata/etc/netdata/.install-type"
@ -947,7 +1091,16 @@ build_and_install() {
fi
# shellcheck disable=SC2086
run ${ROOTCMD} ./netdata-installer.sh ${opts} || fatal "netdata-installer.sh exited with error"
run ${ROOTCMD} ./netdata-installer.sh ${opts}
case $? in
1)
fatal "netdata-installer.sh exited with error" F0007
;;
2)
fatal "Insufficient RAM to install netdata" F0008
;;
esac
}
try_build_install() {
@ -961,12 +1114,12 @@ try_build_install() {
download "${NETDATA_SOURCE_ARCHIVE_URL}" "${tmpdir}/netdata-latest.tar.gz"
if ! grep netdata-latest.tar.gz "${tmpdir}/sha256sum.txt" | safe_sha256sum -c - > /dev/null 2>&1; then
fatal "Tarball checksum validation failed. Usually this is a result of an older copy of the file being cached somewhere upstream and can be resolved by retrying in an hour."
fatal "Tarball checksum validation failed. Usually this is a result of an older copy of the file being cached somewhere upstream and can be resolved by retrying in an hour." F0005
fi
run tar -xf "${tmpdir}/netdata-latest.tar.gz" -C "${tmpdir}"
rm -rf "${tmpdir}/netdata-latest.tar.gz" > /dev/null 2>&1
cd "$(find "${tmpdir}" -mindepth 1 -maxdepth 1 -type d -name netdata-)" || fatal "Cannot cd to netdata source tree"
cd "$(find "${tmpdir}" -mindepth 1 -maxdepth 1 -type d -name netdata-)" || fatal "Cannot cd to netdata source tree" F0006
if [ -x netdata-installer.sh ]; then
build_and_install || return 1
@ -975,7 +1128,7 @@ try_build_install() {
if [ "$(find . -mindepth 1 -maxdepth 1 -type d | wc -l)" -eq 1 ] && [ -x "$(find . -mindepth 1 -maxdepth 1 -type d)/netdata-installer.sh" ]; then
cd "$(find . -mindepth 1 -maxdepth 1 -type d)" && build_and_install || return 1
else
fatal "Cannot install netdata from source (the source directory does not include netdata-installer.sh). Leaving all files in ${tmpdir}"
fatal "Cannot install netdata from source (the source directory does not include netdata-installer.sh). Leaving all files in ${tmpdir}" F0009
fi
fi
}
@ -985,6 +1138,7 @@ try_build_install() {
install_on_linux() {
if [ "${NETDATA_ONLY_STATIC}" -ne 1 ] && [ "${NETDATA_ONLY_BUILD}" -ne 1 ]; then
SELECTED_INSTALL_METHOD="native"
try_package_install
case "$?" in
@ -992,11 +1146,11 @@ install_on_linux() {
NETDATA_INSTALL_SUCCESSFUL=1
;;
1)
fatal "Unable to install on this system."
fatal "Unable to install on this system." F0300
;;
2)
if [ "${NETDATA_ONLY_NATIVE}" -eq 1 ]; then
fatal "Could not install native binary packages."
fatal "Could not install native binary packages." F0301
else
warning "Could not install native binary packages, falling back to alternative installation method."
fi
@ -1005,6 +1159,8 @@ install_on_linux() {
fi
if [ "${NETDATA_ONLY_NATIVE}" -ne 1 ] && [ "${NETDATA_ONLY_BUILD}" -ne 1 ] && [ -z "${NETDATA_INSTALL_SUCCESSFUL}" ]; then
SELECTED_INSTALL_METHOD="static"
INSTALL_TYPE="kickstart-static"
try_static_install
case "$?" in
@ -1013,11 +1169,11 @@ install_on_linux() {
INSTALL_PREFIX="/opt/netdata"
;;
1)
fatal "Unable to install on this system."
fatal "Unable to install on this system." F0302
;;
2)
if [ "${NETDATA_ONLY_STATIC}" -eq 1 ]; then
fatal "Could not install static build."
fatal "Could not install static build." F0303
else
warning "Could not install static build, falling back to alternative installation method."
fi
@ -1026,6 +1182,8 @@ install_on_linux() {
fi
if [ "${NETDATA_ONLY_NATIVE}" -ne 1 ] && [ "${NETDATA_ONLY_STATIC}" -ne 1 ] && [ -z "${NETDATA_INSTALL_SUCCESSFUL}" ]; then
SELECTED_INSTALL_METHOD="build"
INSTALL_TYPE="kickstart-build"
try_build_install
case "$?" in
@ -1033,7 +1191,7 @@ install_on_linux() {
NETDATA_INSTALL_SUCCESSFUL=1
;;
*)
fatal "Unable to install on this system."
fatal "Unable to install on this system." F0304
;;
esac
fi
@ -1041,10 +1199,12 @@ install_on_linux() {
install_on_macos() {
if [ "${NETDATA_ONLY_NATIVE}" -eq 1 ]; then
fatal "User requested native package, but native packages are not available for macOS. Try installing without \`--only-native\` option."
fatal "User requested native package, but native packages are not available for macOS. Try installing without \`--only-native\` option." F0305
elif [ "${NETDATA_ONLY_STATIC}" -eq 1 ]; then
fatal "User requested static build, but static builds are not available for macOS. Try installing without \`--only-static\` option."
fatal "User requested static build, but static builds are not available for macOS. Try installing without \`--only-static\` option." F0306
else
SELECTED_INSTALL_METHOD="build"
INSTALL_TYPE="kickstart-build"
try_build_install
case "$?" in
@ -1052,7 +1212,7 @@ install_on_macos() {
NETDATA_INSTALL_SUCCESSFUL=1
;;
*)
fatal "Unable to install on this system."
fatal "Unable to install on this system." F0307
;;
esac
fi
@ -1060,10 +1220,12 @@ install_on_macos() {
install_on_freebsd() {
if [ "${NETDATA_ONLY_NATIVE}" -eq 1 ]; then
fatal "User requested native package, but native packages are not available for FreeBSD. Try installing without \`--only-native\` option."
fatal "User requested native package, but native packages are not available for FreeBSD. Try installing without \`--only-native\` option." F0308
elif [ "${NETDATA_ONLY_STATIC}" -eq 1 ]; then
fatal "User requested static build, but static builds are not available for FreeBSD. Try installing without \`--only-static\` option."
fatal "User requested static build, but static builds are not available for FreeBSD. Try installing without \`--only-static\` option." F0309
else
SELECTED_INSTALL_METHOD="build"
INSTALL_TYPE="kickstart-build"
try_build_install
case "$?" in
@ -1071,7 +1233,7 @@ install_on_freebsd() {
NETDATA_INSTALL_SUCCESSFUL=1
;;
*)
fatal "Unable to install on this system."
fatal "Unable to install on this system." F030A
;;
esac
fi
@ -1087,6 +1249,7 @@ while [ -n "${1}" ]; do
"--help")
usage
cleanup
trap - EXIT
exit 0
;;
"--no-cleanup") NO_CLEANUP=1 ;;
@ -1111,7 +1274,7 @@ while [ -n "${1}" ]; do
NETDATA_INSTALLER_OPTIONS="${NETDATA_INSTALLER_OPTIONS} --dont-start-it"
;;
"--disable-telemetry")
NETDATA_DISABLE_TELEMETRY="0"
NETDATA_DISABLE_TELEMETRY="1"
NETDATA_INSTALLER_OPTIONS="${NETDATA_INSTALLER_OPTIONS} --disable-telemetry"
;;
"--install")
@ -1122,18 +1285,20 @@ while [ -n "${1}" ]; do
NETDATA_ONLY_NATIVE=1
NETDATA_ONLY_STATIC=0
NETDATA_ONLY_BUILD=0
SELECTED_INSTALL_METHOD="native"
;;
"--static-only")
NETDATA_ONLY_STATIC=1
NETDATA_ONLY_NATIVE=0
NETDATA_ONLY_BUILD=0
SELECTED_INSTALL_METHOD="static"
;;
"--build-only")
NETDATA_ONLY_BUILD=1
NETDATA_ONLY_NATIVE=0
NETDATA_ONLY_STATIC=0
SELECTED_INSTALL_METHOD="build"
;;
"--claim-token")
NETDATA_CLAIM_TOKEN="${2}"
shift 1
@ -1192,4 +1357,6 @@ elif [ "${NETDATA_DISABLE_CLOUD}" -eq 1 ]; then
soft_disable_cloud
fi
telemetry_event INSTALL_SUCCESS "" ""
cleanup
trap - EXIT