50 lines
1.4 KiB
JavaScript
50 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);
|
|
});
|
|
};
|