From 11c6d827910d1b979cb66e30d80bc20a4924e0fb Mon Sep 17 00:00:00 2001 From: Paul Alexandrow Date: Sun, 31 Jan 2021 14:56:01 +0100 Subject: [PATCH] initial commit of systemd_mem (v1.0) (#1165) systemctl calculates memory consumption quite differently than existing plugins, which usually query /proc/. This plugin monitors what memory a service uses according to systemctl. --- .../example-graphs/systemd_mem-day.png | Bin 0 -> 21506 bytes plugins/systemd/systemd_mem | 117 ++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 plugins/systemd/example-graphs/systemd_mem-day.png create mode 100755 plugins/systemd/systemd_mem diff --git a/plugins/systemd/example-graphs/systemd_mem-day.png b/plugins/systemd/example-graphs/systemd_mem-day.png new file mode 100644 index 0000000000000000000000000000000000000000..43018fe9fa4975e230fe7077c11fdf9b6e416fcc GIT binary patch literal 21506 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 eWD8oy4oXf!7L|Eq&=v^)l%l-sh=0!RH literal 0 HcmV?d00001 diff --git a/plugins/systemd/systemd_mem b/plugins/systemd/systemd_mem new file mode 100755 index 00000000..9604d936 --- /dev/null +++ b/plugins/systemd/systemd_mem @@ -0,0 +1,117 @@ +#!/bin/sh +: << =cut + +=head1 NAME + +systemd_mem - Plugin to graph the memory usage of multiple systemd services as reported by systemctl + +=head1 CONFIGURATION + +The environment variable "services" is used to provide a space separated list of services to graph. + +Example: + [systemd_mem] + env.services apache2 tomcat9 mysql + +env.services defaults to "munin-node". + +=head1 VERSION + +1.0 + +=head1 AUTHOR + +Paul Alexandrow + +=head1 LICENSE + +Copyright 2021 Paul Alexandrow, paul@alexandrow.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +=head1 MAGIC MARKERS + +#%# family=auto +#%# capabilities=autoconf + +=cut + +. "$MUNIN_LIBDIR/plugins/plugin.sh" + +output_config() { + echo "graph_title Systemd Service Memory Usage" + echo "graph_info Memory usage for selected services as reported by systemctl" + echo "graph_vlabel bytes" + echo "graph_args --base 1024 --lower-limit 0" + echo "graph_category memory" + for service in ${services:-"munin-node"}; do + clean_name="$(clean_fieldname "$service")" + description=$(systemctl show "$service" --all | grep ^Description= | cut -d '=' -f 2) + printf "%s.label %s\n" "$clean_name" "$description" + printf "%s.info memory usage\n" "$clean_name" + done +} + +output_values() { + for service in ${services:-"munin-node"}; do + clean_name="$(clean_fieldname "$service")" + usage=$(systemctl show "$service" --all | grep ^MemoryCurrent= | cut -d '=' -f 2) + if [ "$usage" = "[not set]" ]; then + usage=0 + fi + printf "%s.value %d\n" "$clean_name" "$usage" + done +} + +output_usage() { + printf >&2 "%s - munin plugin to graph memory usage for systemd services\n" "${0##*/}" + printf >&2 "Usage: %s [config]\n" "${0##*/}" +} + +output_autoconf() { + if command -v systemctl >/dev/null 2>&1; then + echo "yes" + else + echo "no (systemctl not found)"; + fi +} + +case $# in + 0) + output_values + ;; + 1) + case $1 in + autoconf) + output_autoconf + ;; + config) + output_config + ;; + fetch) + output_values + ;; + *) + output_usage + exit 1 + ;; + esac + ;; + *) + output_usage + exit 1 + ;; +esac