cmd/collector/存放主二进制入口,按区域拆分调度流程。internal/metrics/聚合 Prometheus 指标构建逻辑,保持纯函数便于单测。configs/保存示例配置,例如configs/config.yml描述数据库与调度周期;敏感凭据使用环境变量映射。scripts/汇总运维脚本,约定新脚本以region-task.sh命名并保留执行说明。
make bootstrap安装 Go 依赖与预提交钩子;首次拉仓库后执行。make run CONFIG=configs/config.dev.yml启动本地采集服务,默认监听:8080暴露/metrics。make test运行全部单元测试与静态检查;CI 将拦截失败用例。make lint调用golangci-lint校验代码风格,提交前确保通过。
- Go 源码统一使用
gofmt;保持 4 空格缩进,禁止混用 Tab。 - 包命名采用短小复数,例如
connectors、collectors;文件名以功能命名如iotdb_client.go。 - 配置键使用蛇形命名(如
iotdb.query),Prometheus 标签使用小写短横线(如region="china")。 - 复杂逻辑前添加简短中文注释,解释输入输出与关键边界条件。
- 首选
testing框架,必要时结合testify辅助断言。 - 单测文件以
_test.go结尾,测试函数命名Test模块名_行为。 - PR 必须覆盖新增逻辑的核心分支,目标语句覆盖率 ≥ 80%,可在
make cover查看报告。
- Commit 信息遵循
type(scope): subject,type 推荐feat、fix、chore、docs。 - PR 描述需列出变更摘要、测试结果、关联工单或 Issue 链接;涉及接口改动请附样例输出。
- 截图或日志仅保留必要关键信息,默认遮蔽敏感配置;评审人要求前不得合并。
- 所有数据库账号仅授予只读权限,密码通过环境变量
MYSQL_PASS、IOTDB_PASS注入。 - 提交前检查
configs/内无真实生产凭据;如需分享参考配置,使用.example后缀。 - 部署时结合 Prometheus 抓取或 Pushgateway 模式,保持 TLS/防火墙策略与公司安全基线一致。