#!/bin/bash # Get the Header HEADER="Authorization: Bearer ${BEARER}" # Create associative array declare -A BUCKETS=() API_BUCKETS_JSON=$(curl -s -H "${HEADER}" "http://[::1]:3903/v2/ListBuckets" | jq -r '.[] | .id + "," + (if (.globalAliases[0]|test("\\.")) then .globalAliases[1] else .globalAliases[0] end)') # Populate associative array for bucket in ${API_BUCKETS_JSON} do BUCKETS+=([$(echo ${bucket} | cut -d ',' -f 1)]="$(echo ${bucket} | cut -d ',' -f 2)") done case $1 in config) cat << 'EOF' multigraph garage_bucket_unfinished graph_title Unfinished multipart uploads by Bucket graph_vlabel Number of unfinished multipart uploads graph_args --base 1000 -l 0 graph_category garage graph_total Total EOF for i in "${!BUCKETS[@]}" do echo "${BUCKETS[${i}]}.label ${BUCKETS[${i}]}" done cat << 'EOF' multigraph garage_bucket_objects graph_title Objects by Bucket graph_vlabel Number of objects graph_args --base 1000 -l 0 graph_category garage graph_total Total EOF for i in "${!BUCKETS[@]}" do echo "${BUCKETS[${i}]}.label ${BUCKETS[${i}]}" done cat << 'EOF' multigraph garage_bucket_size graph_title Bytes by Bucket graph_vlabel Bytes graph_args --base 1024 -l 0 graph_category garage graph_total Total EOF for i in "${!BUCKETS[@]}" do echo "${BUCKETS[${i}]}.label ${BUCKETS[${i}]}" done exit 0;; esac declare -A REQUESTS for i in "${!BUCKETS[@]}" do REQUESTS+=([${BUCKETS[${i}]}]=$(curl -s -H "${HEADER}" "http://[::1]:3903/v2/GetBucketInfo?id=${i}")) done echo "multigraph garage_bucket_unfinished" for i in "${!REQUESTS[@]}" do UNFINISHED=$(echo ${REQUESTS[${i}]} | jq -r '.unfinishedUploads') echo "${i}.value ${UNFINISHED}" done echo "multigraph garage_bucket_size" for i in "${!REQUESTS[@]}" do BYTES=$(echo ${REQUESTS[${i}]} | jq -r '.bytes') echo "${i}.value ${BYTES}" done echo "multigraph garage_bucket_objects" for i in "${!REQUESTS[@]}" do OBJECTS=$(echo ${REQUESTS[${i}]} | jq -r '.objects') echo "${i}.value ${OBJECTS}" done