51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
|
import {
|
||
|
PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START,
|
||
|
PIPELINES_DETAIL_LINKS_MARK_CALCULATE_END,
|
||
|
PIPELINES_DETAIL_LINKS_MEASURE_CALCULATION,
|
||
|
PIPELINES_DETAIL_LINK_DURATION,
|
||
|
PIPELINES_DETAIL_LINKS_TOTAL,
|
||
|
PIPELINES_DETAIL_LINKS_JOB_RATIO,
|
||
|
} from '~/performance/constants';
|
||
|
|
||
|
import { performanceMarkAndMeasure } from '~/performance/utils';
|
||
|
import { reportPerformance } from '../graph_shared/api';
|
||
|
|
||
|
export const beginPerfMeasure = () => {
|
||
|
performanceMarkAndMeasure({ mark: PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START });
|
||
|
};
|
||
|
|
||
|
export const finishPerfMeasureAndSend = (numLinks, numGroups, metricsPath) => {
|
||
|
performanceMarkAndMeasure({
|
||
|
mark: PIPELINES_DETAIL_LINKS_MARK_CALCULATE_END,
|
||
|
measures: [
|
||
|
{
|
||
|
name: PIPELINES_DETAIL_LINKS_MEASURE_CALCULATION,
|
||
|
start: PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START,
|
||
|
},
|
||
|
],
|
||
|
});
|
||
|
|
||
|
window.requestAnimationFrame(() => {
|
||
|
const duration = window.performance.getEntriesByName(
|
||
|
PIPELINES_DETAIL_LINKS_MEASURE_CALCULATION,
|
||
|
)[0]?.duration;
|
||
|
|
||
|
if (!duration) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
const data = {
|
||
|
histograms: [
|
||
|
{ name: PIPELINES_DETAIL_LINK_DURATION, value: duration / 1000 },
|
||
|
{ name: PIPELINES_DETAIL_LINKS_TOTAL, value: numLinks },
|
||
|
{
|
||
|
name: PIPELINES_DETAIL_LINKS_JOB_RATIO,
|
||
|
value: numLinks / numGroups,
|
||
|
},
|
||
|
],
|
||
|
};
|
||
|
|
||
|
reportPerformance(metricsPath, data);
|
||
|
});
|
||
|
};
|