Prometheus MCP for Gemini CLI
  ](https://www.docker.com/) 
基于人工智能的SRE团队根本原因分析
通过Gemini AI使用自然语言查询Prometheus指标。非常适合事件响应、RCA和性能分析。
🎉 固定的:范围查询现在可以工作了!增强的MCP服务器具有智能时间格式转换功能,可对RCA进行历史数据分析。
✨ 这有什么作用
- 🤖 人工智能驱动的RCA:让双子座用简单的英语分析事件
- 📊 历史数据:查询任何时间范围内的指标(固定范围查询问题!)
- 🔍 根本原因分析:让AI关联指标并发现问题
- 💬 自然语言:无需PromQL-只需提问
- ⚡ 快速设置:全自动-5分钟内完成
🎯 非常适合
- SRE团队:更快的事件响应和RCA
- 开发运维:监控部署和性能
- 平台工程师:能力规划和分析
- 任何人:谁想让人工智能分析他们的普罗米修斯指标!
🚀 快速入门(5分钟)
先决条件
- Docker已安装
- 已安装Gemini CLI(
npm install -g @google/generative-ai-cli) - 访问Prometheus服务器
安装
# 1. Clone or download this directory
cd mcp_prometheus
# 2. Configure your Prometheus URL
cp .env.example .env
nano .env # Edit PROMETHEUS_URL with your IP:PORT
# 3. Run automated setup (builds everything!)
./setup.sh
# 4. Start using!
gemini就是这样!安装脚本会自动执行以下操作:
- ✅ 构建具有范围查询支持的增强型MCP服务器
- ✅ 配置Gemini CLI
- ✅ 测试您的Prometheus连接
- ✅ 启用RCA的历史数据查询
📝 配置
在哪里配置Prometheus IP和端口
您只需要配置一个位置: .env 文件
# Edit .env file
nano .env
# Set your Prometheus URL (IP:PORT)
PROMETHEUS_URL=http://192.168.1.100:9090
# ^^^^^^^^^^^^^^^^^^^^^ YOUR PROMETHEUS IP
# ^^^^ PORT配置选项
无身份验证(最简单)
PROMETHEUS_URL=http://localhost:9090使用基本身份验证
PROMETHEUS_URL=http://prometheus.example.com
PROMETHEUS_USERNAME=admin
PROMETHEUS_PASSWORD=secret使用承载令牌
PROMETHEUS_URL=https://prometheus.example.com
PROMETHEUS_TOKEN=your_bearer_token_here配置后
# Run setup to apply changes
./setup.sh安装脚本将:
- 检测您的配置
- 构建增强的Docker镜像
- 更新Gemini CLI设置
- 你准备好了!
💡 使用示例
启动Gemini CLI
gemini检查MCP服务器状态
/mcp您应该看到状态为“已连接”的“普罗米修斯”✅
简单查询
电流值
What is the current value of the "up" metric?列出指标
Show me all available metricsList all metrics containing "cpu"检查服务
Show me all monitoring targets and their health🔥 RCA和历史查询(现在有效!)
服务中断分析
We had an outage at 2 PM today. Show me service availability
(up metric) for 2 hours before and after. What went wrong?性能研究
API got slow around 14:30. Show me CPU, memory, and request
latency for the last 4 hours. Find the correlation.错误率尖峰
Error rate jumped to 15% at 3 PM. Show me error trends for
the last hour and any deployments during that time.资源耗竭
Pods keep restarting. Show me memory usage over the last
2 hours. Were we hitting limits?容量规划
Show me CPU and memory trends for the last 7 days.
Are we approaching capacity?支持的时间格式
所有这些都是自动工作的:
"4h" # 4 hours ago
"30m" # 30 minutes ago
"2d" # 2 days ago
"now" # Current time
"2025-11-18T14:00:00Z" # ISO 8601
"1700000000" # Unix timestamp🔧 运作原理
建筑
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Gemini CLI │ ───> │ Enhanced MCP │ ───> │ Prometheus │
│ (You ask) │ │ Server (Docker) │ │ (Metrics) │
│ │ <─── │ Smart time parser│ <─── │ │
└─────────────┘ └──────────────────┘ └─────────────┘主要特点
- 增强型MCP服务器:内置FastMCP,包括智能时间格式转换
- 自动时间处理:将任何时间格式转换为Prometheus所需的格式
- 范围查询支持:修复了原始问题-历史数据现在有效!
- 生产就绪:基于Docker,支持身份验证,易于部署
我们修复了什么
最初的Prometheus MCP服务器有一个bug,范围查询不起作用,原因是:
- ❌ 服务器只接受Unix时间戳(1700000000)
- ❌ 双子座发送ISO 8601格式(2025-11-18T10:00:00Z)
- ❌ 结果:查询结果为空,无历史数据
我们的增强型服务器解决了这个问题:
- ✅ 接受任何时间格式
- ✅ 自动转换为Prometheus所需的内容
- ✅ 范围查询工作完美
- ✅ 启用RCA和历史分析
📁 文件概述
mcp_prometheus/
├── setup.sh # 🚀 RUN THIS to install everything
├── .env.example # 🔧 Copy to .env and configure Prometheus IP:PORT
├── .env # ⚙️ YOUR configuration (not in git)
├── prometheus_mcp_enhanced.py # Enhanced MCP server with time fix
├── Dockerfile.enhanced # Docker build file
├── requirements.txt # Python dependencies
├── README.md # This file
├── QUICKSTART.md # Quick usage guide
└── RCA_GUIDE.md # Detailed RCA workflows🎓 分步教程
适合初学者
- 安装先决条件
# Install Docker
# Visit: https://docs.docker.com/get-docker/
# Install Gemini CLI
npm install -g @google/generative-ai-cli- 下载此目录
cd /path/to/mcp_prometheus- 配置Prometheus
# Copy example config
cp .env.example .env
# Edit with your favorite editor
nano .env
# Find this line:
PROMETHEUS_URL=http://localhost:9090
# Change localhost:9090 to your Prometheus IP:PORT
PROMETHEUS_URL=http://192.168.1.100:9090
# ^^^^^^^^^^^^^^^^^^^^^ Your IP
# ^^^^ Port
# Save and exit (Ctrl+X, then Y, then Enter in nano)- 运行安装程序
./setup.sh这将:
- 检查是否安装了Docker和Gemini CLI - 构建增强的MCP服务器 - 自动配置Gemini CLI - 测试连接
- 开始使用
gemini然后问以下问题:
What metrics are available?
Show me CPU usage for the last hour🔄 更改Prometheus URL
要连接到另一个普罗米修斯:
# 1. Edit .env
nano .env
# 2. Change PROMETHEUS_URL to new IP:PORT
PROMETHEUS_URL=http://192.168.1.100:9090
# 3. Re-run setup
./setup.sh
# Done! Gemini CLI now uses the new Prometheus🐛 故障排除
MCP服务器未显示
# Check Gemini settings
cat ~/.gemini/settings.json
# Should see "prometheus" in mcpServers
# If not, re-run setup
./setup.sh连接错误
# Test Prometheus manually
curl http://YOUR_PROMETHEUS_IP:9090/-/healthy
# Should return: Prometheus Server is Healthy.
# If not working:
# - Check IP and port in .env
# - Check firewall settings
# - Verify Prometheus is running范围查询返回空值
这不应该再发生了!但如果是这样:
# Verify you're using the enhanced server
docker images | grep prometheus-mcp-enhanced
# Should see: prometheus-mcp-enhanced:latest
# If not, rebuild:
./setup.shDocker权限被拒绝
# Add your user to docker group
sudo usermod -aG docker $USER
# Log out and log back in🚀 高级用法
多个Prometheus实例
您可以配置多个Prometheus服务器并在它们之间切换:
- 增添
.env:
# Development
DEV_PROMETHEUS_URL=http://localhost:9090
# Production
PROD_PROMETHEUS_URL=https://prometheus-prod.com
PROD_PROMETHEUS_TOKEN=token_here- 手动编辑
~/.gemini/settings.json切换或修改setup.sh
与CI/CD一起使用
# Set environment variables
export PROMETHEUS_URL=http://prometheus:9090
# Run setup non-interactively
./setup.sh --non-interactive # (you'd need to add this flag)Docker编写部署
对于生产环境:
version: '3.8'
services:
prometheus-mcp:
image: prometheus-mcp-enhanced:latest
environment:
PROMETHEUS_URL: ${PROMETHEUS_URL}
PROMETHEUS_USERNAME: ${PROMETHEUS_USERNAME}
PROMETHEUS_PASSWORD: ${PROMETHEUS_PASSWORD}
stdin_open: true
tty: true📚 其他文件
- QUICKSTART.md:快速参考指南
- RCA_GUIDE.md:详细的SRE工作流程和RCA示例
- .env.示例:解释了所有配置选项
🤝 为您的团队
与团队成员分享
# Commit configuration (without secrets!)
git add setup.sh prometheus_mcp_enhanced.py Dockerfile.enhanced
git add .env.example README.md QUICKSTART.md
git commit -m "Add Prometheus MCP for team"
git push
# Team members then:
git pull
cp .env.example .env
nano .env # Add their Prometheus details
./setup.sh团队最佳实践
- 每个开发人员都使用自己的.env (永远不要承诺!)
- Share.env.example 带有占位符
- 记录您的Prometheus URL 在团队wiki中
- 创建Runbook 常见的RCA查询
🎉 你现在能做什么
设置后,您可以:
✅ 向Gemini询问当前的度量值 ✅ 查询任何时间范围内的历史数据 ✅ 人工智能驱动的根本原因分析 ✅ 自动关联多个指标 ✅ 了解性能问题 ✅ 用简明英语分析事件 ✅ 无需具备PromQL知识!
💪 SRE用例
- 事件响应:“下午2点停电期间发生了什么?”
- 性能分析:“为什么延迟很高?”
- 容量规划“我们的资源用完了吗?”
- 部署监控:“部署是否导致问题?”
- 异常检测:“今天有什么不寻常的尖峰吗?”
🔐 安全说明
- ✅
.env在...里.gitignore-凭据安全 - ✅ 支持承载令牌身份验证
- ✅ 适用于SSL/TLS普罗米修斯
- ✅ Docker容器隔离
- ✅ Prometheus的只读访问权限
📞 支持
有问题吗?
- 检查
.env配置(IP和端口是否正确?) - 跑
./setup.sh再次 - 检查
docker ps查看容器是否启动 - 看
~/.gemini/settings.json - 测试普罗米修斯:
curl http://YOUR_IP:9090/-/healthy
🎓 学习资源
______________________________________________________________________
👨💻 作者
维卡什库马 高级DevOps工程师

______________________________________________________________________
📄 许可证
MIT许可证-请参阅 许可证 详细信息文件
______________________________________________________________________
内置于❤️ 适用于需要人工智能监控的SRE团队
如果这对你有帮助,请⭐ 为repo加星并与您的团队分享!
现在去问双子座你的指标! 🚀
