From 73a5ab2a05a0f3031d60bcf93de31946e191353d Mon Sep 17 00:00:00 2001 From: Bruno MATEU Date: Fri, 12 Jul 2024 00:24:12 +0200 Subject: [PATCH 1/2] Add security update metrics for yum.sh Signed-off-by: Bruno MATEU --- yum.sh | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/yum.sh b/yum.sh index ce06b971..49711df2 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 From 687ac0a8eee511699035151051824c017211bc8a Mon Sep 17 00:00:00 2001 From: Bruno MATEU Date: Fri, 12 Jul 2024 01:02:13 +0200 Subject: [PATCH 2/2] Apply suggestions from code review Signed-off-by: Bruno MATEU --- yum.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yum.sh b/yum.sh index 49711df2..049fea74 100755 --- a/yum.sh +++ b/yum.sh @@ -42,12 +42,12 @@ echo '# TYPE yum_upgrades_pending gauge' if [[ -n "${upgrades}" ]]; then echo "${upgrades}" else - echo 'yum_upgrades_pending{origin="",category=\"all\"} 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' + echo 'yum_upgrades_pending{origin="",category="security"} 0' fi