diff --git a/yum.sh b/yum.sh index ce06b97..049fea7 100755 --- a/yum.sh +++ b/yum.sh @@ -19,24 +19,37 @@ mute && /^[[:print:]]+\.[[:print:]]+/ { } ' +print_metric_general='{print "yum_upgrades_pending{origin=\""$2"\",category=\"all\"} "$1}' +print_metric_security='{print "yum_upgrades_pending{origin=\""$2"\",category=\"security\"} "$1}' + check_upgrades() { - /usr/bin/yum -q check-update | + /usr/bin/yum $1 -q check-update | /usr/bin/xargs -n3 | awk "${filter_awk_script}" | sort | uniq -c | - awk '{print "yum_upgrades_pending{origin=\""$2"\"} "$1}' + awk "${2}" } -upgrades=$(check_upgrades) +check_all_upgrades() { check_upgrades "" "${print_metric_general}" ; } +check_security_upgrades() { check_upgrades "--security" "${print_metric_security}" ; } + +upgrades=$(check_all_upgrades) +security_upgrades=$(check_security_upgrades) echo '# HELP yum_upgrades_pending Yum package pending updates by origin.' echo '# TYPE yum_upgrades_pending gauge' if [[ -n "${upgrades}" ]]; then echo "${upgrades}" else - echo 'yum_upgrades_pending{origin=""} 0' + echo 'yum_upgrades_pending{origin="",category="all"} 0' fi +if [[ -n "${security_upgrades}" ]]; then + echo "${security_upgrades}" +else + echo 'yum_upgrades_pending{origin="",category="security"} 0' +fi + # If yum-utils/dnf-utils is not installed then we skip rendering this metric if [[ -x /bin/needs-restarting ]]; then