Nightfuryxd/pulse
GitHub: Nightfuryxd/pulse
AI 驱动的一体化基础设施监控、可观测性与事件响应平台,解决告警分散与响应低效问题。
Stars: 0 | Forks: 0
# PULSE — AI 驱动的基础设施智能平台
PULSE 是一个行业级别的监控、可观测性和事件响应平台。它结合了实时基础设施监控、AI 驱动的根因分析、自定义仪表板、值班排班和工作流自动化——运行生产基础设施所需的一切,且成本仅为 Datadog + PagerDuty + Statuspage 的一小部分。
## 功能
| 类别 | 功能 |
|---|---|
| **监控** | Linux、Windows、macOS、Docker、虚拟机、SNMP 设备(路由器、交换机、防火墙、UPS)、无代理 SSH、自动发现 |
| **可观测性** | 实时指标、分布式追踪(OpenTelemetry)、日志聚合、服务拓扑、异常检测 |
| **告警** | YAML 规则引擎、基于日志的告警(关键词/正则/频率/缺失)、预构建模板包、13 个通知渠道、多步骤升级 |
| **AI 智能** | GPT-4o / Ollama RCA、自然语言查询、预测性告警、异常检测 |
| **事件响应** | 自动关联、AI 根因分析、团队路由、带实时时间线的协作战室、运行手册自动化 |
| **自定义仪表板** | 拖放式小部件构建器 — 统计卡片、图表、仪表盘、告警馈送、节点列表 |
| **值班管理** | 轮换计划(每日/每周)、分配团队成员、管理多级规则的升级策略、覆盖系统用于临时变更、完整页面跟踪与审计 |
| **状态页** | 公共状态页、服务健康跟踪、事件更新(Statuspage.io 替代品) |
| **服务目录** | 服务定义、所有者、依赖关系、语言/框架、仓库、运行手册链接、SLO 链接、部署频率、MTTR 和事件计数 |
| **工作流自动化** | 视觉化触发器 → 条件 → 动作链,用于自动化事件响应 |
| **SLO/SLA 跟踪** | 错误预算跟踪、燃烧率告警、合规报告 |
| **APM / 追踪** | 分布式追踪、跨度瀑布可视化、服务依赖图、延迟百分位 |
| **指标探索器** | 交互式查询构建器,20 个指标、9 个聚合函数、多系列图表 |
| **用户管理** | 邀请用户、基于角色的访问(管理员/编辑/查看/响应者)、团队分配 |
| **计费与用量** | 计划对比(免费/专业/企业)、用量计量、每日用量趋势、超量跟踪 |
| **多环境** | 生产/预发布/开发/灾备环境切换器、每个环境的独立仪表板 |
| **审计日志** | 符合合规要求的审计追踪 — 认证、配置、告警、事件、工作流事件 |
| **集成** | Jira、ServiceNow、Slack、Teams、Discord、Telegram、PagerDuty、Opsgenie、Webhooks |
## 架构
```
PULSE Platform
├── Agent (collector.py) — Runs on every node, ships metrics + events
├── API (FastAPI) — REST + WebSocket, 150+ endpoints
│ ├── Detection Engine — YAML rules, threshold evaluation
│ ├── AI RCA Engine — GPT-4o / Ollama root cause analysis
│ ├── Correlation Engine — Links alerts into incidents
│ ├── Notification Engine — 13 channels (Slack, Teams, email, SMS, etc.)
│ ├── Escalation Engine — Multi-step auto-escalation
│ ├── Anomaly Detection — Statistical baseline deviation
│ ├── Predictive Engine — Forecast metrics, predict alerts
│ ├── NL Query Engine — Natural language → metric queries
│ ├── Workflow Engine — Trigger → Condition → Action automation
│ ├── On-Call Scheduler — Rotations, overrides, escalation policies
│ ├── Dashboard Builder — Custom widget-based dashboards
│ ├── Service Catalog — Service ownership + dependency mapping
│ ├── Status Page — Public service health page
│ ├── Auth (JWT) — Signup, login, RBAC
│ ├── Metric Explorer — Interactive query builder, 9 aggregation functions
│ ├── Alert Templates — Pre-built packs (Linux, K8s, PostgreSQL, Redis, Docker, Network)
│ ├── War Room — Collaborative incident timeline with responders
│ ├── User & Team Mgmt — Invite, roles, teams, deactivation
│ ├── Billing Engine — Plans, usage tracking, overage alerts
│ ├── APM / Tracing — Distributed traces, span waterfall, service map
│ ├── Log Alerting — Keyword, regex, rate, absence-based rules
│ ├── Environments — Multi-env support (prod/staging/dev/DR)
│ ├── Audit Log — Compliance-grade event trail
│ └── Integrations — Jira, ServiceNow, OpenTelemetry
├── Dashboard (Next.js) — 31-view app, Recharts, Tailwind, dark/light theme
├── Database (PostgreSQL) — Metrics, events, alerts, incidents, logs
├── Cache (Redis) — Real-time data, pub/sub
└── Kubernetes (minikube) — 2x API replicas, DaemonSet agent
```
## 快速开始
**Docker Compose(最简单):**
```
git clone https://github.com/Nightfuryxd/pulse.git && cd pulse
cp .env.example .env # Edit: OPENAI_API_KEY or OLLAMA_URL
docker compose up -d
# 仪表板:http://localhost:8000
```
**Kubernetes(生产环境):**
```
kubectl apply -f k8s/
minikube service pulse-api -n pulse --url
```
**在任意节点安装代理:**
```
# Linux / macOS
curl -sSL http://pulse-server:8000/install.sh | PULSE_API_URL=http://pulse-server:8000 sudo bash
# Windows(PowerShell 以管理员身份运行)
$env:PULSE_API_URL = "http://pulse-server:8000"; irm http://pulse-server:8000/install.ps1 | iex
```
## Dashboard Views(总计 31 个)
| 部分 | 视图 |
|---|---|
| **监控** | 概览、节点、指标历史 |
| **响应** | 告警、告警规则、事件、日志告警 |
| **观察** | 事件流、服务拓扑、日志流、综合监控、APM/追踪 |
| **探索** | 指标探索器 |
| **可靠性** | SLO/SLA 跟踪、预测性预测 |
| **智能** | 询问 PULSE(自然语言查询)、报告、知识库 |
| **运营** | 自定义仪表板、服务目录、工作流、值班、状态页、告警模板 |
| **协作** | 事件战室 |
| **管理** | 用户与团队、计费与用量、审计日志、环境、设置 |
## 功能亮点
### 自定义仪表板生成器
创建无限数量的仪表板,支持拖放小部件。小部件类型:统计卡片、折线/区域/柱状图、仪表盘、告警馈送、节点列表、文本/Markdown、运行时间条。保存、复制并共享仪表板。
### 值班管理(PagerDuty 替代方案)
定义轮换计划(每日/每周),分配团队成员,管理多层次规则的升级策略。覆盖系统用于临时计划变更。提供完整的页面跟踪与审计。
### 告警工作流生成器
可视化自动化链条:**触发器**(指标阈值、告警触发、安全事件、异常、SLO 违规、计划)→ **条件**(时间窗口、节点过滤、严重性、业务时间、冷却时间)→ **动作**(通知、呼叫值班、创建事件、运行剧本、Webhook、更新状态页、升级)。
### 公共状态页(Statuspage.io 替代方案)
定义服务,追踪运行状态,发布带有更新时间线的事件。公共访问页面位于 `/status` —— 无需认证。每个服务提供 90 天的运行时间追踪。
### 服务目录
映射组织中的每个服务:所有者(团队)、级别(0-3)、依赖关系、语言/框架、仓库、运行手册链接、SLO 链接、部署频率、MTTR 和事件计数。
### 事件战情室
实时协作的事件时间线。自动关联告警、指标峰值、日志模式、部署和响应者操作到单一的时间线视图。添加响应者、发布沟通信息、解决事件——全部在一个界面完成。
### 指标探索器
交互式查询构建器,涵盖 5 组(系统、网络、磁盘、应用、容器)的 20 个指标。9 个聚合函数(平均值、总和、最大值、最小值、速率、计数、p95、p99、标准差)。自适应时间粒度和多系列 Chart.js 可视化。
### 告警模板包
预构建的告警规则库,适用于 Linux(6 条)、Kubernetes(7 条)、PostgreSQL(6 条)、Redis(5 条)、Docker(5 条)和网络/HTTP(5 条)。一键导入到活动规则中,秒级上线生产就绪告警。
### 计费与使用仪表板
用量计量:指标、日志、API 调用、节点、存储。每日用量趋势图表、计划对比卡片(免费/专业/企业)和一键计划变更。为 SaaS 自助服务而设计。
### 通知中心
应用内通知铃铛带未读计数徽标。持久化的事件、告警、安全事件、部署和系统通知流。标记已读/未读、按类型过滤。
## 技术栈
### 后端
| 技术 | 版本 | 用途 |
|---|---|---|
| Python | 3.11 | 运行时 |
| FastAPI | 0.115.0 | REST API 框架(150+ 端点) |
| Uvicorn | 0.30.6 | ASGI 服务器 |
| SQLAlchemy | 2.0.35 | 异步 ORM |
| Alembic | 1.13.3 | 数据库迁移 |
| Pydantic | 2.9.2 | 数据验证与设置 |
| python-jose + bcrypt | 3.3.0 / 4.2.0 | JWT 认证与密码哈希 |
| httpx | 0.27.2 | 异步 HTTP 客户端 |
| WebSockets | 13.1 | 实时更新 |
| psutil | 6.0.0 | 跨平台系统指标 |
| pysnmp | 5.1.0 | SNMP v2c/v3 设备监控 |
### 前端
| 技术 | 版本 | 用途 |
|---|---|---|
| Next.js | 16.2.1 | React 框架 |
| React | 19.2.4 | UI 库 |
| TypeScript | 5.x | 类型安全 |
| Tailwind CSS | 4.x | 实用优先样式 |
| Recharts | 3.8.0 | 指标可视化 |
| Lucide React | 1.0.1 | 图标系统 |
### 数据层
| 技术 | 版本 | 用途 |
|---|---|---|
| PostgreSQL | 16 | 主数据库 |
| asyncpg | 0.29.0 | 异步 PostgreSQL 驱动 |
| Redis | 7 | 缓存、发布/订阅、速率限制 |
### AI / LLM
| 技术 | 用途 |
|---|---|
| Open GPT-4o | 云端根因分析、自然语言查询、预测性告警 |
| Ollama | 隔离环境/自托管 LLM(llama3.1+) |
### 基础设施与 DevOps
| 技术 | 用途 |
|---|---|
| Docker | 容器化(多阶段构建,python:3.11-slim) |
| Docker Compose | 本地开发编排 |
| Kubernetes | 生产编排(Deployments、DaemonSets、RBAC) |
| Minikube | 本地 K8s 开发 |
### Cloud Providers(可选)
| 提供商 | SDK |
|---|---|
| AWS | boto3 — CloudWatch、EC2、RDS、Lambda、ECS、ELB、成本异常检测 |
| Azure | azure-identity、azure-mgmt-compute、azure-mgmt-monitor、azure-mgmt-sql、azure-mgmt-web |
| GCP | google-cloud-monitoring、google-cloud-compute、google-api-python-client |
### 集成
| 类别 | 服务 |
|---|---|
| 聊天 | Slack、Microsoft Teams、Discord、Telegram、Google Chat、Zoom |
| 事件 | PagerDuty、Opsgenie、Jira、ServiceNow |
| 通信 | SMTP 邮件、Twilio SMS、WhatsApp(Twilio + Meta Cloud API) |
| 可观测性 | OpenTelemetry(追踪、跨度) |
| 通用 | Webhooks(自定义 HTTP 端点) |
### SDK
| 语言 | 包 |
|---|---|
| Python | pulse-sdk(Python 3.8+,httpx、SQLAlchemy) |
| Node.js | @pulse/sdk |
| Go | pulse-sdk-go |
### MCP(模型上下文协议)
| 组件 | 用途 |
|---|---|
| pulse_mcp.py | 通过 MCP 工具向 Claude 公开 PULSE 数据 |
## 构建阶段
| 阶段 | 功能 | 模块 |
|---|---|---|
| **Phase 1** | 代理、检测、AI 根因分析、关联、13 个通知渠道、升级、自动修复、拓扑、知识库、SDK、MCP | 15 个模块 |
| **Phase 2** | 综合监控、数据库监控、异常检测、OpenTelemetry | 4 个模块 |
| **Phase 3** | RBAC、SLO/SLA、预测性告警、自然语言查询、Jira、ServiceNow、报告 | 7 个模块 |
| **Phase 4** | JWT 认证、登录/注册、引导向导、设置 UI、告警规则 CRUD、搜索、用户资料 | 1 个模块 |
| **Phase 5** | 自定义仪表板、值班排班、公共状态页 | 3 个模块 |
| **Phase 6** | 通知中心、服务目录、告警工作流构建器 | 3 个模块 |
| **Phase 7** | 基于日志的告警、APM/分布式追踪、多环境、审计日志、自动刷新、WebSocket | 4 个模块 |
| **Phase 8** | 指标探索器、告警模板包、事件战室、用户与团队管理、计费与用量 | 5 个模块 |
| **Phase 9** | Next.js 迁移(React 19、TypeScript、Tailwind 4)、深色/浅色主题、OAuth(Google/GitHub) | 完整重写 |
## 环境变量
| 变量 | 是否必需 | 描述 |
|---|---|---|
| `OPENAI_API_KEY` | 是 | 云端 RCA — GPT-4o 根因分析 |
| `OLLAMA_URL` | 否 | 隔离环境 RCA — 例如 `http://ollama:11434` |
| `POSTGRES_PASSWORD` | 是 | 数据库密码 |
| `JWT_SECRET` | 可选 | JWT 签名密钥(未设置时自动生成) |
| `SLACK_BOT_TOKEN` | 可选 | Slack 通知 |
| `TEAMS_WEBHOOK_URL` | 可选 | Microsoft Teams |
| `PAGERDUTY_API_KEY` | 可选 | PagerDuty |
| `SNMP_TARGETS` | 可选 | 逗号分隔的 IP 地址 |
| `SSH_TARGETS` | 可选 | `user@host` 对 |
| `ENABLE_DISCOVERY` | 可选 | LAN 自动发现 |
## 状态
生产就绪。9 个阶段完成。45+ 模块共 18,000+ 行代码。部署在 Kubernetes 上,配备 2 个 API 副本和 DaemonSet 代理。包含 31 个视图的 Next.js 仪表板。
标签:AI基础设施监控, AI风险缓解, APM, Datadog替代, Docker监控, GET参数, GPT-4o, Linux监控, LLM评估, macOS监控, Ollama, OpenTelemetry, PagerDuty替代, SLA监控, SLO跟踪, SNMP监控, SSH无代理监控, Statuspage替代, UPS监控, Windows监控, WSL, YAML配置, 交换机监控, 仪表盘构建器, 值班管理, 分布式追踪, 升级策略, 协作战室, 可观测性平台, 告警引擎, 大规模基础设施, 子域名突变, 容器监控, 异常检测, 性能分析, 成本优化, 拖拽组件, 搜索引擎查询, 日志聚合, 智能运维, 服务依赖映射, 服务目录, 服务等级目标, 根因分析, 测试用例, 状态页, 生产环境监控, 用户代理, 网络设备监控, 自动发现, 自然语言查询, 虚拟机监控, 请求拦截, 跨度可视化, 路由器监控, 运行手册自动化, 逆向工具, 通知渠道, 错误预算, 防火墙监控, 预测性告警