#!/bin/sh #=begin # #=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 # #=end # # Get container to check by splitting off end of filename. ME="${0##*/}" CONTAINER=$(printf "%s" "$ME" | cut -d'_' -f4 -) # printf "$CONTAINER\n" # Config for two graphs -- size and objects count. case $1 in config) cat <