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配置, 交换机监控, 仪表盘构建器, 值班管理, 分布式追踪, 升级策略, 协作战室, 可观测性平台, 告警引擎, 大规模基础设施, 子域名突变, 容器监控, 异常检测, 性能分析, 成本优化, 拖拽组件, 搜索引擎查询, 日志聚合, 智能运维, 服务依赖映射, 服务目录, 服务等级目标, 根因分析, 测试用例, 状态页, 生产环境监控, 用户代理, 网络设备监控, 自动发现, 自然语言查询, 虚拟机监控, 请求拦截, 跨度可视化, 路由器监控, 运行手册自动化, 逆向工具, 通知渠道, 错误预算, 防火墙监控, 预测性告警