Skip to content

Commit

Permalink
Add links from Perfherder's Alerts View to PerfCompare (#8244)
Browse files Browse the repository at this point in the history
* Add links to PerfCompare in Alerts View

* Correct function names
  • Loading branch information
beatrice-acasandrei authored Oct 14, 2024
1 parent b3e21c4 commit ae3da6e
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 50 deletions.
44 changes: 44 additions & 0 deletions ui/helpers/url.js
Original file line number Diff line number Diff line change
Expand Up @@ -166,3 +166,47 @@ export const updateQueryParams = function updateHistoryWithQueryParams(

export const getPernoscoURL = (taskId) =>
`https://pernos.co/self-service-api/mozilla/${taskId}/self-service.html`;

export const getPerfCompareBaseURL = function getOldCompareWithBaseViewURL(
originalProject,
originalRevision,
newProject,
newRevision,
framework,
) {
return `https://perf.compare/compare-results?baseRev=${originalRevision}&baseRepo=${originalProject}&newRev=${newRevision}&newRepo=${newProject}&framework=${framework}`;
};

export const getPerfCompareBaseSubtestsURL = function getPerfCompareBaseSubtestsURL(
originalProject,
originalRevision,
newProject,
newRevision,
framework,
originalSignature,
newSignature,
) {
return `https://perf.compare/subtests-compare-results?baseRev=${originalRevision}&baseRepo=${originalProject}&newRev=${newRevision}&newRepo=${newProject}&framework=${framework}&baseParentSignature=${originalSignature}&newParentSignature=${newSignature}`;
};

export const getPerfCompareOvertimeURL = function getPerfCompareOvertimeURL(
originalProject,
newProject,
newRevision,
framework,
timeRange,
) {
return `https://perf.compare/compare-over-time-results?baseRepo=${originalProject}&selectedTimeRange=${timeRange}&newRev=${newRevision}&newRepo=${newProject}&framework=${framework}`;
};

export const getPerfCompareOvertimeSubtestsURL = function getPerfCompareOvertimeSubtestsURL(
originalProject,
newProject,
newRevision,
framework,
timeRange,
originalSignature,
newSignature,
) {
return `https://perf.compare/subtests-compare-over-time-results?baseRepo=${originalProject}&newRev=${newRevision}&newRepo=${newProject}&framework=${framework}&selectedTimeRange=${timeRange}&baseParentSignature=${originalSignature}&newParentSignature=${newSignature}`;
};
17 changes: 16 additions & 1 deletion ui/perfherder/alerts/AlertHeader.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
Col,
} from 'reactstrap';

import { getJobsUrl } from '../../helpers/url';
import { getJobsUrl, getPerfCompareBaseURL } from '../../helpers/url';
import { toMercurialShortDateStr } from '../../helpers/display';
import SimpleTooltip from '../../shared/SimpleTooltip';

Expand Down Expand Up @@ -58,6 +58,21 @@ const AlertHeader = ({
tooltipText="Alert Summary created"
/>
</Row>
<Row className="m-0 px-0 py-0">
<a
href={getPerfCompareBaseURL(
alertSummary.repository,
alertSummary.prev_push_revision,
alertSummary.repository,
alertSummary.revision,
alertSummary.framework,
)}
target="_blank"
rel="noopener noreferrer"
>
PerfCompare comparison
</a>
</Row>
</Col>
<Col className="p-0" xs="auto">
<UncontrolledDropdown tag="span">
Expand Down
61 changes: 12 additions & 49 deletions ui/perfherder/compare/CompareTableView.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,14 @@ import {
} from '../perf-helpers/constants';
import ErrorBoundary from '../../shared/ErrorBoundary';
import { getData } from '../../helpers/http';
import { createApiUrl, createQueryParams } from '../../helpers/url';
import {
createApiUrl,
createQueryParams,
getPerfCompareBaseURL,
getPerfCompareOvertimeURL,
getPerfCompareBaseSubtestsURL,
getPerfCompareOvertimeSubtestsURL,
} from '../../helpers/url';
import {
getFrameworkData,
scrollWithOffset,
Expand All @@ -29,50 +36,6 @@ import RevisionInformation from '../../shared/RevisionInformation';
import CompareTableControls from './CompareTableControls';
import NoiseTable from './NoiseTable';

export const getPerfCompareCompareBaseURL = function getOldCompareWithBaseViewURL(
originalProject,
originalRevision,
newProject,
newRevision,
framework,
) {
return `https://perf.compare/compare-results?baseRev=${originalRevision}&baseRepo=${originalProject}&newRev=${newRevision}&newRepo=${newProject}&framework=${framework}`;
};

export const getPerfCompareCompareBaseSubtestsURL = function getPerfCompareCompareBaseSubtestsURL(
originalProject,
originalRevision,
newProject,
newRevision,
framework,
originalSignature,
newSignature,
) {
return `https://perf.compare/subtests-compare-results?baseRev=${originalRevision}&baseRepo=${originalProject}&newRev=${newRevision}&newRepo=${newProject}&framework=${framework}&baseParentSignature=${originalSignature}&newParentSignature=${newSignature}`;
};

export const getPerfCompareCompareOvertimeURL = function getPerfCompareCompareOvertimeURL(
originalProject,
newProject,
newRevision,
framework,
timeRange,
) {
return `https://perf.compare/compare-over-time-results?baseRepo=${originalProject}&selectedTimeRange=${timeRange}&newRev=${newRevision}&newRepo=${newProject}&framework=${framework}`;
};

export const getPerfCompareCompareOvertimeSubtestsURL = function getPerfCompareCompareOvertimeSubtestsURL(
originalProject,
newProject,
newRevision,
framework,
timeRange,
originalSignature,
newSignature,
) {
return `https://perf.compare/subtests-compare-over-time-results?baseRepo=${originalProject}&newRev=${newRevision}&newRepo=${newProject}&framework=${framework}&selectedTimeRange=${timeRange}&baseParentSignature=${originalSignature}&newParentSignature=${newSignature}`;
};

export default class CompareTableView extends React.Component {
constructor(props) {
super(props);
Expand Down Expand Up @@ -316,7 +279,7 @@ export default class CompareTableView extends React.Component {
if (originalRevision) {
// compare with base url
perfCompareURL = hasSubtests
? getPerfCompareCompareBaseSubtestsURL(
? getPerfCompareBaseSubtestsURL(
originalProject,
originalRevision,
newProject,
Expand All @@ -325,7 +288,7 @@ export default class CompareTableView extends React.Component {
originalSignature,
newSignature,
)
: getPerfCompareCompareBaseURL(
: getPerfCompareBaseURL(
originalProject,
originalRevision,
newProject,
Expand All @@ -335,7 +298,7 @@ export default class CompareTableView extends React.Component {
} else if (timeRange) {
// compareOverTime URL
perfCompareURL = hasSubtests
? getPerfCompareCompareOvertimeSubtestsURL(
? getPerfCompareOvertimeSubtestsURL(
originalProject,
newProject,
newRevision,
Expand All @@ -344,7 +307,7 @@ export default class CompareTableView extends React.Component {
originalSignature,
newSignature,
)
: getPerfCompareCompareOvertimeURL(
: getPerfCompareOvertimeURL(
originalProject,
newProject,
newRevision,
Expand Down

0 comments on commit ae3da6e

Please sign in to comment.