英语| 中文
Dash2Insight MCP
MCP(模型上下文协议)服务器,从现有的Grafana仪表板中提取专业监控指标,并通过Prometheus查询实时数据,以协助人工智能进行监控分析和故障排除。
主要特点:
- 从大型JSON文件(20000多行)中提取关键指标,保存AI上下文并专注于重要指标
- 支持Prometheus的即时和范围查询,满足不同的监控需求
- 支持仪表板变量解析,用于动态指标和选项检索
需求
- python:3.10+(MCP SDK最低要求)
⚠️ 备注:MCP Python SDK需要Python 3.10或更高版本
选项1:自动设置(推荐)
./setup.sh此脚本将自动执行以下操作:
- 检测可用的Python 3.10+版本
- 创建虚拟环境
- 安装所有依赖项
- 运行基本测试
选项2:手动安装
1.检查Python版本
python3 --version
# Ensure version >= 3.10如果版本太低,请安装Python 3.10+:
- macOS:
brew install python@3.10或brew install python@3.11 - Linux:使用系统包管理器
- Windows:从下载 python.org
2.创建虚拟环境
# Create virtual environment with Python 3.10+
python -m venv venv
# Activate virtual environment
# macOS/Linux:
source venv/bin/activate
# Windows:
# venv\Scripts\activate3.安装依赖项
# Upgrade pip (recommended)
pip install --upgrade pip
# Install project dependencies
pip install -r requirements.txt运行服务
1.添加仪表板文件
从Grafana导出仪表板JSON文件并将其放置在 dashboard/ 目录。支持多个仪表板文件。
⚠️ 备注:专业的Grafana仪表板元数据对于人工智能分析至关重要。
如何导出:
- 打开Grafana仪表板
- 点击右上角的齿轮图标(设置)
- 选择“JSON模型”
- 复制内容并另存为
your-service-dashboard.json
2.配置Prometheus
复制示例配置文件并编辑:
cp config.yaml.example config.yaml然后编辑 config.yaml 使用您的Prometheus服务器信息和仪表板列表:
prometheus:
url: "http://your-prometheus-url:9090"
username: "your_username" # Optional, if authentication required
password: "your_password" # Optional, if authentication required
timeout: 30
dashboards:
- name: "pulsar-dashboard"
path: "./dashboard/pulsar-dashboard.json"相对路径:如果dashboards[].path是相对的(例如。./dashboard/xxx.json),已解决 相对于包含配置文件的目录,而不是项目根目录或当前工作目录。例如,如果config.yaml在/opt/dash2insight/config.yaml那么./dashboard/foo.json归结为/opt/dash2insight/dashboard/foo.json.
⚠️ 备注:config.yaml包含敏感信息,被忽略.gitignore.
指定自定义配置文件:您可以通过以下方式使用项目根目录外的配置文件:
- 命令行:
python -m src.server -c /path/to/config.yaml或./scripts/run_server.sh --config /path/to/config.yaml - 环境变量:设置
DASH2INSIGHT_CONFIG=/path/to/config.yaml(当MCP客户端不传递参数时有用)
3.配置MCP服务器
在Cursor或Claude Desktop等AI客户端中配置MCP服务器,指向 server.py 脚本。 以Cursor为例:
- 打开光标设置
- 查找“MCP服务器”配置
- 添加服务器配置
选项1:使用虚拟环境Python
{
"mcpServers": {
"Dash2Insight-MCP": {
"command": "/path/to/Dash2Insight-MCP/venv/bin/python",
"args": ["/path/to/Dash2Insight-MCP/src/server.py"],
"cwd": "/path/to/Dash2Insight-MCP"
}
}
}使用绝对路径来避免环境变量问题。 \ 要使用项目根目录外的配置文件,请添加"-c", "/path/to/your/config.yaml"到args. \ ⚠️ 选项1需要设置cwd到项目根目录,否则您将得到:ModuleNotFoundError: No module named 'src'.
选项2:使用启动脚本
脚本会自动切换到项目根目录,无需设置 cwd 在MCP配置中:
{
"mcpServers": {
"Dash2Insight-MCP": {
"command": "/path/to/Dash2Insight-MCP/scripts/run_server.sh"
}
}
}- 重新启动游标
在配置之后, 重新启动游标 以激活MCP服务器。然后,AI可以使用prometheus_query、prometheus.range_query工具,并访问仪表板变量和指标资源。 成功截图: img.png img.png
用法示例
- 为Pulsar集群生成流量报告,并将其另存为markdown文档。
- XXX集群在XXX时间发生故障,请帮助我分析原因并提供故障排除步骤。
- 分析XXX集群的负载,并给出优化建议。
许可证
阿帕奇-2.0
