#!/bin/sh : <<=cut =head1 NAME B -- Plugin to monitor size of OpenStack Swift containers =head1 ABOUT Multigraph plugin. Graphs the following statistics about an OpenStack Swift container: =over =item * Size in bytes =item * Growth in size per graph period (hour by default) =item * Number of objects =item * Growth in objects per graph period (hour by default) =back =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. =begin html
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
=end html Configuration example for OVH: =begin html
[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}}
=end html =head1 USAGE =over =item 1. Place the plugin in your plugins storage directory (/usr/share/munin/plugins) =item 2. 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) =item 3. 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. =item 4. Add the C value for the chosen user (OS as in OpenStack, not Operating System). =back =head1 AUTHOR Copyright (C) 2020 Sophie Parker (cortices@github) =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 # 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 <