Skip to content

[mcp_gateway] config: enable S3 import/export and regression analysis - #143

Merged
openshift-merge-bot[bot] merged 6 commits into
openshift-psap:mainfrom
ashtarkb:mcp-gw-s3-adoption
Aug 4, 2026
Merged

[mcp_gateway] config: enable S3 import/export and regression analysis#143
openshift-merge-bot[bot] merged 6 commits into
openshift-psap:mainfrom
ashtarkb:mcp-gw-s3-adoption

Conversation

@ashtarkb

@ashtarkb ashtarkb commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Enable S3 historical KPI storage and regression analysis for mcp_gateway nightly runs.

Made with Cursor

Summary by CodeRabbit

  • New Features
    • Enhanced KPI processing with export-ready CSV files and header comments.
    • Added regression analysis results for deeper performance insights.
    • Added optional generation and export of AI-related data artifacts.
    • Enabled configurable AWS S3 data exchange for nightly KPI and AI-data transfers.
    • Added controls for transfer limits, upload settings, and included data types.
    • Added optional secure configuration for S3 export access.

… regression analysis

Add S3 backend configuration for storing and retrieving historical KPI
data, enabling regression analysis against past nightly runs.

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@ashtarkb, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 18 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ff322311-e58f-4357-86e1-f376a001784a

📥 Commits

Reviewing files that changed from the base of the PR and between 980466a and 8697943.

📒 Files selected for processing (1)
  • projects/mcp_gateway/orchestration/config.yaml
📝 Walkthrough

Walkthrough

The orchestration configuration adds an optional AWS S3 vault. It expands Caliper postprocessing with KPI CSV output, optional AI-data output, historical regression analysis, and nightly S3 import/export settings.

Changes

Caliper postprocessing configuration

Layer / File(s) Summary
Postprocessing outputs and analysis
projects/mcp_gateway/orchestration/config.yaml
Configures KPI CSV output with header comments, keeps AI-data output disabled, and enables regression analysis from historical_data with a JSON result path.
S3 data transfer
projects/mcp_gateway/orchestration/config.yaml
Adds the optional psap-forge-aws-s3-export vault and configures nightly KPI data import and export for psap-dashboard-data, including download limits and AWS credential wiring.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • openshift-psap/forge#82: Modifies the same Caliper orchestration configuration with related secret configuration.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: enabling S3 import/export and regression analysis for mcp_gateway.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@projects/mcp_gateway/orchestration/config.yaml`:
- Around line 38-43: Remove the unsupported generate and export keys from the
KPI configuration, leaving artifacts_to_kpis.enabled and its supported output
field as the sole JSON output configuration. Ensure the output path is specified
through artifacts_to_kpis.output so caliper.postprocess.kpi validation succeeds.
- Around line 56-76: Move the entire s3 configuration block, including its
vault, import, and export settings, under the existing postprocess configuration
so it binds as caliper.postprocess.s3. Preserve all current S3 values and
nesting beneath the relocated block.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8a294f2d-2e9d-4e95-add8-c31084c27105

📥 Commits

Reviewing files that changed from the base of the PR and between d3b67d9 and 2ded63a.

📒 Files selected for processing (1)
  • projects/mcp_gateway/orchestration/config.yaml

Comment thread projects/mcp_gateway/orchestration/config.yaml Outdated
Comment on lines +56 to +76
s3:
bucket: psap-dashboard-data
instance: mcp_gateway
directory: nightly
vault:
name: psap-forge-aws-s3-export
aws_credentials_file: aws.credentials
import:
enabled: true
output_dir: historical_data
include_kpis_json: true
include_kpis_csv: true
include_ai_data: false
max_downloads: 50
export:
enabled: true
upload_id: null
dry_run: false
include_csv: true
include_kpis_json: true
include_ai_data: false

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Nest the S3 block under postprocess.

