system-info.sh 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. #!/usr/bin/env sh
  2. # -------------------------------------------------------------------------------------------------
  3. # detect the kernel
  4. KERNEL_NAME="$(uname -s)"
  5. KERNEL_VERSION="$(uname -r)"
  6. ARCHITECTURE="$(uname -m)"
  7. # -------------------------------------------------------------------------------------------------
  8. # detect the virtualization and possibly the container technology
  9. CONTAINER="unknown"
  10. CONT_DETECTION="none"
  11. CONTAINER_IS_OFFICIAL_IMAGE="${NETDATA_OFFICIAL_IMAGE:-false}"
  12. if [ -z "${VIRTUALIZATION}" ]; then
  13. VIRTUALIZATION="unknown"
  14. VIRT_DETECTION="none"
  15. if [ -n "$(command -v systemd-detect-virt 2> /dev/null)" ]; then
  16. VIRTUALIZATION="$(systemd-detect-virt -v)"
  17. VIRT_DETECTION="systemd-detect-virt"
  18. CONTAINER=${CONTAINER:-$(systemd-detect-virt -c)}
  19. CONT_DETECTION="systemd-detect-virt"
  20. else
  21. if grep -q "^flags.*hypervisor" /proc/cpuinfo 2> /dev/null; then
  22. VIRTUALIZATION="hypervisor"
  23. VIRT_DETECTION="/proc/cpuinfo"
  24. elif [ -n "$(command -v dmidecode)" ] && dmidecode -s system-product-name 2> /dev/null | grep -q "VMware\|Virtual\|KVM\|Bochs"; then
  25. VIRTUALIZATION="$(dmidecode -s system-product-name)"
  26. VIRT_DETECTION="dmidecode"
  27. else
  28. VIRTUALIZATION="none"
  29. fi
  30. fi
  31. if [ -z "${VIRTUALIZATION}" ]; then
  32. # Output from the command is outside of spec
  33. VIRTUALIZATION="unknown"
  34. fi
  35. else
  36. # Passed from outside - probably in docker run
  37. VIRT_DETECTION="provided"
  38. fi
  39. # -------------------------------------------------------------------------------------------------
  40. # detect containers with heuristics
  41. if [ "${CONTAINER}" = "unknown" ]; then
  42. if [ -f /proc/1/sched ]; then
  43. IFS='(, ' read -r process _ < /proc/1/sched
  44. if [ "${process}" = "netdata" ]; then
  45. CONTAINER="container"
  46. CONT_DETECTION="process"
  47. fi
  48. fi
  49. # ubuntu and debian supply /bin/running-in-container
  50. # https://www.apt-browse.org/browse/ubuntu/trusty/main/i386/upstart/1.12.1-0ubuntu4/file/bin/running-in-container
  51. if /bin/running-in-container > /dev/null 2>&1; then
  52. CONTAINER="container"
  53. CONT_DETECTION="/bin/running-in-container"
  54. fi
  55. # lxc sets environment variable 'container'
  56. #shellcheck disable=SC2154
  57. if [ -n "${container}" ]; then
  58. CONTAINER="lxc"
  59. CONT_DETECTION="containerenv"
  60. fi
  61. # docker creates /.dockerenv
  62. # http://stackoverflow.com/a/25518345
  63. if [ -f "/.dockerenv" ]; then
  64. CONTAINER="docker"
  65. CONT_DETECTION="dockerenv"
  66. fi
  67. fi
  68. # -------------------------------------------------------------------------------------------------
  69. # detect the operating system
  70. # Initially assume all OS detection values are for a container, these are moved later if we are bare-metal
  71. CONTAINER_OS_DETECTION="unknown"
  72. CONTAINER_NAME="unknown"
  73. CONTAINER_VERSION="unknown"
  74. CONTAINER_VERSION_ID="unknown"
  75. CONTAINER_ID="unknown"
  76. CONTAINER_ID_LIKE="unknown"
  77. if [ "${KERNEL_NAME}" = "Darwin" ]; then
  78. CONTAINER_ID=$(sw_vers -productName)
  79. CONTAINER_ID_LIKE="mac"
  80. CONTAINER_NAME="mac"
  81. CONTAINER_VERSION=$(sw_vers -productVersion)
  82. CONTAINER_OS_DETECTION="sw_vers"
  83. elif [ "${KERNEL_NAME}" = "FreeBSD" ]; then
  84. CONTAINER_ID="FreeBSD"
  85. CONTAINER_ID_LIKE="FreeBSD"
  86. CONTAINER_NAME="FreeBSD"
  87. CONTAINER_OS_DETECTION="uname"
  88. CONTAINER_VERSION=$(uname -r)
  89. KERNEL_VERSION=$(uname -K)
  90. else
  91. if [ -f "/etc/os-release" ]; then
  92. eval "$(grep -E "^(NAME|ID|ID_LIKE|VERSION|VERSION_ID)=" < /etc/os-release | sed 's/^/CONTAINER_/')"
  93. CONTAINER_OS_DETECTION="/etc/os-release"
  94. fi
  95. # shellcheck disable=SC2153
  96. if [ "${CONTAINER_NAME}" = "unknown" ] || [ "${CONTAINER_VERSION}" = "unknown" ] || [ "${CONTAINER_ID}" = "unknown" ]; then
  97. if [ -f "/etc/lsb-release" ]; then
  98. if [ "${CONTAINER_OS_DETECTION}" = "unknown" ]; then
  99. CONTAINER_OS_DETECTION="/etc/lsb-release"
  100. else
  101. CONTAINER_OS_DETECTION="Mixed"
  102. fi
  103. DISTRIB_ID="unknown"
  104. DISTRIB_RELEASE="unknown"
  105. DISTRIB_CODENAME="unknown"
  106. eval "$(grep -E "^(DISTRIB_ID|DISTRIB_RELEASE|DISTRIB_CODENAME)=" < /etc/lsb-release)"
  107. if [ "${CONTAINER_NAME}" = "unknown" ]; then CONTAINER_NAME="${DISTRIB_ID}"; fi
  108. if [ "${CONTAINER_VERSION}" = "unknown" ]; then CONTAINER_VERSION="${DISTRIB_RELEASE}"; fi
  109. if [ "${CONTAINER_ID}" = "unknown" ]; then CONTAINER_ID="${DISTRIB_CODENAME}"; fi
  110. fi
  111. if [ -n "$(command -v lsb_release 2> /dev/null)" ]; then
  112. if [ "${CONTAINER_OS_DETECTION}" = "unknown" ]; then
  113. CONTAINER_OS_DETECTION="lsb_release"
  114. else
  115. CONTAINER_OS_DETECTION="Mixed"
  116. fi
  117. if [ "${CONTAINER_NAME}" = "unknown" ]; then CONTAINER_NAME="$(lsb_release -is 2> /dev/null)"; fi
  118. if [ "${CONTAINER_VERSION}" = "unknown" ]; then CONTAINER_VERSION="$(lsb_release -rs 2> /dev/null)"; fi
  119. if [ "${CONTAINER_ID}" = "unknown" ]; then CONTAINER_ID="$(lsb_release -cs 2> /dev/null)"; fi
  120. fi
  121. fi
  122. fi
  123. # If Netdata is not running in a container then use the local detection as the host
  124. HOST_OS_DETECTION="unknown"
  125. HOST_NAME="unknown"
  126. HOST_VERSION="unknown"
  127. HOST_VERSION_ID="unknown"
  128. HOST_ID="unknown"
  129. HOST_ID_LIKE="unknown"
  130. # 'systemd-detect-virt' returns 'none' if there is no hardware/container virtualization.
  131. if [ "${CONTAINER}" = "unknown" ] || [ "${CONTAINER}" = "none" ]; then
  132. for v in NAME ID ID_LIKE VERSION VERSION_ID OS_DETECTION; do
  133. eval "HOST_$v=\$CONTAINER_$v; CONTAINER_$v=none"
  134. done
  135. else
  136. # Otherwise try and use a user-supplied bind-mount into the container to resolve the host details
  137. if [ -e "/host/etc/os-release" ]; then
  138. eval "$(grep -E "^(NAME|ID|ID_LIKE|VERSION|VERSION_ID)=" < /host/etc/os-release | sed 's/^/HOST_/')"
  139. HOST_OS_DETECTION="/host/etc/os-release"
  140. fi
  141. if [ "${HOST_NAME}" = "unknown" ] || [ "${HOST_VERSION}" = "unknown" ] || [ "${HOST_ID}" = "unknown" ]; then
  142. if [ -f "/host/etc/lsb-release" ]; then
  143. if [ "${HOST_OS_DETECTION}" = "unknown" ]; then
  144. HOST_OS_DETECTION="/etc/lsb-release"
  145. else
  146. HOST_OS_DETECTION="Mixed"
  147. fi
  148. DISTRIB_ID="unknown"
  149. DISTRIB_RELEASE="unknown"
  150. DISTRIB_CODENAME="unknown"
  151. eval "$(grep -E "^(DISTRIB_ID|DISTRIB_RELEASE|DISTRIB_CODENAME)=" < /etc/lsb-release)"
  152. if [ "${HOST_NAME}" = "unknown" ]; then HOST_NAME="${DISTRIB_ID}"; fi
  153. if [ "${HOST_VERSION}" = "unknown" ]; then HOST_VERSION="${DISTRIB_RELEASE}"; fi
  154. if [ "${HOST_ID}" = "unknown" ]; then HOST_ID="${DISTRIB_CODENAME}"; fi
  155. fi
  156. fi
  157. fi
  158. # -------------------------------------------------------------------------------------------------
  159. # Detect information about the CPU
  160. LCPU_COUNT="unknown"
  161. CPU_MODEL="unknown"
  162. CPU_VENDOR="unknown"
  163. CPU_FREQ="unknown"
  164. CPU_INFO_SOURCE="none"
  165. possible_cpu_freq=""
  166. nproc="$(command -v nproc)"
  167. lscpu="$(command -v lscpu)"
  168. lscpu_output=""
  169. dmidecode="$(command -v dmidecode)"
  170. dmidecode_output=""
  171. if [ -n "${lscpu}" ] && lscpu > /dev/null 2>&1; then
  172. lscpu_output="$(LC_NUMERIC=C ${lscpu} 2> /dev/null)"
  173. CPU_INFO_SOURCE="lscpu"
  174. LCPU_COUNT="$(echo "${lscpu_output}" | grep "^CPU(s):" | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
  175. CPU_VENDOR="$(echo "${lscpu_output}" | grep "^Vendor ID:" | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
  176. CPU_MODEL="$(echo "${lscpu_output}" | grep "^Model name:" | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
  177. possible_cpu_freq="$(echo "${lscpu_output}" | grep -F "CPU max MHz:" | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' | grep -o '^[0-9]*')"
  178. if [ -z "$possible_cpu_freq" ]; then
  179. possible_cpu_freq="$(echo "${lscpu_output}" | grep -F "CPU MHz:" | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' | grep -o '^[0-9]*')"
  180. fi
  181. if [ -z "$possible_cpu_freq" ]; then
  182. possible_cpu_freq="$(echo "${lscpu_output}" | grep "^Model name:" | grep -Eo "[0-9\.]+GHz" | grep -o "^[0-9\.]*" | awk '{print int($0*1000)}')"
  183. fi
  184. [ -n "$possible_cpu_freq" ] && possible_cpu_freq="${possible_cpu_freq} MHz"
  185. elif [ -n "${dmidecode}" ] && dmidecode -t processor > /dev/null 2>&1; then
  186. dmidecode_output="$(${dmidecode} -t processor 2> /dev/null)"
  187. CPU_INFO_SOURCE="dmidecode"
  188. LCPU_COUNT="$(echo "${dmidecode_output}" | grep -F "Thread Count:" | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
  189. CPU_VENDOR="$(echo "${dmidecode_output}" | grep -F "Manufacturer:" | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
  190. CPU_MODEL="$(echo "${dmidecode_output}" | grep -F "Version:" | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
  191. possible_cpu_freq="$(echo "${dmidecode_output}" | grep -F "Current Speed:" | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
  192. else
  193. if [ -n "${nproc}" ]; then
  194. CPU_INFO_SOURCE="nproc"
  195. LCPU_COUNT="$(${nproc})"
  196. elif [ "${KERNEL_NAME}" = FreeBSD ]; then
  197. CPU_INFO_SOURCE="sysctl"
  198. LCPU_COUNT="$(sysctl -n kern.smp.cpus)"
  199. if ! possible_cpu_freq=$(sysctl -n machdep.tsc_freq 2> /dev/null); then
  200. possible_cpu_freq=$(sysctl -n hw.model 2> /dev/null | grep -Eo "[0-9\.]+GHz" | grep -o "^[0-9\.]*" | awk '{print int($0*1000)}')
  201. [ -n "$possible_cpu_freq" ] && possible_cpu_freq="${possible_cpu_freq} MHz"
  202. fi
  203. elif [ "${KERNEL_NAME}" = Darwin ]; then
  204. CPU_INFO_SOURCE="sysctl"
  205. LCPU_COUNT="$(sysctl -n hw.logicalcpu)"
  206. elif [ -d /sys/devices/system/cpu ]; then
  207. CPU_INFO_SOURCE="sysfs"
  208. # This is potentially more accurate than checking `/proc/cpuinfo`.
  209. LCPU_COUNT="$(find /sys/devices/system/cpu -mindepth 1 -maxdepth 1 -type d -name 'cpu*' | grep -cEv 'idle|freq')"
  210. elif [ -r /proc/cpuinfo ]; then
  211. CPU_INFO_SOURCE="procfs"
  212. LCPU_COUNT="$(grep -c ^processor /proc/cpuinfo)"
  213. fi
  214. if [ "${KERNEL_NAME}" = Darwin ]; then
  215. CPU_MODEL="$(sysctl -n machdep.cpu.brand_string)"
  216. if [ "${ARCHITECTURE}" = "x86_64" ]; then
  217. CPU_VENDOR="$(sysctl -n machdep.cpu.vendor)"
  218. else
  219. CPU_VENDOR="Apple"
  220. fi
  221. echo "${CPU_INFO_SOURCE}" | grep -qv sysctl && CPU_INFO_SOURCE="${CPU_INFO_SOURCE} sysctl"
  222. elif uname --version 2> /dev/null | grep -qF 'GNU coreutils'; then
  223. CPU_INFO_SOURCE="${CPU_INFO_SOURCE} uname"
  224. CPU_MODEL="$(uname -p)"
  225. CPU_VENDOR="$(uname -i)"
  226. elif [ "${KERNEL_NAME}" = FreeBSD ]; then
  227. if (echo "${CPU_INFO_SOURCE}" | grep -qv sysctl); then
  228. CPU_INFO_SOURCE="${CPU_INFO_SOURCE} sysctl"
  229. fi
  230. CPU_MODEL="$(sysctl -n hw.model)"
  231. elif [ -r /proc/cpuinfo ]; then
  232. if (echo "${CPU_INFO_SOURCE}" | grep -qv procfs); then
  233. CPU_INFO_SOURCE="${CPU_INFO_SOURCE} procfs"
  234. fi
  235. CPU_MODEL="$(grep -F "model name" /proc/cpuinfo | head -n 1 | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
  236. CPU_VENDOR="$(grep -F "vendor_id" /proc/cpuinfo | head -n 1 | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
  237. fi
  238. fi
  239. if [ "${KERNEL_NAME}" = Darwin ] && [ "${ARCHITECTURE}" = "x86_64" ]; then
  240. CPU_FREQ="$(sysctl -n hw.cpufrequency)"
  241. elif [ -r /sys/devices/system/cpu/cpu0/cpufreq/base_frequency ]; then
  242. if (echo "${CPU_INFO_SOURCE}" | grep -qv sysfs); then
  243. CPU_INFO_SOURCE="${CPU_INFO_SOURCE} sysfs"
  244. fi
  245. value="$(cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency)"
  246. CPU_FREQ="$((value * 1000))"
  247. elif [ -n "${possible_cpu_freq}" ]; then
  248. CPU_FREQ="${possible_cpu_freq}"
  249. elif [ -r /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq ]; then
  250. if (echo "${CPU_INFO_SOURCE}" | grep -qv sysfs); then
  251. CPU_INFO_SOURCE="${CPU_INFO_SOURCE} sysfs"
  252. fi
  253. value="$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)"
  254. CPU_FREQ="$((value * 1000))"
  255. fi
  256. freq_units="$(echo "${CPU_FREQ}" | cut -f 2 -d ' ')"
  257. case "${freq_units}" in
  258. GHz)
  259. value="$(echo "${CPU_FREQ}" | cut -f 1 -d ' ')"
  260. CPU_FREQ="$((value * 1000 * 1000 * 1000))"
  261. ;;
  262. MHz)
  263. value="$(echo "${CPU_FREQ}" | cut -f 1 -d ' ')"
  264. CPU_FREQ="$((value * 1000 * 1000))"
  265. ;;
  266. KHz)
  267. value="$(echo "${CPU_FREQ}" | cut -f 1 -d ' ')"
  268. CPU_FREQ="$((value * 1000))"
  269. ;;
  270. *) ;;
  271. esac
  272. # -------------------------------------------------------------------------------------------------
  273. # Detect the total system RAM
  274. TOTAL_RAM="unknown"
  275. RAM_DETECTION="none"
  276. if [ "${KERNEL_NAME}" = FreeBSD ]; then
  277. RAM_DETECTION="sysctl"
  278. TOTAL_RAM="$(sysctl -n hw.physmem)"
  279. elif [ "${KERNEL_NAME}" = Darwin ]; then
  280. RAM_DETECTION="sysctl"
  281. TOTAL_RAM="$(sysctl -n hw.physmem)"
  282. elif [ -r /proc/meminfo ]; then
  283. RAM_DETECTION="procfs"
  284. TOTAL_RAM="$(grep -F MemTotal /proc/meminfo | cut -f 2 -d ':' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' | cut -f 1 -d ' ')"
  285. TOTAL_RAM="$((TOTAL_RAM * 1024))"
  286. fi
  287. # -------------------------------------------------------------------------------------------------
  288. # Detect the total system disk space
  289. DISK_SIZE="unknown"
  290. DISK_DETECTION="none"
  291. if [ "${KERNEL_NAME}" = "Darwin" ]; then
  292. types='hfs'
  293. if (lsvfs | grep -q apfs); then
  294. types="${types},apfs"
  295. fi
  296. if (lsvfs | grep -q ufs); then
  297. types="${types},ufs"
  298. fi
  299. DISK_DETECTION="df"
  300. DISK_SIZE=$(($(/bin/df -k -t ${types} | tail -n +2 | sed -E 's/\/dev\/disk([[:digit:]]*)s[[:digit:]]*/\/dev\/disk\1/g' | sort -k 1 | awk -F ' ' '{s=$NF;for(i=NF-1;i>=1;i--)s=s FS $i;print s}' | uniq -f 9 | awk '{print $8}' | tr '\n' '+' | rev | cut -f 2- -d '+' | rev) * 1024))
  301. elif [ "${KERNEL_NAME}" = FreeBSD ]; then
  302. types='ufs'
  303. if (lsvfs | grep -q zfs); then
  304. types="${types},zfs"
  305. fi
  306. DISK_DETECTION="df"
  307. total="$(df -t ${types} -c -k | tail -n 1 | awk '{print $2}')"
  308. DISK_SIZE="$((total * 1024))"
  309. else
  310. if [ -d /sys/block ] && [ -r /proc/devices ]; then
  311. dev_major_whitelist=''
  312. # This is a list of device names used for block storage devices.
  313. # These translate to the prefixs of files in `/dev` indicating the device type.
  314. # They are sorted by lowest used device major number, with dynamically assigned ones at the end.
  315. # We use this to look up device major numbers in `/proc/devices`
  316. device_names='hd sd mfm ad ftl pd nftl dasd intfl mmcblk ub xvd rfd vbd nvme virtblk blkext'
  317. for name in ${device_names}; do
  318. if grep -qE " ${name}\$" /proc/devices; then
  319. dev_major_whitelist="${dev_major_whitelist}:$(grep -E "${name}\$" /proc/devices | sed -e 's/^[[:space:]]*//' | cut -f 1 -d ' ' | tr '\n' ':'):"
  320. fi
  321. done
  322. DISK_DETECTION="sysfs"
  323. DISK_SIZE="0"
  324. for disk in /sys/block/*; do
  325. if [ -r "${disk}/size" ] \
  326. && (echo "${dev_major_whitelist}" | grep -q ":$(cut -f 1 -d ':' "${disk}/dev"):") \
  327. && grep -qv 1 "${disk}/removable"; then
  328. size="$(($(cat "${disk}/size") * 512))"
  329. DISK_SIZE="$((DISK_SIZE + size))"
  330. fi
  331. done
  332. elif df --version 2> /dev/null | grep -qF "GNU coreutils"; then
  333. DISK_DETECTION="df"
  334. DISK_SIZE=$(($(df -x tmpfs -x devtmpfs -x squashfs -l -B1 --output=source,size | tail -n +2 | sort -u -k 1 | awk '{print $2}' | tr '\n' '+' | head -c -1)))
  335. else
  336. DISK_DETECTION="df"
  337. include_fs_types="ext*|btrfs|xfs|jfs|reiser*|zfs"
  338. DISK_SIZE=$(($(df -T -P | tail -n +2 | sort -u -k 1 | grep "${include_fs_types}" | awk '{print $3}' | tr '\n' '+' | head -c -1) * 1024))
  339. fi
  340. fi
  341. # -------------------------------------------------------------------------------------------------
  342. # Detect whether the node is kubernetes node
  343. HOST_IS_K8S_NODE="false"
  344. if [ -n "${KUBERNETES_SERVICE_HOST}" ] && [ -n "${KUBERNETES_SERVICE_PORT}" ]; then
  345. # These env vars are set for every container managed by k8s.
  346. HOST_IS_K8S_NODE="true"
  347. elif pgrep "kubelet"; then
  348. # The kubelet is the primary "node agent" that runs on each node.
  349. HOST_IS_K8S_NODE="true"
  350. fi
  351. echo "NETDATA_CONTAINER_OS_NAME=${CONTAINER_NAME}"
  352. echo "NETDATA_CONTAINER_OS_ID=${CONTAINER_ID}"
  353. echo "NETDATA_CONTAINER_OS_ID_LIKE=${CONTAINER_ID_LIKE}"
  354. echo "NETDATA_CONTAINER_OS_VERSION=${CONTAINER_VERSION}"
  355. echo "NETDATA_CONTAINER_OS_VERSION_ID=${CONTAINER_VERSION_ID}"
  356. echo "NETDATA_CONTAINER_OS_DETECTION=${CONTAINER_OS_DETECTION}"
  357. echo "NETDATA_CONTAINER_IS_OFFICIAL_IMAGE=${CONTAINER_IS_OFFICIAL_IMAGE}"
  358. echo "NETDATA_HOST_OS_NAME=${HOST_NAME}"
  359. echo "NETDATA_HOST_OS_ID=${HOST_ID}"
  360. echo "NETDATA_HOST_OS_ID_LIKE=${HOST_ID_LIKE}"
  361. echo "NETDATA_HOST_OS_VERSION=${HOST_VERSION}"
  362. echo "NETDATA_HOST_OS_VERSION_ID=${HOST_VERSION_ID}"
  363. echo "NETDATA_HOST_OS_DETECTION=${HOST_OS_DETECTION}"
  364. echo "NETDATA_HOST_IS_K8S_NODE=${HOST_IS_K8S_NODE}"
  365. echo "NETDATA_SYSTEM_KERNEL_NAME=${KERNEL_NAME}"
  366. echo "NETDATA_SYSTEM_KERNEL_VERSION=${KERNEL_VERSION}"
  367. echo "NETDATA_SYSTEM_ARCHITECTURE=${ARCHITECTURE}"
  368. echo "NETDATA_SYSTEM_VIRTUALIZATION=${VIRTUALIZATION}"
  369. echo "NETDATA_SYSTEM_VIRT_DETECTION=${VIRT_DETECTION}"
  370. echo "NETDATA_SYSTEM_CONTAINER=${CONTAINER}"
  371. echo "NETDATA_SYSTEM_CONTAINER_DETECTION=${CONT_DETECTION}"
  372. echo "NETDATA_SYSTEM_CPU_LOGICAL_CPU_COUNT=${LCPU_COUNT}"
  373. echo "NETDATA_SYSTEM_CPU_VENDOR=${CPU_VENDOR}"
  374. echo "NETDATA_SYSTEM_CPU_MODEL=${CPU_MODEL}"
  375. echo "NETDATA_SYSTEM_CPU_FREQ=${CPU_FREQ}"
  376. echo "NETDATA_SYSTEM_CPU_DETECTION=${CPU_INFO_SOURCE}"
  377. echo "NETDATA_SYSTEM_TOTAL_RAM=${TOTAL_RAM}"
  378. echo "NETDATA_SYSTEM_RAM_DETECTION=${RAM_DETECTION}"
  379. echo "NETDATA_SYSTEM_TOTAL_DISK_SIZE=${DISK_SIZE}"
  380. echo "NETDATA_SYSTEM_DISK_DETECTION=${DISK_DETECTION}"