From e55bef009ad4dceabb2c2bfd3c1ac69036db9138 Mon Sep 17 00:00:00 2001 From: Alexandre Iooss Date: Sun, 19 Jan 2020 18:56:23 +0100 Subject: [PATCH] Add orphans apt packages metric --- roles/prometheus-node-exporter/files/apt.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) mode change 100644 => 100755 roles/prometheus-node-exporter/files/apt.sh diff --git a/roles/prometheus-node-exporter/files/apt.sh b/roles/prometheus-node-exporter/files/apt.sh old mode 100644 new mode 100755 index 1ff1dcd0..7333a674 --- a/roles/prometheus-node-exporter/files/apt.sh +++ b/roles/prometheus-node-exporter/files/apt.sh @@ -19,6 +19,13 @@ autoremove="$(/usr/bin/apt-get --just-print autoremove \ | /usr/bin/awk '/^Remv/{a++}END{printf "apt_autoremove_pending %d", a}' )" +orphans="$(comm -23 \ + <(dpkg-query -W -f '${db:Status-Abbrev}\t${Package}\n' \ + | grep '^.[^nc]' | cut -f2 | sort) \ + <(apt-cache dumpavail | sed -rn 's/^Package: (.*)/\1/p' | sort -u) \ + | awk 'END{printf "apt_orphans %d", NR}' +)" + echo '# HELP apt_upgrades_pending Apt package pending updates by origin.' echo '# TYPE apt_upgrades_pending gauge' if [[ -n "${upgrades}" ]] ; then @@ -31,6 +38,10 @@ echo '# HELP apt_autoremove_pending Apt package pending autoremove.' echo '# TYPE apt_autoremove_pending gauge' echo "${autoremove}" +echo '# HELP apt_orphans Orphan apt package.' +echo '# TYPE apt_orphans gauge' +echo "${orphans}" + echo '# HELP node_reboot_required Node reboot is required for software updates.' echo '# TYPE node_reboot_required gauge' if [[ -f '/run/reboot-required' ]] ; then