红帽OpenShift AI(RHOAI)可观察性MCP
    
MCP(模型上下文协议)服务器,使AI助手可以直接访问Red Hat OpenShift AI可观察性数据。查询Prometheus指标、Alertmanager警报、Loki日志、Grafana仪表板和Kubernetes集群状态,以排除vLLM推理工作负载的故障。
特性
- 21工具 跨越7个类别,实现全面可观测性
- vLLM感知 度量(TTFT、TPOT、E2E延迟、KV缓存、队列深度)
- 综合调查 自动关联指标、日志和警报的工具
- 自动检测 OpenShift服务的集群内访问与外部访问
- 建立在 FastMCP 通过异步后端
httpx
建筑
graph TD
A[Claude / AI Assistant] -->|MCP Protocol| B[rhoai-observability-mcp]
B --> C[Thanos / Prometheus]
B --> D[Alertmanager]
B --> E[Loki]
B --> F[Tempo]
B --> G[Grafana]
B --> H[Kubernetes / OpenShift]后端:
| 后端 | 目的 | 来源 |
|---|---|---|
| 普罗米修斯(灭霸) | 指标查询(PromQL) | backends/prometheus.py |
| Alertmanager | 活动警报和警报组 | backends/alertmanager.py |
| 洛基 | 日志查询(LogQL) | backends/loki.py |
| Tempo | 分布式跟踪查询(TraceQL) | backends/tempo.py |
| Grafana | 仪表板发现和面板查询 | backends/grafana.py |
| Kubernetes(OpenShift) | Pod、事件、节点、InferenceServices | backends/openshift.py |
快速开始
# Clone and install
git clone https://github.com/opendatahub-io/rhoai-observability-mcp.git
cd rhoai-observability-mcp
uv pip install -e ".[dev]"
# Configure (see INSTALL.md for all options)
export THANOS_URL=https://thanos-querier.openshift-monitoring.svc:9091
export ALERTMANAGER_URL=https://alertmanager-main.openshift-monitoring.svc:9093
export OPENSHIFT_TOKEN=$(oc whoami -t)
# Run
python -m rhoai_obs_mcp.server看 安装.md 了解详细的设置、配置和Claude Desktop集成。
构建和部署
构建容器映像
make build覆盖图像名称或标签:
make build IMAGE_NAME=quay.io/myorg/rhoai-observability-mcp IMAGE_TAG=v1.0.0推送到注册表
make push部署到OpenShift
先决条件: oc login 到您的集群, kustomize 安装并创建目标项目:
oc new-project rhoai-obs-mcp然后部署:
make deploy这使用Kustomize构建OpenShift覆盖层(deploy/overlays/openshift/)在基础清单之上(deploy/base/)并将其应用于 rhoai-obs-mcp 命名空间。要部署到其他命名空间,请执行以下操作:
make deploy NAMESPACE=my-namespace卸载
make undeploy如果部署到自定义命名空间,请传递相同的值:
make undeploy NAMESPACE=my-namespaceCI构建的映像
容器图像是从以下内容自动构建的 main 并向GHCR发布:
ghcr.io/opendatahub-io/rhoai-observability-mcp:latest地方发展与善良
为开发和测试设置一个具有模拟可观察性后端的本地Kubernetes集群:
# Prerequisites: kind, kubectl, helm, kustomize
make kind-up这将创建一个Kind集群,通过Helm安装Prometheus+Alertmanager+Grafana,部署一个假的vLLM指标导出器,并部署MCP服务器。访问MCP服务器 http://localhost:30080.
要指向真正的外部后端而不是模拟:
make kind-deploy THANOS_URL=https://real-cluster:9091 ALERTMANAGER_URL=https://real-cluster:9093 GRAFANA_URL=https://real-cluster:3000 TEMPO_URL=https://real-cluster:8080拆卸:
make kind-down工具参考
指标
| 工具 | 说明 |
|---|---|
query_prometheus | 对ThanosQuerier执行原始PromQL查询 |
query_prometheus_range | 执行PromQL范围查询以获取时间序列数据(趋势、峰值、相关性) |
get_vllm_metrics | 获取模型的关键vLLM指标(TTFT、TPOT、E2E、缓存、队列)的摘要 |
list_metrics | 列出可用的Prometheus度量名称,可选择按正则表达式过滤 |
警报
| 工具 | 说明 |
|---|---|
get_alerts | 从Alertmanager获取活动警报,可按严重程度和标签进行过滤 |
get_alert_groups | 获取按路由标签分组的警报 |
日志
| 工具 | 说明 |
|---|---|
query_logs | 对OpenShift LokiStack执行LogQL查询 |
get_pod_logs | 按命名空间和名称获取特定pod的日志 |
痕迹
| 工具 | 说明 |
|---|---|
get_trace | 通过跟踪ID获取分布式跟踪 |
search_traces | 使用TraceQL表达式搜索跟踪 |
list_trace_tags | 列出用于构建TraceQL查询的可用跟踪标记名称 |
簇
| 工具 | 说明 |
|---|---|
get_pods | 在命名空间中列出Pod,包括状态、重启和创建时间 |
get_events | 列出Kubernetes事件,可按资源和原因过滤 |
get_node_status | 获取节点状态、容量和GPU分配信息 |
describe_resource | 获取Kubernetes资源的详细描述 |
get_inference_services | 列出KServe Inference服务资源 |
仪表盘
| 工具 | 说明 |
|---|---|
list_dashboards | 列出可用的Grafana仪表板,可按标签或标题过滤 |
get_dashboard_panels | 从Grafana仪表板获取面板及其查询 |
调查
| 工具 | 说明 |
|---|---|
investigate_latency | 关联vLLM模型的延迟度量、错误日志和警报 |
investigate_gpu | 关联GPU利用率、KV缓存、队列深度和pod状态 |
investigate_errors | 在命名空间中关联错误日志、警报和Kubernetes事件 |
