SQS Metrics in CSV
Wed, Aug 15, 2018This requires an available list of sqs queues.
An example of how to get some
aws sqs list-queues --queue-name-prefix live-environment- | grep https | awk -F'"' '{print $2}'
Once you have a list of queues. Feeding it to this script.
#!/bin/bash
metrics=(
"NumberOfMessagesSent"
"NumberOfMessagesDeleted"
"NumberOfMessagesReceived"
"NumberOfEmptyReceives"
)
echo -n QueueName,QueryTime
for metric in "${metrics[@]}"
do
echo -n ","$metric
done
echo ""
while read q
do
echo -n $q,`date +'%d/%m/%Y %H:%M:%S'`
for metric in "${metrics[@]}"
do
res=$(aws cloudwatch get-metric-statistics --metric-name $metric --start-time `date --iso-8601=seconds --date='2 weeks ago'` --end-time `date --iso-8601=seconds` --period 7200 --namespace AWS/SQS --statistics Sum --dimensions Name=QueueName,Value=$q | jq '.Datapoints | .[] | .Sum' | awk '{n += $1}; END{print n}')
echo -n ","$res
done
echo ""
done < ~/queuenames.txt
I typically run this with tee
./sqs-unused.sh | tee sqs-results.csv