使用aliyun-cli
获取账户余额和当前时间,发送到prometheus
的pushgateway
,prometheus
定时从pushgateway
拉取,grafana
显示
#/bin/bash
# 指定账户区域
Region="cn-shanghai"
# 指定公司账户默认muen
#cn-hangzhou
account="
test
"
balance=""
balancetime=""
function getbalance(){
# 检测账号是否异常 确保实时数据准确
docker run --rm --name aliyun-cli \
-e Region=${Region} \
-e AccessKeyId=$1 \
-e AccessKeySecret=$2 \
muen/aliyun-cli:3.0.198 \
bssopenapi QueryAccountBalance
if [ $? == 0 ];then
# 将金额赋值给变量
balance=$(docker run --rm --name aliyun-cli \
-e Region=${Region} \
-e AccessKeyId=$1 \
-e AccessKeySecret=$2 \
registry.cn-hangzhou.aliyuncs.com/buyfakett/aliyun-cli \
bssopenapi QueryAccountBalance|grep AvailableAmount|awk -F\" '{print $4}'|awk -F',' '{print $1$2$3$4$5}')
else
balance=-1
fi
}
for account in ${account};
do
if [ "${account}"x == "test"x ];then
AccessKeyId=""
AccessKeySecret=""
getbalance ${AccessKeyId} ${AccessKeySecret}
# 需要推送的内容 拼接成 key:value
# 数据效果 AccountBalance{account="test阿里云账户余额", exported_instance="machine", exported_job="top", instance="aliyun-server-info", job="aliyun-server-info"} 138.12
balance=$(echo "AccountBalance{account=\"${account}阿里云账户余额\"} $balance")
balancetime=$(echo "AccountBalanceUpdateTime{account=\"${account}阿里云账户拉取时间\"} $(date +%s)")
fi
cat <<EOF | curl --data-binary @- http://192.168.1.1:9091/metrics/job/balanceinfo/instance/${account}
${balance}
${balancetime}
EOF
done
# 推送单条
# var=$var$(echo "AccountBalance{account=\"${account}阿里云账户余额\"} $balance")
# 向pushgateway推参数 需要在prometheus的yml中配置对应的模块
#curl -X POST -H "Content-Type: text/plain" --data "$var
#" http://192.168.1.1:9091/metrics/job/top/instance/machine