Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Unified Diff: tracing/tracing/metrics/system_health/loading_metric.html

Issue 3009553002: Refactor Histogram relationship diagnostics. (Closed)
Patch Set: Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tracing/tracing/metrics/system_health/loading_metric.html
diff --git a/tracing/tracing/metrics/system_health/loading_metric.html b/tracing/tracing/metrics/system_health/loading_metric.html
index cea182e9964f7d74fa37507e1071abffc6431673..0e46e49f20be5ee30feefb31864414e140b0bf7c 100644
--- a/tracing/tracing/metrics/system_health/loading_metric.html
+++ b/tracing/tracing/metrics/system_health/loading_metric.html
@@ -220,11 +220,12 @@ tr.exportTo('tr.metrics.sh', function() {
const breakdownDiagnostic = createBreakdownDiagnostic(breakdownTree);
samples.push({
value: timeToFirstMeaningfulPaint,
+ breakdownTree,
diagnostics: {
- 'Breakdown of [navStart, FMP]': breakdownDiagnostic,
- 'Start': new RelatedEventSet(navigationStart),
- 'End': new RelatedEventSet(fmpMarkerEvent),
- 'Navigation infos': new tr.v.d.GenericSet([{
+ breakdown: breakdownDiagnostic,
+ start: new RelatedEventSet(navigationStart),
+ end: new RelatedEventSet(fmpMarkerEvent),
+ infos: new tr.v.d.GenericSet([{
url,
pid: rendererHelper.pid,
start: navigationStart.start,
@@ -253,11 +254,12 @@ tr.exportTo('tr.metrics.sh', function() {
const breakdownDiagnostic = createBreakdownDiagnostic(breakdownTree);
samples.push({
value: mainThreadCpuTime,
+ breakdownTree,
diagnostics: {
- 'Breakdown of [navStart, FMP]': breakdownDiagnostic,
- 'Start': new RelatedEventSet(navigationStart),
- 'End': new RelatedEventSet(fmpMarkerEvent),
- 'Navigation infos': new tr.v.d.GenericSet([{
+ breakdown: breakdownDiagnostic,
+ start: new RelatedEventSet(navigationStart),
+ end: new RelatedEventSet(fmpMarkerEvent),
+ infos: new tr.v.d.GenericSet([{
url,
pid: rendererHelper.pid,
start: navigationStart.start,
@@ -323,16 +325,17 @@ tr.exportTo('tr.metrics.sh', function() {
const timeToFirstInteractive = navStartToFirstInteractiveRange.duration;
samples.push({
value: timeToFirstInteractive,
+ breakdownTree,
diagnostics: {
- 'Start': new RelatedEventSet(navigationStart),
- 'Last long task': new RelatedEventSet(lastLongTaskEvent),
- 'Navigation infos': new tr.v.d.GenericSet([{
+ start: new RelatedEventSet(navigationStart),
+ lastLongTask: new RelatedEventSet(lastLongTaskEvent),
+ infos: new tr.v.d.GenericSet([{
url,
pid: rendererHelper.pid,
start: navigationStartTime,
interactive: firstInteractive,
}]),
- 'Breakdown of [navStart, Interactive]': breakdownDiagnostic,
+ breakdown: breakdownDiagnostic,
}
});
}
@@ -442,9 +445,36 @@ tr.exportTo('tr.metrics.sh', function() {
};
}
- function addSamplesToHistogram(samples, histogram) {
+ function addSamplesToHistogram(samples, histogram, histograms) {
+ const relatedHistograms = new Map();
for (const sample of samples) {
histogram.addSample(sample.value, sample.diagnostics);
+
+ if (!sample.breakdownTree) continue;
+ for (const [category, breakdown] of Object.entries(
+ sample.breakdownTree)) {
+ const relatedName = `${histogram.name}:${category}`;
+ let relatedHist = relatedHistograms.get(relatedName);
+ if (!relatedHist) {
+ relatedHist = histograms.createHistogram(
+ relatedName, histogram.unit, [], {
+ binBoundaries: FIRST_PAINT_BOUNDARIES,
+ summaryOptions: SUMMARY_OPTIONS,
+ });
+ relatedHistograms.set(relatedName, relatedHist);
+
+ let relatedNames = histogram.diagnostics.get('breakdown');
+ if (!relatedNames) {
+ relatedNames = new tr.v.d.RelatedNameMap();
+ histogram.diagnostics.set('breakdown', relatedNames);
+ }
+ relatedNames.set(category, relatedName);
+ }
+ relatedHist.addSample(breakdown.total, {
+ breakdown: tr.v.d.Breakdown.fromEntries(
+ Object.entries(breakdown.events)),
+ });
+ }
}
}
@@ -496,17 +526,26 @@ tr.exportTo('tr.metrics.sh', function() {
const samplesSet =
collectLoadingMetricsForRenderer(rendererHelper);
- addSamplesToHistogram(samplesSet.firstPaintSamples,
- firstPaintHistogram);
- addSamplesToHistogram(samplesSet.firstContentfulPaintSamples,
- firstContentfulPaintHistogram);
- addSamplesToHistogram(samplesSet.onLoadSamples, onLoadHistogram);
- addSamplesToHistogram(samplesSet.firstMeaningfulPaintSamples,
- firstMeaningfulPaintHistogram);
- addSamplesToHistogram(samplesSet.firstMeaningfulPaintCpuTimeSamples,
- firstMeaningfulPaintCpuTimeHistogram);
- addSamplesToHistogram(samplesSet.firstInteractiveSamples,
- firstInteractiveHistogram);
+ addSamplesToHistogram(
+ samplesSet.firstPaintSamples, firstPaintHistogram, histograms);
+ addSamplesToHistogram(
+ samplesSet.firstContentfulPaintSamples,
+ firstContentfulPaintHistogram,
+ histograms);
+ addSamplesToHistogram(
+ samplesSet.onLoadSamples, onLoadHistogram, histograms);
+ addSamplesToHistogram(
+ samplesSet.firstMeaningfulPaintSamples,
+ firstMeaningfulPaintHistogram,
+ histograms);
+ addSamplesToHistogram(
+ samplesSet.firstMeaningfulPaintCpuTimeSamples,
+ firstMeaningfulPaintCpuTimeHistogram,
+ histograms);
+ addSamplesToHistogram(
+ samplesSet.firstInteractiveSamples,
+ firstInteractiveHistogram,
+ histograms);
}
}

Powered by Google App Engine
This is Rietveld 408576698