mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-21 10:39:53 +00:00
systemd_mem: fix handling unlimited number on debian stretch
This commit is contained in:
parent
b21206c68c
commit
b559571668
1 changed files with 15 additions and 8 deletions
|
@ -58,12 +58,19 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SO
|
||||||
|
|
||||||
. "$MUNIN_LIBDIR/plugins/plugin.sh"
|
. "$MUNIN_LIBDIR/plugins/plugin.sh"
|
||||||
|
|
||||||
|
# at least on debian stretch services report this as unlimited / unknown value (2^64)
|
||||||
|
# see https://lists.freedesktop.org/archives/systemd-devel/2018-July/041092.html
|
||||||
|
SYSTEMD_UNLIMITED="18446744073709551615"
|
||||||
|
|
||||||
|
all_services=${all_services:-}
|
||||||
|
services=${services:-"munin-node"}
|
||||||
|
|
||||||
for_services() {
|
for_services() {
|
||||||
if [ "$all_services" != "" ]; then
|
if [ "$all_services" != "" ]; then
|
||||||
systemctl --type=service --state=running --no-pager --no-legend --output=short-precise \
|
systemctl --type=service --state=running --no-pager --no-legend --output=short-precise \
|
||||||
| awk '{sub(".service$", "", $1); print $1}'
|
| awk '{sub(".service$", "", $1); print $1}'
|
||||||
else
|
else
|
||||||
echo ${services:-"munin-node"}
|
echo "$services"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,18 +82,18 @@ output_config() {
|
||||||
echo "graph_category memory"
|
echo "graph_category memory"
|
||||||
for service in $(for_services); do
|
for service in $(for_services); do
|
||||||
clean_name="$(clean_fieldname "$service")"
|
clean_name="$(clean_fieldname "$service")"
|
||||||
description=$(systemctl show "$service" --property=Description | cut -d '=' -f 2)
|
description=$(systemctl show "$service" --property=Description | cut -d '=' -f 2-)
|
||||||
warning=$(systemctl show "$service" --property=MemoryHigh | cut -d '=' -f 2)
|
warning=$(systemctl show "$service" --property=MemoryHigh | cut -d '=' -f 2)
|
||||||
critical=$(systemctl show "$service" --property=MemoryMax | cut -d '=' -f 2)
|
critical=$(systemctl show "$service" --property=MemoryMax | cut -d '=' -f 2)
|
||||||
if [ "$critical" = "infinity" ] ; then
|
if [ "$critical" = "infinity" ] || [ "$critical" = "$SYSTEMD_UNLIMITED" ] ; then
|
||||||
critical=$(systemctl show "$service" --property=MemoryLimit | cut -d '=' -f 2)
|
critical=$(systemctl show "$service" --property=MemoryLimit | cut -d '=' -f 2)
|
||||||
fi
|
fi
|
||||||
printf "%s.label %s\n" "$clean_name" "$description"
|
printf "%s.label %s\n" "$clean_name" "$description"
|
||||||
printf "%s.info memory usage\n" "$clean_name"
|
printf "%s.info memory usage\n" "$clean_name"
|
||||||
if [ "$warning" != "infinity" ] ; then
|
if [ "$warning" != "infinity" ] && [ "$warning" != "$SYSTEMD_UNLIMITED" ] ; then
|
||||||
printf "%s.warning %s\n" "$clean_name" "$warning"
|
printf "%s.warning %s\n" "$clean_name" "$warning"
|
||||||
fi
|
fi
|
||||||
if [ "$critical" != "infinity" ] ; then
|
if [ "$critical" != "infinity" ] && [ "$critical" != "$SYSTEMD_UNLIMITED" ] ; then
|
||||||
printf "%s.critical %s\n" "$clean_name" "$critical"
|
printf "%s.critical %s\n" "$clean_name" "$critical"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -96,10 +103,10 @@ output_values() {
|
||||||
for service in $(for_services); do
|
for service in $(for_services); do
|
||||||
clean_name="$(clean_fieldname "$service")"
|
clean_name="$(clean_fieldname "$service")"
|
||||||
usage=$(systemctl show "$service" --property=MemoryCurrent | cut -d '=' -f 2)
|
usage=$(systemctl show "$service" --property=MemoryCurrent | cut -d '=' -f 2)
|
||||||
if [ "$usage" = "[not set]" ]; then
|
if [ "$usage" = "[not set]" ] || [ "$usage" = "$SYSTEMD_UNLIMITED" ]; then
|
||||||
usage=0
|
usage="U"
|
||||||
fi
|
fi
|
||||||
printf "%s.value %d\n" "$clean_name" "$usage"
|
printf "%s.value %s\n" "$clean_name" "$usage"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue