Skip to content

Reformat changepoint Slack message#94

Open
mohit-sheth wants to merge 5 commits intoredhat-performance:mainfrom
mohit-sheth:changepoint-visualization
Open

Reformat changepoint Slack message#94
mohit-sheth wants to merge 5 commits intoredhat-performance:mainfrom
mohit-sheth:changepoint-visualization

Conversation

@mohit-sheth
Copy link
Collaborator

Rewrites changepoint extraction and Slack notification to display all changepoints with clean formatting,
separate preview from full content, and fix multiple Slack rendering issues.

Changes

  1. Show all changepoints individually
    Each changepoint is now rendered as its own formatted block with separator bars, numbering (Changepoint 1 of
    2: metric: +X.XX%), version info, and PR list — instead of being joined into a single string that got
    truncated mid-way.

  2. Separate preview vs full content
    Preview (inline in Slack): shows 5 PRs per changepoint with ... and N more
    Full error log (file upload): contains all PRs with no character limit

  3. Fix Slack file rendering as "binary"
    Switched from io.BytesIO + .log to content= string + .txt so Slack recognizes the upload as text.

Before
image

After
image

Use the real step name (e.g. payload-control-plane-6nodes-openshift-qe-orion-udn-l3)
in the preview header instead of a generic description (e.g. orion changepoint detection
failure), since many different steps share the same keyword.

Signed-off-by: Mohit Sheth <msheth@redhat.com>
When a prow job failure is classified as an orion/changepoint issue,
display a clickable link to the changepoint visualization HTML in GCS
instead of the generic Error Logs Preview. The visualization URL is
constructed by probing the job's GCS artifacts directory for the
matching step subfolder and linking to the HTML file if present.

Also threads step_name through analyze_prow_artifacts return tuple so
callers can resolve the correct artifact path, and extracts duplicated
failure_desc logic into a shared helper.

Signed-off-by: Mohit Sheth <msheth@redhat.com>
…ation, and Slack fixes

Show all changepoints individually with separator bars, numbering, regressed
metrics in title, and version info. Separate preview (5 PRs with truncation)
from full error log file (all PRs, no char limit). Fix Slack file rendering
as binary and "file not found" race condition. Merge viz link into preview
header to reduce thread messages. Ensure full error log appears just before
job history in thread order.

Signed-off-by: Mohit Sheth <msheth@redhat.com>
…edTuple

Replace the 6-element positional tuple with a ProwAnalysisResult NamedTuple
using keyword construction at all return sites. Improves readability and
makes field ordering errors less likely across the 6 return paths.

Signed-off-by: Mohit Sheth <msheth@redhat.com>
@vishnuchalla
Copy link
Collaborator

@mohit-sheth also buildURL for the change points please.

@mohit-sheth
Copy link
Collaborator Author

image @vishnuchalla added, thanks!

@mohit-sheth mohit-sheth force-pushed the changepoint-visualization branch from 82b0ad5 to e61a51c Compare February 27, 2026 17:33
When a changepoint is detected, insert the prow build URL after each
"Previous:" version line in the full error log file uploaded to Slack.
@mohit-sheth mohit-sheth force-pushed the changepoint-visualization branch from e61a51c to 8887238 Compare March 2, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants