运维智能仪表盘

OpsPulse MCP是一个轻量级的运维智能仪表盘,帮助团队结构化跟踪和分析生产问题,支持动态健康指标计算和基于LLM的执行摘要生成。

  • by jaidevreddy
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jaidevreddy/OpsPulse-MCP-Operational-Intelligence-Dashboard

使用说明

OpsPulse MCP-作战智能仪表板

OpsPulse MCP是一个轻量级的MVP操作智能仪表板,可帮助团队以结构化的方式跟踪和分析生产问题。它包括一个基于FastAPI的MCP服务器,带有WebSocket端点,可以在其中触发工具来创建和存储事件/票证、加载操作数据集统计数据、生成摘要和提取基于配置文件的主题(默认与下文)。该系统支持YAML驱动的评分配置文件,根据数据中的关键字模式动态计算健康指标和类别细分(如支付失败)。为了保持其快速性和可扩展性,它包括具有缓存统计可见性的缓存,以及用于验证服务就绪性的健康探测器。除此之外,它还可以使用LLM客户端生成执行摘要报告,并使用稳定的图像到PDF管道将其导出为可下载的PDF。

此仓库包含后端和前端实现。


我们建造了什么

后端(MCP服务器-FastAPI)

  • 带MCP WebSocket端点的FastAPI后端: WS /mcp
  • 使用YAML配置的配置文件感知评分系统(default, infra)
  • 持久存储:
    • 票
    • 事件
      以JSON格式存储(简单+可移植)
  • 快照分解端点以生成仪表板指标
  • 动态细分栏(示例: 付款失败)基于票/事件中的关键字计数
  • 缓存统计端点(命中/未命中+缓存键可见性)
  • 健康探针(基本服务准备状态信息)
  • 使用生成LLM执行摘要 Gemini客户端
  • 具有安全PDF生成功能的报告下载端点:
    • 呈现文本→ 使用枕头的图像
    • 导出图像→ PDF(避免unicode/font崩溃)

前端(仪表板UI)

  • 现代操作仪表板UI
  • 显示器:
    • 健康评分表
    • 利用率/分解柱状图
    • 票务+事件指标
    • 要解决的问题
    • 执行报告生成器+下载
  • 使用对后端的API调用来获取快照+报表数据

技术栈

后端

  • python
  • 快速API
  • WebSocket(MCP工具式交互)
  • YAML配置
  • JSON持久性
  • Gemini LLM客户
  • 枕头(图片导出为PDF格式)

前端

  • Next.js/React
  • TailwindCSS
  • ShadCN UI组件

项目结构

opspulse-mcp/
  mcp-server/
    main.py
    llm_client_gemini.py
    cache.py
    config/
      default.yaml
      infra.yaml
    data/
      tickets.json
      incidents.json

  opspulse-frontend/
    src/
    package.json
    next.config.*

安装指南

1) 后端设置(mcp服务器)

步骤1:进入后端文件夹

cd mcp-server

步骤2:创建并激活Python venv

python -m venv .venv
source .venv/bin/activate

步骤3:安装依赖项

pip install -r requirements.txt

如果 requirements.txt 不可用:

pip install fastapi uvicorn pyyaml pillow python-dotenv

步骤4:运行后端

uvicorn main:app --host 0.0.0.0 --port 8000 --reload

后端运行时间:

http://localhost:8000

手动MCP WebSocket测试(CLI)

后端运行后,您可以直接从终端测试MCP WebSocket端点。

WebSocket端点

ws://127.0.0.1:8000/mcp

步骤1:安装 wscat

如果你还没有:

npm install -g wscat

步骤2:连接到MCP插座

打开 2号航站楼 并运行:

npx wscat -c ws://127.0.0.1:8000/mcp

成功连接后,服务器返回就绪/连接消息,确认MCP端点处于活动状态。

步骤3:MCP工具命令(复制粘贴就绪)

工具1:Ping

{"tool":"ping","args":{}}

工具2:加载数据集计数

{"tool":"load_ops_data","args":{}}

工具3:基本总结

{"tool":"get_basic_summary","args":{}}

工具4:提取主题(配置文件感知)

默认配置文件:

{"tool":"extract_themes","args":{"profile":"default"}}

基础设施概况:

{"tool":"extract_themes","args":{"profile":"infra"}}

2) 前端设置(opspulse前端)

第一步:进入前端文件夹

cd opspulse-frontend

步骤2:安装依赖项

npm install

步骤3:配置环境变量

创建:

opspulse-frontend/.env.local

例子:

NEXT_PUBLIC_BACKEND_URL=http://localhost:8000

步骤4:运行前端

npm run dev

前端运行于:

http://localhost:3000

如何使用

创建工单/事件

您可以从UI创建新项目。
它们保存在JSON文件中:

  • mcp-server/data/tickets.json
  • mcp-server/data/incidents.json

这些基于关键字的条目动态地影响图表类别,如 付款失败.


生成报告

从仪表板:

  • 点击 生成报告
  • 后端调用LLM客户端
  • 报告已显示+可以下载为PDF格式

备注

  • 可以通过在内部创建新的YAML文件来添加新的配置文件 mcp-server/config/
  • 该系统旨在保持简单和演示友好,同时仍然具有可扩展性

许可证

麻省理工学院