From e76e10abc67f527cb58ac4664f0e0b2fce709ba1 Mon Sep 17 00:00:00 2001 From: layman Date: Mon, 16 May 2022 22:32:42 +0200 Subject: [PATCH] consolidate dumping function --- portage_exporter.sh | 58 +++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/portage_exporter.sh b/portage_exporter.sh index cb5b44b..6d4060a 100755 --- a/portage_exporter.sh +++ b/portage_exporter.sh @@ -8,41 +8,37 @@ TEXTFILE_COLLECTOR_DIR=${TEXTFILE_COLLECTOR_DIR:-/var/lib/node_exporter/} PROM_FILE=$TEXTFILE_COLLECTOR_DIR/portage.prom TMP_FILE=$PROM_FILE.$$ - - -echo "# TYPE portage_age_seconds gauge" -echo "# TYPE update_count gauge" -echo "# TYPE selected_update_count gauge" -echo "# TYPE glsa_count gauge" - -HOSTNAME=${HOSTNAME:-$(hostname)} -( -portage_timestamp="/usr/portage/metadata/timestamp" -age_seconds="$(( $(date +%s) - $(date +%s -r "$portage_timestamp") ))" -update_count="$(eix -u -c | wc -l)" -selected_update_count="$(eix -u -c --selected | wc -l)" -glsa_count=$[$(glsa-check -t all | wc -l )] -echo portage_age_seconds\{host=\""$HOSTNAME"\"\} "$age_seconds" -echo update_count\{host=\""$HOSTNAME"\"\} "$update_count" -echo selectd_update_count\{host=\""$HOSTNAME"\"\} "$selected_update_count" -echo glsa_count\{host=\""$HOSTNAME"\"\} "$glsa_count" -)> "$TMP_FILE" - -CHROOTS=( - "/var/lib/buildPackages/packages_amd64" - "/var/lib/buildPackages/desktop_amd64" - ) - -for root in "${CHROOTS[@]}"; do +function dumpInfo () { + local root="$1" + if [[ "$root" == "/" ]] ; then + local mychroot=() + else + local mychroot=( chroot "$root" ) + fi portage_timestamp="/usr/portage/metadata/timestamp" - age_seconds="$(( $(date +%s) - $(chroot "$root" date +%s -r "$portage_timestamp") ))" - update_count="$(chroot "$root" eix -u -c | wc -l)" - selected_update_count="$(chroot "$root" eix -u -c --selected | wc -l)" - glsa_count=$[$(chroot "$root" glsa-check -t all | wc -l )] + age_seconds="$(( $(date +%s) - $("${mychroot[@]}" date +%s -r "$portage_timestamp") ))" + update_count="$("${mychroot[@]}" eix -u -c | wc -l)" + selected_update_count="$("${mychroot[@]}" eix -u -c --selected | wc -l)" + glsa_count="$("${mychroot[@]}" glsa-check -t all 2> /dev/null | wc -l )" echo portage_age_seconds\{host=\""$HOSTNAME"\", root=\""$root"\"\} "$age_seconds" echo update_count\{host=\""$HOSTNAME"\", root=\""$root"\"\} "$update_count" echo selectd_update_count\{host=\""$HOSTNAME"\", root=\""$root"\"\} "$selected_update_count" echo glsa_count\{host=\""$HOSTNAME"\", root=\""$root"\"\} "$glsa_count" -done > "$TMP_FILE" +} + +HOSTNAME=${HOSTNAME:-$(hostname)} + +( + echo "# TYPE portage_age_seconds gauge" + echo "# TYPE update_count gauge" + echo "# TYPE selected_update_count gauge" + echo "# TYPE glsa_count gauge" + + dumpInfo "/" +) > "$TMP_FILE" + +for root in "${CHROOTS[@]}"; do + dumpInfo "$root" +done >> "$TMP_FILE" mv "$TMP_FILE" "$PROM_FILE"