This s3: key is aligned with postprocess, making it caliper.s3; the contract expects caliper.postprocess.s3. As written, the configured import/export settings will not bind to the postprocessing S3 configuration, so historical KPI retrieval and uploads will not run as intended.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/mcp_gateway/orchestration/config.yaml` around lines 56 - 76, Move
the entire s3 configuration block, including its vault, import, and export
settings, under the existing postprocess configuration so it binds as
caliper.postprocess.s3. Preserve all current S3 values and nesting beneath the
relocated block.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ashtarkb , coderabbit is correct

@ashtarkb

ashtarkb commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator Author

/test fournos mcp_gateway demo
/cluster avis-cluster
/pipeline forge-full
/version 0.7.1

@psap-forge-bot

psap-forge-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

🔴 Execution of mcp_gateway demo 🔴

Execution Engine Configuration

forge:
  args:
  - demo
  configOverrides:
    infrastructure.mcp_gateway_version: 0.7.1
  project: mcp_gateway

Artifact Links

Test Logs

00 Pre-Cleanup 1 second

01 Prepare 1 minute, 41 seconds

02 Preflight 50 seconds

03 Test 9 minutes, 45 seconds

04 Post-Cleanup 2 minutes, 9 seconds

🔄 05 Export-Artifacts

@psap-forge-bot

psap-forge-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown
🔴 Submission of mcp_gateway demo failed after 17 minutes, 1 second 🔴

Error: FournosJobFailureError: FOURNOS Job 'forge-mcp-gateway-20260803-064415' failed: Tasks Completed: 6 (Failed: 1, Cancelled 0), Skipped: 0

/test fournos mcp_gateway demo
/cluster avis-cluster
/pipeline forge-full
/test fournos mcp_gateway demo
/version 0.7.1

ashtarkb and others added 2 commits August 3, 2026 11:00
These fields are not recognized by CaliperOrchestrationKpiSection
(extra="forbid") and cause pydantic validation to fail during
postprocessing.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ashtarkb

ashtarkb commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator Author

/test fournos mcp_gateway demo
/cluster avis-cluster
/pipeline forge-full
/version 0.7.1

@psap-forge-bot

psap-forge-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

🔴 Execution of mcp_gateway demo 🔴

Execution Engine Configuration

forge:
  args:
  - demo
  configOverrides:
    infrastructure.mcp_gateway_version: 0.7.1
  project: mcp_gateway

Artifact Links

Test Logs

00 Pre-Cleanup 2 seconds

01 Prepare 2 minutes, 15 seconds

02 Preflight 1 minute, 1 second

03 Test 9 minutes, 31 seconds

04 Post-Cleanup 1 minute, 56 seconds

🔄 05 Export-Artifacts

Post-processing Status

  • parse: success
  • artifacts_to_kpis: success
  • kpis_to_csv: success
  • ⏭️ artifacts_to_ai_data: disabled

    kpi.artifacts_to_ai_data disabled

  • ⏭️ s3_import: disabled

    s3_import disabled

  • analyse_kpis: failed
  • ⏭️ s3_export: disabled

    s3_export disabled

@psap-forge-bot

psap-forge-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown
🔴 Submission of mcp_gateway demo failed after 19 minutes, 34 seconds 🔴

Error: FournosJobFailureError: FOURNOS Job 'forge-mcp-gateway-20260803-081152' failed: Tasks Completed: 6 (Failed: 1, Cancelled 0), Skipped: 0

/test fournos mcp_gateway demo
/cluster avis-cluster
/pipeline forge-full
/test fournos mcp_gateway demo
/version 0.7.1

@openshift-ci

openshift-ci Bot commented Aug 3, 2026

Copy link
Copy Markdown

@ashtarkb: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/fournos d67fb22 link true /test fournos

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@kpouget

kpouget commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

I'll merge #136 soon, that will fix analyse_kpis

one thing you may want to do is to add a flag fail_on_regression: false, that avoid getting the 🔴 flag on regression failure. And we enable that only for CPT presets

@ashtarkb

ashtarkb commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator Author

@kpouget I think that this PR is good to be merged, the fail_on_regression: false may be added in another PR

@kpouget

kpouget commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

thanks Avi, let's merge this
/approve
/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 4, 2026
@openshift-ci

openshift-ci Bot commented Aug 4, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: kpouget

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 4, 2026
@openshift-merge-bot
openshift-merge-bot Bot merged commit 4a3bfb3 into openshift-psap:main Aug 4, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants