项目简介

Orion MCP是一个基于Model Context Protocol (MCP) 构建的服务器,专注于性能回归分析。它利用 'cloud-bulldozer/orion' 库,能够自动检测OpenShift和Kubernetes集群中的性能回归,提供交互式的API接口,并生成专业的性能趋势、版本对比和指标关联图表。该服务旨在为大型语言模型(LLM)客户端提供标准化的上下文信息和功能,从而增强LLM在性能分析领域的应用能力。

主要功能点

  • 性能回归检测: 自动识别OpenShift和Kubernetes集群中的性能下降趋势或突发回归点。
  • 交互式API: 通过标准化的MCP接口(JSON-RPC协议)提供一系列可组合的工具和资源,供LLM(大型语言模型)客户端或其它MCP代理调用。
  • 可视化报告: 能够根据分析结果生成高质量的趋势图、多版本对比图和指标关联散点图(PNG/JPEG格式),便于直观理解性能数据。
  • 容器化部署: 提供轻量级OCI镜像和OpenShift部署示例,方便用户在容器环境中快速部署和扩展服务。
  • 数据源连接: 支持连接OpenSearch(或Elasticsearch ≥7.17)数据源,用于索引和查询性能基准测试结果。

安装步骤

在本地环境中运行Orion MCP服务器需要以下步骤:

  1. 前置条件:

    • Python: 3.11 或更高版本。
    • OpenSearch/Elasticsearch: 一个运行中的OpenSearch(或Elasticsearch ≥7.17)端点,其中包含Orion索引的基准测试结果。这是MCP服务器分析数据的数据源。
    • Podman 或 Docker: (可选) 如果您计划以容器化方式构建或运行服务。
  2. 克隆仓库: 打开终端,执行以下命令克隆Orion MCP仓库:

    git clone https://github.com/jtaleric/orion-mcp.git
    cd orion-mcp
  3. 创建并激活虚拟环境: 为了避免依赖冲突,建议在虚拟环境中安装Python依赖:

    python3.11 -m venv .venv
    source .venv/bin/activate
  4. 安装Python依赖:

    pip install -r requirements.txt

服务器配置 (MCP客户端使用)

MCP客户端需要以下JSON格式的配置信息来连接Orion MCP服务器。请根据您的实际部署情况调整 'args' 中 'ES_SERVER' 的地址。

{
  "server_name": "Orion MCP Server",
  "command": "python",
  "args": [
    "-c",
    "import os; os.environ['ES_SERVER']='http://your-opensearch-host:9200'; from orion_mcp import mcp; import asyncio; asyncio.run(mcp.run(transport='streamable-http'))"
  ],
  "description": "Orion性能回归分析服务器。客户端需提供一个OpenSearch/Elasticsearch地址作为数据源。",
  "transport": "streamable-http"
}
  • 'server_name': 这是MCP服务器在客户端中显示的名称,用于识别。
  • 'command': 启动MCP服务器进程所使用的可执行命令,通常是 'python'。
  • 'args': 传递给 'command' 的参数列表。此处的 '-c' 允许直接执行Python代码。
    • 'os.environ['ES_SERVER']='http://your-opensearch-host:9200'': 请务必将 'http://your-opensearch-host:9200' 替换为您的OpenSearch或Elasticsearch的实际访问地址。 这是Orion MCP服务器连接数据源的关键配置。
    • 'from orion_mcp import mcp; import asyncio; asyncio.run(mcp.run(transport='streamable-http'))': 这部分代码用于导入并启动Orion MCP服务器。
  • 'description': 对该MCP服务器的简要描述。
  • 'transport': 服务器使用的传输协议,'streamable-http' 表示通过HTTP流进行通信,支持JSON-RPC over HTTP。

基本使用方法

  1. 设置数据源: 在启动MCP服务器之前,您必须设置 'ES_SERVER' 环境变量,指向您的OpenSearch或Elasticsearch端点。这是Orion MCP服务器获取性能数据的来源。

    export ES_SERVER="https://opensearch.example.com:9200"

    请将 'https://opensearch.example.com:9200' 替换为您的实际数据源地址。

  2. 启动服务器: 在激活的虚拟环境中,执行以下命令启动Orion MCP服务器:

    python orion_mcp.py

    服务器将默认在 '0.0.0.0:3030' 监听客户端请求。您会看到类似 "Running MCP server with transport: streamable-http" 的输出。

  3. 通过MCP客户端调用工具: 服务器成功启动后,您可以使用任何兼容的MCP客户端(例如与大型语言模型集成的应用程序)连接到 'http://0.0.0.0:3030',并调用其提供的工具和资源进行性能分析。 例如,一个MCP客户端可以发送一个JSON-RPC请求来调用 'openshift_report_on' 工具,以生成特定OpenShift版本的性能趋势报告。请求体可能如下所示:

    {
      "jsonrpc": "2.0",
      "method": "openshift_report_on",
      "params": {
        "versions": "4.19",
        "lookback": "30",
        "metric": "podReadyLatency_P99",
        "config": "small-scale-udn-l3.yaml"
      },
      "id": 1
    }

    服务器将执行分析,并返回一个包含图像(Base64编码的JPEG数据)或文本内容的JSON-RPC响应。客户端随后可以解析并显示这些分析结果。

信息

分类

开发者工具