saipraneethp7/pulseboard
GitHub: saipraneethp7/pulseboard
PulseBoard 是一个实时 API 监控仪表板,通过定时探测端点并结合 AI 诊断,帮助开发者在用户感知之前发现和定位 API 故障。
Stars: 0 | Forks: 0
# PulseBoard — 实时 API 健康监控
在用户察觉之前,率先发现 API 的宕机情况。
**在线演示:** https://pulseboard-app.netlify.app
## 什么是 PulseBoard?
PulseBoard 是一个实时 API 监控仪表板,它每 30 秒 ping 一次您的 endpoint,并显示实时响应时间图表、正常运行时间百分比以及故障历史记录。当出现异常时,AI 诊断功能会分析最近的 ping 数据,并准确给出修复建议。
## 功能
- 通过 WebSockets 实时更新的响应时间图表
- 以绿色/红色方块显示最近 20 次 ping 的状态历史栏
- 使用 Groq API 和 LLaMA 3.3 70B 的 AI 驱动诊断
- 包含最小、最大和平均响应时间统计的监控详情页
- 记录每次宕机事件及错误信息的故障日志
- 带有 bcrypt 密码哈希的 JWT 身份验证
- 用于更新个人资料和密码的设置页面
- 受 Linear 启发的简洁明亮模式 UI
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| 前端 | React, TypeScript, Recharts, Socket.io Client |
| 后端 | Node.js, Express, TypeScript |
| 数据库 | Neon 上的 PostgreSQL |
| 实时 | Socket.io WebSockets |
| AI | 带 LLaMA 3.3 70B 的 Groq API |
| 认证 | JWT token, bcrypt |
| 部署 | Railway (后端), Netlify (前端) |
## 快速开始
### 后端
```
cd backend
npm install
npm run dev
```
### 前端
```
cd frontend
npm install
npm start
```
### 环境变量
在 `backend` 文件夹中创建一个 `.env` 文件:
```
PORT=5001
DATABASE_URL=your_neon_postgresql_connection_string
JWT_SECRET=your_jwt_secret
GROQ_API_KEY=your_groq_api_key
```
## 工作原理
当您添加一个监控时,后端会立即 ping 该 URL 并启动一个 30 秒的间隔计时器。每次 ping 的结果都会保存到 PostgreSQL 中,并通过 Socket.io 发送给所有已连接的浏览器。前端会监听这些事件,并在无需刷新页面的情况下实时更新图表和状态。
当您点击 AI 诊断时,后端会将最近的 20 次 ping 结果发送给 Groq API,它会分析响应时间、错误信息和状态码,以识别该问题是临时中断、配置错误还是性能下降。
## 许可证
MIT
标签:API监控, GNU通用公共许可证, MITM代理, Node.js, PostgreSQL, React, Syscalls, Sysdig, WebSocket, 依赖分析, 实时仪表盘, 测试用例, 自动化攻击, 运维监控