性能回归分析服务器

Orion MCP是一个用于性能回归分析的模型上下文协议服务器,支持OpenShift和Kubernetes集群的性能回归检测、交互式API和可视化报告生成。

  • by jtaleric
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 jtaleric/orion-mcp

使用说明

猎户座MCP


Orion MCP是一个模型上下文协议(MCP)服务器,用于性能回归分析,由 云推土机/猎户座 图书馆。


主要特点

  • 回归检测 自动检测OpenShift和Kubernetes集群中的性能退化。
  • 交互式MCP API –公开一组可组合的工具和资源,这些工具和资源可以通过HTTP或其他MCP代理使用。
  • 可视化报告 –为趋势、多版本比较和指标相关性生成可发布的图表(PNG/JPEG)。
  • 集装箱优先 –附带轻量级OCI映像和示例OpenShift部署清单。

目录

  1. 入门指南
  2. 快速开始
  3. 可用工具
  4. 部署
  5. 发展
  6. 贡献
  7. 许可证

入门指南

先决条件

  • python 3.11或更新版本
  • 一 OpenSearch (或Elasticsearch≥7.17)具有Orion索引基准测试结果的端点
  • 波德曼 或 码头工人 (可选——用于容器化执行)

安装(虚拟环境)

# Clone repository
$ git clone https://github.com/YOUR_ORG/orion-mcp.git && cd orion-mcp

# Create & activate a virtual environment
$ python3.11 -m venv .venv
$ source .venv/bin/activate

# Install Python dependencies
$ pip install -r requirements.txt

快速开始

设置数据源终结点并在本地启动服务器:

export ES_SERVER="https://opensearch.example.com:9200"
python orion_mcp.py  # listens on 0.0.0.0:3030 by default

可用工具

工具 描述 默认参数
get_data_source 返回已配置的OpenSearch URL 无
get_orion_configs 列出可用的Orion配置文件 无
get_orion_metrics 列出按Orion配置分组的指标 config_name="small-scale-udn-l3.yaml", version="4.20"
get_orion_metrics_with_meta 列出Orion配置的指标和元数据 config_name="small-scale-udn-l3.yaml", version="4.19"
get_orion_performance_data 返回配置/度量/版本的原始性能值 config_name="small-scale-udn-l3.yaml", metric="podReadyLatency_P99", version="4.19", lookback="15"
openshift_report_on 为一个或多个OCP版本生成趋势线 versions="4.19", lookback="15", metric="podReadyLatency_P99", config_name="small-scale-udn-l3.yaml"
openshift_report_on_pr 新 分析特定Pull Request的性能影响 version="4.20", lookback="15", organization="openshift", repository="ovn-kubernetes", pull_request="2841"
has_openshift_regressed 扫描所有配置以查找更改点 version="4.19", lookback="15"
metrics_correlation 关联两个指标并返回散点图 metric1="podReadyLatency_P99", metric2="ovnCPU_avg", config_name="trt-external-payload-cluster-density.yaml", version="4.19", lookback="15"

拉取请求性能分析

概述

这 openshift_report_on_pr 工具提供 自动性能回归检测 GitHub Pull请求。此功能将特定PR的性能指标与周期性基线性能进行比较,以识别潜在的回归。

运作原理

  1. 基线收集:在回顾期内收集指定OpenShift版本的定期性能数据
  2. 公关分析:专门针对目标Pull Request运行性能测试
  3. 比较:使用 10%阈值
  4. 多配置测试:在多种猎户座配置上进行测试,以实现全面覆盖

支持的配置

PR分析针对以下关键性能测试配置运行:

  • trt-external-payload-cluster-density.yaml -集群密度和吊舱缩放测试
  • trt-external-payload-node-density.yaml -节点级性能和资源利用率
  • trt-external-payload-node-density-cni.yaml -CNI特定的网络性能
  • trt-external-payload-crd-scale.yaml -自定义资源定义缩放测试

解释结果

  • 周期平均值:回顾期内平均的基线绩效指标
  • 拉:特定PR测试运行的性能指标
  • 回归检测:使用10%阈值比较值:
    • (pull_value - periodic_avg) / periodic_avg > 0.10 表示潜在的回归
    • ±10%以内的值被视为正态方差

与AI/LLM集成

响应格式针对AI分析进行了优化。LLM可以:

  1. 自动检测回归 通过比较周期平均值与拉取指标
  2. 应用10%的阈值 确定重要性
  3. 生成人类可读的报告 突出关注变化
  4. 提供可操作的见解 哪些指标出现了倒退,倒退了多少

文档

有关综合文档:

AI分析提示示例

Analyze this PR performance data and identify any regressions using a 10% threshold:
[paste the JSON response]

For each metric that shows >10% degradation, explain:
1. The metric name and what it measures
2. The baseline vs PR values  
3. The percentage change
4. Potential impact on users

部署

容器图像

podman build -t quay.io/YOUR_ORG/orion-mcp:latest .

开放式移位

要部署到OpenShift集群,请在kustomize/base/.env中指定ES_SERVER,例如:

ES_SERVER=https://USER:PASSWORD@SERVER:443

要部署应用程序,请执行以下操作:

# Expose your quay credentials to fetch the container image
export QUAY_CRED='<base64 encoded pull secret>'

# Build and apply the manifests
kustomize build --load-restrictor=LoadRestrictionsNone ./kustomize/base | envsubst | oc apply -f -

要验证清单的任何更改,您可以在本地呈现它们,例如:

kustomize build  ./kustomize/base | envsubst > manifests.yaml 

要从外部访问该服务,请使用 OpenShift路线 并将您的MCP客户端指向 http://<host>:3030.


发展

# Run linters & tests
flake8
pytest

# Auto-format with black & isort
black . && isort .

贡献

拉取请求非常受欢迎!请确保您已阅读并遵守 行为准则.

  1. 分叉存储库
  2. 为您的功能或错误修复创建新分支
  3. 进行更改并添加测试(如果适用)
  4. 提交一个拉取请求,明确描述您的更改

许可证

猎户座MCP分布在 Apache 2.0 许可证。请参阅 许可证 文件全文。