使用说明
MCP普罗米修斯服务器
普罗米修斯监控系统的模型上下文协议(MCP)服务器。该服务器使AI语言模型能够查询指标、分析时间序列数据,并从Prometheus检索元数据。
文档
特性
- 即时查询:在单个时间点执行PromQL查询
- 范围查询:查询时间范围内的指标以进行趋势分析
- 元数据发现:探索可用的指标、标签和目标
- 系列探索:查找与标签选择器匹配的时间序列
- 目标信息:查看抓取目标运行状况和配置
- 缓存:为频繁访问的元数据内置缓存
安装
使用pip
pip install -e .
使用Docker
docker build -t mcp-prometheus .
docker run -p 8000:8000 --env-file .env mcp-prometheus
配置
创建一个 .env 文件基于 .env.example:
# Required
PROMETHEUS_URL=http://localhost:9090
# Optional authentication
PROMETHEUS_USERNAME=admin
PROMETHEUS_PASSWORD=password
# Optional settings
PROMETHEUS_TIMEOUT=30
PROMETHEUS_VERIFY_SSL=true
用法
命令行
# Run with stdio transport (default)
mcp-prometheus
# Run with SSE transport
mcp-prometheus --transport sse --port 8000
# With custom Prometheus URL
mcp-prometheus --prometheus-url http://prometheus.example.com:9090
# With authentication
mcp-prometheus --prometheus-username admin --prometheus-password secret
可用工具
-
怎么翻译:执行即时查询
query(query="up", time="2024-01-01T00:00:00Z") -
query_range:执行范围查询
query_range(query="rate(http_requests_total[5m])", start="1h", end="now", step="1m") -
系列:通过标签选择器查找系列
series(match=["up", "http_requests_total{job=\"api\"}"]) -
标签:获取所有标签名称
labels() -
标签值:获取特定标签的值
label_values(label_name="job") -
目标:获取抓取目标信息
targets() -
元数据:获取度量元数据
metadata(metric="http_requests_total", limit=10)
查询示例
基本指标
up-目标向上状态process_cpu_seconds_total-CPU使用率node_memory_MemAvailable_bytes-可用内存
费率计算
rate(http_requests_total[5m])-请求速率超过5分钟irate(cpu_usage_seconds_total[1m])-即时CPU速率
聚合
sum by (job) (up)-按工作统计目标avg(node_load1)-平均1分钟负载
发展
运行测试
pytest tests/
代码的风格
# Format code
black src/
# Lint
ruff check src/
许可证
与父项目相同。