88 lines
2.0 KiB
Bash
88 lines
2.0 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/v1/bucket?list" | 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/v1/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
|