#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from flask import Flask, jsonify
from volcenginesdkcore import Configuration
from volcenginesdkcore.rest import ApiException
from volcenginesdkbilling import BILLINGApi, QueryBalanceAcctRequest
app = Flask(__name__)
# ===== 请替换为你的真实 AK/SK(建议用环境变量或配置文件管理) =====
ACCESS_KEY = "xxxxx"
SECRET_KEY = "xxxxx"
REGION = "cn-beijing"
# ==================================================================
# 初始化 SDK 配置
config = Configuration()
config.ak = ACCESS_KEY
config.sk = SECRET_KEY
config.region = REGION
Configuration.set_default(config)
@app.route("/balance", methods=["GET"])
def get_available_balance():
api_instance = BILLINGApi()
request = QueryBalanceAcctRequest()
try:
response = api_instance.query_balance_acct(request)
data = response.to_dict()
# 强制转换为 float,便于 Grafana 识别为数值
available_balance = float(data.get("available_balance", "0"))
return jsonify({
"available_balance": available_balance
})
except ApiException as e:
return jsonify({
"error": "API Error",
"message": str(e)
}), 500
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5001)
用supervisor启动管理python脚本:
cat /etc/supervisord.d/coze_yue_5001.ini
[program:coze_yue_5001]
command= /usr/local/bin/python3.9 /opt/python/coze/coze_yue_5001.py
directory=/opt/python/coze
autostart=true
autorestart=true
stderr_logfile=/var/log/supervisor/coze_yue_5001.err.log
stdout_logfile=/var/log/supervisor/coze_yue_5001.out.log
user=root
重新加载supervisor:
sudo supervisorctl reload
启动后验证服务接口能否获取数据:
curl 127.0.0.1:5001/balance
{"available_balance":2927.12}
在grafana中实现数据可视化:
