阿里云账户余额

使用aliyun-cli获取账户余额和当前时间,发送到prometheuspushgatewayprometheus定时从pushgateway拉取,grafana显示

pushgateway

获取余额脚本

#/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

grafana