Files
ansible/roles/munin_client/files/garage_bucket

88 lines
1.9 KiB
Bash

#!/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/v0/bucket" | jq -r '.[] | .id + "," + .globalAliases[0]')
# 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/v0/bucket?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