为什么我作为独立开发者构建了 Uptime Monitor
Source: Dev.to
请提供您希望翻译的文章正文内容,我将为您完整地翻译成简体中文并保留原有的 Markdown 格式。
去年,我在做三个副项目
- 一个 SaaS 工具
- 为客户制作的着陆页
- 我出于兴趣构建的一个小 API
它们都没有监控。
当一个朋友尝试使用我的 API 并在 Discord 上给我发信息时,我才发现它已经宕机 四天 了。四天。没有警报,没有通知,什么都没有——只有一个静默的 502,让我看起来像是已经放弃了这个项目。
那一刻,我决定自己动手打造监控工具。
现有解决方案的问题
我知道你在想什么——“直接用 UptimeRobot” 或者 “Pingdom 有免费套餐”。我也试过了。以下是我遇到的情况:
| 服务 | 有效的地方 | 无效的地方 |
|---|---|---|
| UptimeRobot | 基础的正常运行时间检查工作良好。 | 它只能告诉你页面是否在线。我需要知道页面上哪些内容发生了变化。我的客户的着陆页被另一位承包商修改,却没有通知我。网站一直“在线”,但一半的内容是错误的。没有任何正常运行时间工具捕捉到这一点。 |
| Betterstack、Pingdom、Datadog | 对有预算的团队来说是很棒的产品。 | 我是一个月收入在 €0‑€50 之间的独立开发者。为监控支付 $29 /月在项目收益不足时很难合理化。 |
| Visualping、ChangeTower | 监控页面内容,而不仅仅是 HTTP 状态。 | 它们会因每一次 CSS 变化、每一次广告轮播、每一次时间戳更新而向我发送提醒。我每天收到 15 条以上的误报,结果在一周内关闭了通知。 |
我真正想要的很简单:在页面出现有意义的变化时通知我,并用通俗的语言解释具体改动是什么。
所以我构建了 ArkWatch
ArkWatch 是一个 REST API,可按计划监控任何 URL。它不仅仅检查 200 状态码,而是执行以下操作:
- 获取 页面内容,按照您的计划(每分钟到每 24 小时一次)。
- 对比 内容与之前的版本。
- 将 对比结果发送给 Mistral AI,它会分析实际发生了什么变化。
- 通过电子邮件 向您发送一份简明的摘要。
因此,您不再得到看起来像乱码的原始 HTML 对比,而是得到类似以下的内容:
“定价页面已更新。专业套餐从每月 €19 提升至 €29 /月份。新增了每月 €99 的企业套餐。免费套餐现在包含 5 个 URL,而不是 3 个。”
或在可用性场景下:
“API 端点返回 503 Service Unavailable 错误。页面内容从正常的 JSON 响应变为 nginx 错误页。”
AI 会过滤掉噪音——会话令牌、Cookie 横幅、广告轮播、动态时间戳——仅在重要内容发生变化时提醒您。
技术栈
我故意保持它很普通:
- Python 3.13 + FastAPI – API
- httpx(异步)– 获取页面
- Playwright – 渲染大量 JavaScript 的站点
- Mistral AI – 变更分析(
mistral‑small‑latest,低成本且快速) - Redis – 缓存
- Stripe – 支付
- Hetzner VPS(德国)– 托管(欧盟数据驻留)
没有 Kubernetes。没有微服务。没有事件驱动架构。只有一个 FastAPI 应用、一个工作进程和一个类似 cron 的调度器。整个系统运行在单个 €5 /月 的 VPS 上。
总运行成本: ~€5 /月(服务器)+ 少量 AI 调用费用(几分钱)。
我哪里出错了
我差点做了一个仪表盘
我花了两天时间设计一个带有图表、图形和实时 WebSocket 更新的 React 前端。在与几位手动检查网站的开发者交谈后,所有人都说:“我不想要另一个仪表盘。直接给我发邮件就行。”
于是我放弃了前端,转而采用 API‑first。你可以把 ArkWatch 集成到已有的任何工作流中——Slack 机器人、cron 任务、CI 流水线,或仅仅是邮件提醒。这样构建更快,也正是人们真正想要的。
噪声过滤比监控更难
获取页面内容并进行差异比较是容易的,决定哪些变化重要才是难点。我尝试了三种方法:
| 方法 | 结果 |
|---|---|
| 关键词匹配 | 假阳性太多(例如,“price” 出现在页脚版权中)。 |
| 百分比阈值 | 对大幅变化有效,但会漏掉重要的小变化(单个价格变动仅占页面的 0.1 %)。 |
| AI 分析 | Mistral 在上下文中读取差异并做出判断。这是最终方案。 |
min_change_ratio 参数仍然作为预过滤器以节省 AI 成本,但 “这次变化重要吗?” 的实际判断由 AI 完成。
我把定价想得太复杂
我花了一周时间研究定价策略,阅读关于价值定价的博客文章,并制作电子表格。最终我只看了竞争对手的收费,并把我的价格设得更低:
| 计划 | 价格 | URL 数量 | 检查间隔 |
|---|---|---|---|
| Free | €0 | 3 | 24 小时 |
| Starter | €9 /月 | 10 | 1 小时 |
| Pro | €29 /月 | 50 | 5 分钟 |
| Business | €99 /月 | 1 000 | 1 分钟 |
免费层是真实的——无需信用卡、无需 14 天试用、也没有功能门槛。你可以永久获得 3 个 URL 的每日检查和完整的 AI 摘要。
我现在的情况
诚实的数字: 零付费客户,零收入。API 已上线约一周。我已经发布了它,设置了 Stripe,编写了文档……却没有任何反馈。
但产品是可用的:
- API 响应时间低于 50 毫秒
- AI 摘要真的很有用
- Stripe 集成能够正确处理订阅
- 我在自己的项目中使用它,至少解决了我最初的问题。
我在寻找
我在寻找 3‑5 位 beta 测试员——目前手动检查网站并希望实现自动化的人。开发者、SEO 从业者、电商运营者,任何有定期检查 URL 列表的人都可以。
免费套餐提供了试用所需的全部功能。如果有用,太棒了;如果没有用,我想了解原因。
试用
- API:
- 文档:
- 着陆页:
如果您有兴趣参与测试或提供反馈,请随时联系!
[https://arkforge.fr/arkwatch.html](https://arkforge.fr/arkwatch.html)
快速开始 — 注册免费 API 密钥
curl -X POST https://watch.arkforge.fr/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "name": "Your Name", "privacy_accepted": true}'
如果您有任何问题或反馈,请发送邮件至 contact@arkforge.fr。我会阅读每一封邮件。
独立开发者,暂无用户,公开开发。如果你也经历过相同的艰辛,我很想听听你是如何获得第一批用户的。
给你的提问
我真的很想了解——如果你是一个在做副业的开发者:
-
你现在是怎么知道自己的网站宕机的?
(诚实回答——即使是“我不知道”也算数) -
你会想要 AI 驱动的变更摘要,还是仅仅一个“页面已更改”的通知就够了?
-
如果可以在 30 秒内完成设置,你现在最想监控的页面是哪一个?
留下评论——我会回复每一位。