停止从零开始构建 API 仪表板
I’m happy to translate the article for you, but I’ll need the full text of the post (the part you want translated) in order to do so. Could you please paste the article’s content here? Once I have it, I’ll provide a faithful Simplified‑Chinese translation while preserving the original formatting, markdown, and any code blocks or URLs.
我一直重复的模式
- 记录请求元数据到数据库
- 编写查询以聚合这些数据
- 构建仪表盘进行可视化
- 在出现问题时设置警报
第四次这样做时,我意识到这应该成为一个产品。
PeekAPI:一次中间件调用,完整 API 分析
PeekAPI 是一个你可以添加到 API 服务器的中间件。以下是每种支持语言的完整设置。
Node.js (Express)
import { peekapi } from "@peekapi/sdk-node";
app.use(peekapi({ apiKey: "pk_..." }));
Python (FastAPI)
from peekapi import PeekAPIMiddleware
app.add_middleware(PeekAPIMiddleware, api_key="pk_...")
Go (net/http)
handler := peekapi.Middleware(mux, peekapi.Config{
APIKey: "pk_...",
})
http.ListenAndServe(":8080", handler)
Rust (Actix Web)
App::new()
.wrap(PeekApi::new("pk_..."))
.service(/* your routes */)
Ruby (Rails)
# config/application.rb
config.middleware.use PeekAPI::Middleware, api_key: "pk_..."
PHP (Laravel)
// bootstrap/app.php
->withMiddleware(function (Middleware $middleware) {
$middleware->append(\PeekAPI\Laravel\PeekApiMiddleware::class);
})
Java (Spring Boot)
# application.properties
peekapi.api-key=pk_...
这就是每种语言的完整集成——无需代理、无需配置文件、无需管理基础设施。
您将获得
- 实时请求流 – 实时捕获每一次 API 调用,包括方法、路径、状态、延迟和消费者身份。
- 端点分析 – 每条路由的请求量、错误率和平均延迟。帮助您发现最常使用的端点、出现错误的端点以及响应慢的端点。
- 消费者追踪 – PeekAPI 自动从授权头或 API 密钥中识别调用您 API 的用户。消费者通过 SHA‑256 哈希进行标识——原始凭证永不离开您的服务器。
- 智能警报 – 当错误率激增、延迟超出阈值或端点无响应时即时通知。支持通过电子邮件、Slack、Discord、Telegram 或通用 webhook 发送通知。
它捕获的内容(以及未捕获的)
捕获
- HTTP 方法
- 路径
- 状态码
- 响应时间
- 请求/响应大小
- 哈希的消费者标识符
不捕获
- 请求/响应体
- 查询参数
- 原始身份验证凭证
这是有意的设计选择。PeekAPI 回答“谁、什么、何时、速度多快”——而不是“请求中包含了什么数据”。如果需要检查负载,你需要使用其他工具。
零依赖,设计如此
每个 SDK 都是零依赖的。Node SDK 仅使用内置模块(https、crypto、fs、os)。Python 只使用标准库。Go、Rust、Ruby、PHP 和 Java 也是同样的情况。
为什么?
- 没有供应链风险。 你的 API 中间件不应引入一整棵传递依赖树。
- 没有冲突。 SDK 永远不会与你现有的依赖版本产生冲突。
为可靠性而构建
- Async buffering – 事件在内存中收集,并以批次方式刷新(可配置间隔和批量大小)。
- Exponential backoff – 如果分析服务器宕机,SDK 会自动退避(最多 5 次连续失败)。
- Disk persistence – 在达到最大刷新失败次数、出现不可重试错误或进程关闭时,未投递的事件会保存到 JSONL 文件。系统会每 60 秒以及启动时自动恢复。
- Graceful shutdown – SIGTERM/SIGINT 处理程序会将缓冲的事件持久化到磁盘,重启时会自动恢复。
如果 PeekAPI 的服务器不可达,您的 API 仍可正常运行。分析采用尽力而为的方式,绝不成为单点故障。
7 个 SDK,18+ 框架
| 语言 | 框架 |
|---|---|
| Node.js | Express、Fastify、Koa、Hapi、NestJS |
| Python | ASGI、WSGI、Django |
| Go | net/http、Gin、Echo、Fiber、Chi |
| Rust | Actix Web、Axum、Rocket |
| Ruby | Rack、Rails |
| PHP | PSR‑15、Laravel |
| Java | Spring Boot、Jakarta Servlet |
试用
免费层每月 500 K 事件,无需信用卡。SDK 采用 MIT 许可证。
如果您对架构有疑问或有功能请求,欢迎留下评论。