Commit Graph

68 Commits

Author SHA1 Message Date
brknkfr 46a483ed36
lxc_guests: Enhanced and fixed lxc_guests plugin (#1371)
* lxc_guests2: Enhanced and fixed lxc_guests plugin

- Working with systemd and cgroup version 2 (tested on debian bullseye and debian booksworm)
- Fixed processes (with cgroup version 2)
- Simplified labels
- Simplified memory usage graph
- Added CPU usage in percent (using systemd-cgtop)
- Added Tasks
- No cgrouppath guessing

* Rename lxc_guests2 to lxc_guests to replace old plugin

---------

Co-authored-by: Sebastian L <sl@momou.ch>
2023-04-29 10:38:44 -07:00
Lionel Sausin ae7a2f6c65 LXC v3.1 compatibility
The cgroup data was (yet again) moved to a new location in recent LXC
releases, starting with v3.1.0 from what I could gather.

https://github.com/lxc/lxc/issues/2782 states:
> [The cgroup lxc.payload] exists to adhere to cgroup2 delegation requirements.
2021-07-14 21:28:17 +02:00
Sebastian L 137913e39d lxc_guests: Monitor randomly generated virtual ethernet devices 2020-11-19 01:47:40 +01:00
Sebastian L b5f957268f lxc_guests: Make it work with unpriviliged containers 2020-11-19 01:47:00 +01:00
Marc SCHAEFER 748cf3b4ee - grep -EF is invalid
- SYSFS: buster has an existing /sys/fs/cgroup/systemd/lxc/$guest_name/tasks,
         which does not contain anything useful, so checking
         /sys/fs/cgroup/cpuacct/lxc/$guest_name/tasks first.
- spurious blank space for lxc_net and lxc_ram in here document
2019-08-19 15:07:16 +02:00
Lars Kruse 6e452ac6dc Plugin lxc: remove fieldname compatibility attempt with double underscores
The attempt of compatibility (introduced in c0fe6dc3c) did not work,
since the previous implementation *replaced* the first character
(if it was invalid - e.g. a digit) instead of prepending an underscore.
2019-08-12 02:36:01 +02:00
Lars Kruse 858f3e3af4 Plugin lxc: rename to "lxc_guests"
The plugin handles details of LXC guests.  Thus we should leave the
remainder of the namespace to other plugins.
2019-08-12 02:36:01 +02:00
Lars Kruse 3ebcb8b550 Plugin lxc: remove reference to framagit repository
Plugins maintained within the contrib repository of munin should not
refer to other locations as their primary source.
(otherwise they should be maintained in that primary source and not in
the contrib repository)
2019-08-12 02:36:01 +02:00
Lars Kruse 2f1be9f908 Plugin lxc: update list of authors 2019-08-12 02:36:01 +02:00
Lars Kruse f69587c28c Plugin lxc: move to category "virtualization"
See http://guide.munin-monitoring.org/en/latest/reference/graph-category.html#well-known-categories
2019-08-12 02:36:01 +02:00
Lars Kruse 3f8ef105ff Plugin lxc: enable "set -eu" for better error handling
The code should be suitable for "exit-on-error" and "error-on-unset".
2019-08-12 02:36:01 +02:00
Lars Kruse 856572ad9b Plugin lxc: verify the availability of "lxc-ls"
Previously "autoconf" only verified, that /var/lib/lxc exists.  But this
could be just a remainder of a formerly installed lxc package.
2019-08-12 02:36:01 +02:00
Lars Kruse 59cb851cf5 Plugin lxc: add support for MUNIN_CAP_DIRTYCONFIG 2019-08-12 02:36:01 +02:00
Lars Kruse f00f28cf6f Plugin lxc: use functions for top-level activities
This clarifies the flow of control and allows to use
MUNIN_CAP_DIRTYCONFIG later.
2019-08-12 02:36:01 +02:00
Lars Kruse 4356a024a7 Plugin lxc: clarify name for function "active_guests"
Previously a variable and a function used the same name.
This was no problem, but it can cause confusion.
2019-08-12 02:36:01 +02:00
Lars Kruse 55b881878c Plugin lxc: change the plugin from "bash" to "sh"
No more bashisms were left.
2019-08-12 02:36:01 +02:00
Lars Kruse 6bb4719881 Plugin lxc: separate function for title beautification
This avoids a bashism.
2019-08-12 02:36:01 +02:00
Lars Kruse 8b1d537602 Plugin lxc: simplify interface of "lxc_cgroup" and rename function 2019-08-12 02:36:01 +02:00
Lars Kruse 33b2f3ed8b Plugin lxc: use comprehensible names for variables 2019-08-12 02:36:01 +02:00
Lars Kruse 8b955667c5 Plugin lxc: fix handling of "excludes" parameter
Previously only the first item in the "excludes" environment variable
was really excluded.
2019-08-12 02:36:01 +02:00
Lars Kruse 199b4517cb Plugin lxc: use "grep -E" instead of "egrep" 2019-08-12 02:36:01 +02:00
Lars Kruse 46626b9953 Plugin lxc: simplify implementation of function "active_guests" 2019-08-12 02:36:01 +02:00
Lars Kruse 276e96c0dd Plugin lxc: remove ineffective "sort -u" from function "active_guests"
The output of "lxc-ls" is not line-splitted.  Thus all active guests
are printed in a single line and "sort -u" (removal of non-unique
entries) had no effect.
2019-08-12 02:36:01 +02:00
Lars Kruse 6413375cdc Plugin lxc: simplify processing in function "active_guests" 2019-08-12 02:36:01 +02:00
Lars Kruse 9cdea3c305 Plugin lxc: clarify variable names used in functions 2019-08-12 02:36:01 +02:00
Lars Kruse da8a74fdcb Plugin lxc: omit output of "max" if the network interface speed is unknown
The "U" value is not defined for the "max" field.
2019-08-12 02:36:01 +02:00
Lars Kruse 914d1c5f25 Plugin lxc: clarify network bandwidth calculation 2019-08-12 02:36:01 +02:00
Lars Kruse 313d195f3b Plugin lxc: simplify interface of "lxc_netdev" 2019-08-12 02:36:01 +02:00
Lars Kruse 89003f0188 Plugin lxc: fix quoting issues 2019-08-12 02:36:01 +02:00
Lars Kruse 0d593014b4 Plugin lxc: fix printing of "${graph_period}"
This specific text token ("${graph_period}") is interpreted by munin and
should not be interpreted by the shell.  Thus it needs to be escaped.
2019-08-12 02:36:01 +02:00
Lars Kruse e91f7ecba7 Plugin lxc: remove ineffective usage of "bc"
The command "wc -w" already outputs the final result.
Thus we do not need this command (and do not have to depend on it).
2019-08-12 02:36:01 +02:00
Lars Kruse d415877cdc Plugin lxc: explicitly assign all accepted environment variables 2019-08-12 02:36:01 +02:00
Lars Kruse ec3a7f4045 Plugin lxc: function "lxc_count_processes" now outputs its result
Previously the result was returned as the exit code of the function
(which would prevent the usage of "set -e").
Additionally the fallback value that was previously calculated outside
of the function is now part of it.
2019-08-12 02:36:01 +02:00
Lars Kruse 9af96d2c60 Plugin lxc: draw stacked RAM graphs by default
Previously "ram_display_stacked" defaulted to "false" (non-stacked
graphs).  The new default should be suitable for most situations.
2019-08-12 02:36:01 +02:00
Lars Kruse ab6f4e3c6e Plugin lxc: fix configurable RAM graphing
Previously (before the multigraph conversion) the configuration setting
for "lxc_ram" was called "areastack".  The multigraph conversion
documented a new configuration setting "ram_areastack", but it was not
used, yet.
Thus we can switch to a more descriptive name: "ram_display_stacked".
2019-08-12 02:36:01 +02:00
Lars Kruse d004990b21 Plugin lxc: exit after autoconf
Previously processing continued after a successful autoconf operation.
2019-08-12 02:36:01 +02:00
Lars Kruse 6696a4d894 Plugin lxc: unify whitespace 2019-08-12 02:35:57 +02:00
Marc SCHAEFER c0fe6dc3c7 Compatibility with older field names 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 784b06fe75 Sections and small fix 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 4e321bbc07 First multigraph version 2019-08-11 23:09:15 +02:00
Marc SCHAEFER ddcc19cd81 Initial version of multigraph version 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 154ffc100b Fix 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 5a3e66beef version 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 50a998b460 areastack option 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 5105020fcf - added systemd possibility for stats - cleanup 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 241b0c6067 Fix for lxc < 3 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 89e0f1c729 Update 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 9ef366c71a - autoconf cleanup - better lxc_clean_fieldname workaround supporting non numeric compatibility - lxc_netdev now compatible with lxc3 and lxc2 at a small CPU cost - lxc_cgroup now compatible with lxc3 and lxc2; may however fail with lxc2 if your config file contains cruft 2019-08-11 23:09:15 +02:00
Marc SCHAEFER ab67ad805d Comment 2019-08-11 23:09:15 +02:00
Marc SCHAEFER 2cfba9f840 Comment 2019-08-11 23:09:15 +02:00