开放遥测+普罗米修斯MCP服务器
使用两个FastAPI微服务测试Prometheus + OpenTelemetry的完整环境,使用Llama3和服务器生成PromQL 普罗米修斯mcp服务器 与Prometheus。
组件
- 普罗米修斯 (
docker-compose) 存储和显示指标。 - 开放遥测采集器: 接收 OTLP (gRPC/HTTP) 并将转换的指标暴露给 Prometheus 抓取 (
:9464). - 演示指标API (
services/app) FastAPI 采用 OTel Metrics 和延迟中间件,在:8000(把它们换掉/docs). - 提示UI (
services/ui): FastAPI + Jinja2 用自然语言写问题,通过Llama3(Ollama)生成PromQL并查询Prometheus。 - Ollama+Callam3:模型轻量级·全球之声
llama3.2:1b默认情况下, 托管在容器中ollama. - 普罗米修斯mcp服务器带有 HTTP 传输的 MCP 服务指向此堆栈的 Prometheus (端口)
8082默认情况下,用于兼容的 IDE/向导。
先决条件
- Docker+Docker组合
- 下载Ollama模型的磁盘空间(~1-2 GB用于
llama3.2:1b).
如何登山
- 转到工程文件夹 :\
cd prometheus-ai
- 可选:准备
.env下载图片并保证模型:\
./scripts/install.sh (使用 --skip-model-pull 跳过模型)
- 您可以使用重置完成:\
./run.sh (推倒,拉,建造,上升和下降Ollama模型)
- 全部上传( 如果您没有使用上一步) :\
docker compose up -d
- 模式选择:\
docker exec prometheus-ai-ollama ollama pull llama3.2:1b
主要端点
- 演示API:
http://localhost:8000/docs(/health,/items/{id},/orders). - 提示UI:
http://localhost:8080(使用Llama3生成PromQL,以PT-BR显示JSON和摘要)。 - 普罗米修斯:
http://localhost:9090. - OTel收集器:OTLP gRPC
http://localhost:4317,HTTPhttp://localhost:4318,Metricashttp://localhost:9464/metrics. - MCP服务器(HTTP):
http://localhost:8082.
指标流
Demo API -> (OTLP gRPC) -> OTel Collector -> (endpoint /metrics em :9464) -> Prometheus\ Prometheus 已经被配置为刮掉收集器和自己。
环境变量
查看 .env / .env.example 端口和模型名称。大脑 LLAMA_MODEL 如果你想要另一个模型。
使用UI + LLM
- 打开
http://localhost:8080. - 写下类似:
- “5xx最后一分钟请求率” - “P95 端点/项目在过去 5 分钟的延迟”
- 屏幕显示:生成的PromQL,Prometheus 的原始JSON和自然语言解释(PT-BR)。
使用 prometheus-mcp-server
容器 prometheus-ai-mcp-server 已经上升到:
PROMETHEUS_URL=http://prometheus:9090
PROMETHEUS_MCP_SERVER_TRANSPORT=http
PROMETHEUS_MCP_BIND_HOST=0.0.0.0
PROMETHEUS_MCP_BIND_PORT=8082在 MCP 客户端中,指向 http://localhost:8082 (或使用 stdio/stdio+docker 作为原始项目的 README prometheus-mcp-server/README.md).
快速发展
- 调整 API 或 UI,并仅运行所需的服务:\
docker compose up --build app-service\ docker compose up --build ui-service
- 活体日志:
docker compose logs -f app-service ui-service otel-collector
额外的可见性
- App 指标 :
demo_requests_total,demo_request_latency_ms{bucket,sum,count},demo_pending_orders. - Métricas HTTP/semconv:
http_server_duration_milliseconds_{sum,count}和相关的,如果工具。 - 运行时间/进程指标:
process_cpu_seconds_total,process_resident_memory_bytes,up等等。 - 简单负载测试 :
curl "http://localhost:8000/items/1?slow=1"创建延迟。
结构
docker-compose.yml乐团服务。otel-collector-config.yaml:管道OTLP->普罗米修斯出口商。prometheus/prometheus.yml收藏家和普罗米修斯本身的抓取。services/app:fastapi+Inn梅特里察斯。services/uiFastAPI + Jinja2 + Ollama (Llama3) 用于生成 PromQL。prometheus-mcp-server官方存储库的副本,已集成到 compose 中。scripts/install.sh帮助下载图像并保证Ollama模型。run.sh全部重置(down -v),删除图像,pull,build --no-cache,up -d,然后拖动模板。
