Skip to content

Conversation

@scottn12
Copy link
Contributor

@scottn12 scottn12 commented Jan 28, 2026

Description

This PR updates the placeholder pipeline added in #26299. The new pipeline does the following:

  • Collects build metrics from ADO REST APIs for PR and internal builds
  • Generates an HTML dashboard deployed to an Azure Static Web App (ASWA) which includes:
    • Summary metrics (total builds, avg duration, trend analysis)
    • Duration trend charts over time
    • Stage and task duration breakdown charts
    • Tables of recent and longest builds, including links to the source commits/PRs
  • Will run on a daily schedule

Note: The pipeline must run in the public and internal projects to fetch PR build data and internal build data, respectively.

Next Steps/Other Considerations

  • In the pipeline, there are large blocks of embedded HTML/JS/Bash code. We may want to consider factoring those into separate files.
  • Create an aka.ms shortlink for the ASWA
  • Seek feedback from the team on what other metrics could be useful
  • Add automatic alerting if the build duration falls below a certain threshold (AB#55454)
  • It seems ADO only retains a limited number of PR builds. If possible, we should try to increase the limit.
  • Make ASWA only accessible internally
  • Consider adding an external data store (especially if we cannot increase the public build limit).

Example Screenshot (Outdated)

screenshot

Misc

AB#55451

@scottn12 scottn12 marked this pull request as ready for review January 29, 2026 15:42
Copilot AI review requested due to automatic review settings January 29, 2026 15:42
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR transforms a placeholder build performance observability pipeline into a functional monitoring solution. The pipeline collects build metrics from Azure DevOps REST APIs for both PR and internal builds, processes the data to generate comprehensive performance metrics, and deploys an interactive HTML dashboard to an Azure Static Web App.

Changes:

  • Added daily cron schedules (2 AM UTC for PR builds, 3 AM UTC for internal builds) with logic to ensure each schedule runs in the correct project
  • Implemented data collection via ADO REST APIs with parallel timeline fetching for performance
  • Created metrics processing using jq to generate aggregated statistics, duration trends, and stage/task breakdowns
  • Built an interactive dashboard with Chart.js visualizations, sortable tables, and tabbed navigation for PR vs internal builds

Copy link
Contributor

@alexvy86 alexvy86 left a comment

Choose a reason for hiding this comment

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

Didn't go through all the pipeline in detail, just a few suggestions.

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