mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 02:51:03 +00:00
Add openstack_swift_stats_ plugin
This commit is contained in:
parent
5c983dbc7d
commit
307795493a
2 changed files with 146 additions and 0 deletions
69
plugins/openstack_swift/openstack_swift_stats_
Executable file
69
plugins/openstack_swift/openstack_swift_stats_
Executable file
|
@ -0,0 +1,69 @@
|
|||
#!/bin/bash
|
||||
|
||||
ME="${0##*/}"
|
||||
CONTAINER=$(printf "$ME" | cut -d'_' -f4 -)
|
||||
# printf "$CONTAINER\n"
|
||||
|
||||
case $1 in
|
||||
config)
|
||||
cat <<EOM
|
||||
multigraph openstack_swift_stats_size
|
||||
graph_title Swift container size ($CONTAINER)
|
||||
graph_category cloud
|
||||
graph_vlabel bytes
|
||||
graph_args --base=1024 -l 0
|
||||
graph_period hour
|
||||
size.label Size
|
||||
size.type GAUGE
|
||||
size.draw AREA
|
||||
size.min 0
|
||||
growth.label Growth/\${graph_period}
|
||||
growth.type DERIVE
|
||||
growth.min 0
|
||||
|
||||
multigraph openstack_swift_stats_objects
|
||||
graph_title Swift container object count ($CONTAINER)
|
||||
graph_category cloud
|
||||
graph_vlabel
|
||||
graph_args --base=1000 -l 0
|
||||
graph_period hour
|
||||
objects.label Objects
|
||||
objects.type GAUGE
|
||||
objects.draw AREA
|
||||
objects.min 0
|
||||
objgrowth.label Growth/\${graph_period}
|
||||
objgrowth.type DERIVE
|
||||
objgrowth.min 0
|
||||
EOM
|
||||
exit 0;;
|
||||
esac
|
||||
|
||||
IFS=" "
|
||||
STAT_OUTPUT=( $(swift stat $CONTAINER | awk 'NR>=3&&NR<=4 {print $2}' FS=": " ORS=" ") )
|
||||
|
||||
# Size graph
|
||||
printf "multigraph openstack_swift_stats_size\n"
|
||||
|
||||
# Check value is an integer.
|
||||
[ -n "${STAT_OUTPUT[1]}" ] && [ "${STAT_OUTPUT[1]}" -eq "${STAT_OUTPUT[1]}" ] 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
printf "size.value 0\n"
|
||||
printf "Error: no usable size value from swift command.\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf "size.value ${STAT_OUTPUT[1]}\ngrowth.value ${STAT_OUTPUT[1]}\n"
|
||||
|
||||
# Objects graph
|
||||
printf "multigraph openstack_swift_stats_objects\n"
|
||||
|
||||
[ -n "${STAT_OUTPUT[0]}" ] && [ "${STAT_OUTPUT[0]}" -eq "${STAT_OUTPUT[0]}" ] 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
printf "objects.value 0\n"
|
||||
printf "Error: no usable objects value from swift command.\n" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf "objects.value ${STAT_OUTPUT[0]}\nobjgrowth.value ${STAT_OUTPUT[0]}\n"
|
||||
|
||||
|
77
plugins/openstack_swift/openstack_swift_stats_.pod
Normal file
77
plugins/openstack_swift/openstack_swift_stats_.pod
Normal file
|
@ -0,0 +1,77 @@
|
|||
=cut
|
||||
|
||||
=head1 NAME
|
||||
|
||||
openstack_swift_stats_ -- Plugin to monitor size of OpenStack Swift containers
|
||||
|
||||
=head1 ABOUT
|
||||
|
||||
Multigraph plugin. Graphs the following statistics about an OpenStack Swift container:
|
||||
- Size in bytes
|
||||
- Growth in size per graph period (hour by default)
|
||||
|
||||
- Number of objects
|
||||
- Growth in objects per graph period (hour by default)
|
||||
|
||||
=head1 CONFIGURATION
|
||||
|
||||
Configuration values are mandatory. Names are identical to the environment values used by the Swift commands and passed directly to it.
|
||||
They can be copied from the openrc.sh file provided by your OpenStack hosting provider, along with the password.
|
||||
|
||||
OS_AUTH_URL
|
||||
OS_IDENTITY_API_VERSION
|
||||
OS_REGION_NAME
|
||||
OS_USER_DOMAIN_NAME
|
||||
OS_PROJECT_DOMAIN_NAME
|
||||
OS_TENANT_ID
|
||||
OS_TENANT_NAME
|
||||
OS_USERNAME
|
||||
OS_PASSWORD
|
||||
|
||||
Configuration example for OVH:
|
||||
|
||||
[openstack_swift_size_*]
|
||||
env.OS_AUTH_URL https://auth.cloud.ovh.net/v3/
|
||||
env.OS_IDENTITY_API_VERSION 3
|
||||
env.OS_REGION_NAME SYD
|
||||
env.OS_USER_DOMAIN_NAME Default
|
||||
env.OS_PROJECT_DOMAIN_NAME Default
|
||||
|
||||
env.OS_TENANT_ID {{Redacted}}
|
||||
env.OS_TENANT_NAME {{Redacted}}
|
||||
env.OS_USERNAME user-{{Redacted}}
|
||||
env.OS_PASSWORD {{Redacted}}
|
||||
|
||||
=head1 USAGE
|
||||
|
||||
- Place the plugin in your plugins storage directory (/usr/share/munin/plugins)
|
||||
- Symlink it into the active plugins directory (/etc/munin/plugins) with the name of your container after the last underscore
|
||||
(e.g. ln -s /usr/share/munin/plugins/openstack_swift_stats_ /etc/munin/plugins/openstack_swift_stats_mycontainer)
|
||||
- Copy the OpenStack login environment variables from the openrc.sh file provided by your hosting provider to your plugin config file as shown in the configuration section.
|
||||
- Add the OS_PASSWORD value for the chosen user.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Copyright (C) 2020 Sophie Parker (dev@cortices.me)
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; version 2 dated June,
|
||||
1991.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
=head1 MAGIC MARKERS
|
||||
|
||||
#%# family=manual
|
||||
|
||||
=cut
|
Loading…
Add table
Add a link
Reference in a new issue