
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Pro Metering 是一个专业计量服务镜像,旨在帮助服务提供商收集、处理和计算客户的存储、计算资源使用量及相关成本。该镜像支持与PostgreSQL数据库交互,提供了针对存储、计算时间、出口流量等资源的计量查询功能,并能区分特定客户群体(如Alamar用户)的使用数据,适用于客户资源使用量统计与计费场景。
从仓库根目录构建Alamar版本的镜像:
bashdocker build -t galaxyworks/pro-metering:alamar -f docker/Dockerfile .
为使get_usage.py脚本能成功将数据存入数据库,需先手动创建数据库、用户和表结构:
1. 创建数据库和用户
sqlpostgres=# CREATE ROLE prometeringuser LOGIN; postgres=# CREATE DATABASE prometering WITH OWNER = 'prometeringuser'; postgres=# GRANT ALL PRIVILEGES ON DATABASE prometering TO prometeringuser;
2. 连接数据库
bashpsql -U prometeringuser prometering
3. 创建表结构
sqlCREATE TABLE Customer ( email text NOT NULL, "id" serial NOT NULL, date_added date NOT NULL DEFAULT NOW(), CONSTRAINT PK_customer PRIMARY KEY ( "id" ) ); CREATE TABLE Storage ( "id" bigserial NOT NULL, customer_id integer NOT NULL, "date" date NOT NULL, bytes bigint NOT NULL, CONSTRAINT PK_storage PRIMARY KEY ( "id" ), CONSTRAINT FK_32 FOREIGN KEY ( customer_id ) REFERENCES Customer ( "id" ) ); CREATE INDEX customer_fkIdx_s ON Storage ( customer_id ); CREATE TABLE Compute ( "id" bigserial NOT NULL, customer_id integer NOT NULL, "date" date NOT NULL, total_compute_bill real NOT NULL, CONSTRAINT PK_compute PRIMARY KEY ( "id" ), CONSTRAINT FK_12 FOREIGN KEY ( customer_id ) REFERENCES Customer ( "id" ) ); CREATE INDEX customer_fkIdx_c ON Compute ( customer_id ); CREATE TABLE ComputeTime ( "id" bigserial NOT NULL, compute_id bigint NOT NULL, Memory int NOT NULL, Runtime bigint NOT NULL, Cost real NOT NULL, CONSTRAINT PK_computetime PRIMARY KEY ( "id", compute_id ), CONSTRAINT FK_21 FOREIGN KEY ( compute_id ) REFERENCES Compute ( "id" ) ); CREATE INDEX compute_fkIdx_ct ON ComputeTime ( compute_id );
容器访问
进入PostgreSQL容器执行查询:
bashpsql -U prometeringuser prometering
存储计量查询
调整日期后,计算指定时间段内的存储使用量(GB-月),排除非Alamar用户:
sqlSELECT sum(bytes) / 1000000000 / 30 AS storage_gb_month FROM STORAGE WHERE date >= '2021-10-01' AND date < '2021-11-01' AND customer_id NOT IN (1, 2, 3, 13);
Alamar存储成本为$0.05/GB-月
计算成本查询
调整日期后,汇总指定日期的计算成本,排除非Alamar用户:
sqlSELECT sum(total_compute_bill) FROM compute WHERE date = '2021-10-31' AND customer_id NOT IN (1, 2, 3, 13);
计算运行时间累计查询
统计指定月份的累计计算运行时间:
sqlSELECT sum(runtime) FROM computetime WHERE compute_id IN (SELECT id FROM compute WHERE date = '2021-08-31' AND customer_id NOT IN (1, 2, 3, 13));
出口流量计量
针对Alamar账户,统计指定时间段内的出口流量(DataTransfer-Out-Bytes和DataTransfer-Regional-Bytes)并累加:
Alamar出口流量成本为$0.12/GB
id | email ----+------------------------ 1 | *** 2 | *** 3 | *** 13 | ***
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务