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

Issue 3009553002: Refactor Histogram relationship diagnostics. (Closed)

Created:
3 years, 4 months ago by benjhayden
Modified:
3 years, 2 months ago
Reviewers:
CC:
catapult-reviews_chromium.org, tracing-review_chromium.org
Target Ref:
refs/heads/master
Project:
catapult
Visibility:
Public.

Description

Refactor Histogram relationship diagnostics. Demos: http://www/~benjhayden/3009553002.html http://www/~benjhayden/3009553002-loading.html SPLIT - add RelatedNameMap - add support for RelatedNameMap to breakdown-span, HistogramSet, <what else?> - add documentation for RelatedNameMap - add Breakdowns to memoryMetric - add Breakdowns to loadingMetric - add Breakdowns to <what other metrics?> - translate existing RelatedHistogramMap/Breakdowns to RelatedNameMaps - remove support for RelatedHistogramMap/Breakdowns - remove RelatedHistogramMap/Breakdowns - remove documentation for RelatedHistogramMap/Breakdowns - refactor HistogramSet to map from name to set of histograms Currently, Histogram relationships are encoded as RelatedHistogramMap and RelatedHistogramBreakdown diagnostics. RelatedHistogramBreakdown is a histogram-level analog to the sample-level Breakdown diagnostic, but there is no encoded relationship between them. RelatedHistogramBreakdown is a subclass of RelatedHistogramMap. RelatedHistogramMap uses UUIDs to refer to related Histograms directly. Merging Histogram relationship diagnostics is very complex. There are not actually any uses that require Histograms to be related directly (via guid). All known uses of Histogram relationships actually care only about the names of related Histograms. Metric authors think of relationships as being between histogram names, not between histogram objects. The "relatedNames" diagnostic name is reserved for a GenericSet synthesized from RelatedHistogramMaps and RelatedHistogramBreakdowns. breakdown-span visualizes both Breakdowns and RelatedHistogramBreakdowns. The only difference between them is that RelatedHistogramBreakdowns are visualized as links which, when clicked, send the names of the related Histograms up to the histogram-set-table in an event so the table can filter out unrelated rows. Breakdown-span cannot linkify Breakdowns. The distinction between RHBs and Breakdowns is an architectural wart. There should be a single way for metrics to encode sample breakdowns, and its visualization should be linkable. This CL replaces RelatedHistogramMap and RelatedHistogramBreakdown with RelatedNameMap, which is a Map from string key to a Histogram name. RelatedNameMaps could be visualized as a set of analysis-links, but don't need to be since breakdown-span produces those analysis-links by correlating Breakdown entries with RelatedNameMaps. When metrics create RelatedNameMaps directly, there is no need for "relatedNames" or addRelatedNames(). Merging RelatedNameMaps is 2 orders of magnitude simpler than RelatedHistogramMap/Breakdown. BUG=catapult:#3761

Patch Set 1 #

Patch Set 2 : . #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : test #

Patch Set 7 : . #

Patch Set 8 : . #

Patch Set 9 : . #

Patch Set 10 : . #

Patch Set 11 : . #

Patch Set 12 : #

Patch Set 13 : #

Patch Set 14 : #

Patch Set 15 : loadingMetric (46 files changed, 580 insertions, 1244 deletions) #

Patch Set 16 : #

Patch Set 17 : #

Patch Set 18 : 47 files changed, 621 insertions, 1263 deletions #

Patch Set 19 : #

Patch Set 20 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+694 lines, -1463 lines) Patch
M docs/histogram-set-json-format.md View 1 2 3 4 5 6 7 3 chunks +5 lines, -17 lines 0 comments Download
M docs/how-to-write-metrics.md View 1 2 3 2 chunks +5 lines, -20 lines 0 comments Download
M docs/metrics-results-ui.md View 1 1 chunk +0 lines, -5 lines 0 comments Download
M tracing/trace_viewer.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +1 line, -5 lines 0 comments Download
M tracing/tracing/extras/chrome/chrome_user_friendly_category_driver.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 4 chunks +22 lines, -5 lines 0 comments Download
M tracing/tracing/metrics/system_health/expected_queueing_time_metric.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +12 lines, -8 lines 0 comments Download
M tracing/tracing/metrics/system_health/loading_metric.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 chunks +63 lines, -24 lines 0 comments Download
M tracing/tracing/metrics/system_health/long_tasks_metric.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +57 lines, -51 lines 0 comments Download
M tracing/tracing/metrics/system_health/long_tasks_metric_test.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -31 lines 0 comments Download
M tracing/tracing/metrics/system_health/memory_metric.html View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +38 lines, -10 lines 0 comments Download
M tracing/tracing/metrics/v8/runtime_stats_metric.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +3 lines, -6 lines 0 comments Download
M tracing/tracing/ui/side_panel/metrics_side_panel.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -1 line 0 comments Download
D tracing/tracing/value/diagnostics/add_related_names.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -41 lines 0 comments Download
D tracing/tracing/value/diagnostics/add_related_names_test.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -30 lines 0 comments Download
M tracing/tracing/value/diagnostics/all_diagnostics.html View 1 2 1 chunk +1 line, -2 lines 0 comments Download
M tracing/tracing/value/diagnostics/breakdown.html View 1 2 4 chunks +17 lines, -14 lines 0 comments Download
M tracing/tracing/value/diagnostics/diagnostic_map.html View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +3 lines, -33 lines 0 comments Download
M tracing/tracing/value/diagnostics/diagnostic_map_test.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 8 chunks +9 lines, -24 lines 0 comments Download
D tracing/tracing/value/diagnostics/histogram_ref.html View 1 2 1 chunk +0 lines, -23 lines 0 comments Download
D tracing/tracing/value/diagnostics/related_histogram_breakdown.html View 1 1 chunk +0 lines, -140 lines 0 comments Download
D tracing/tracing/value/diagnostics/related_histogram_breakdown_test.html View 1 1 chunk +0 lines, -83 lines 0 comments Download
D tracing/tracing/value/diagnostics/related_histogram_map.html View 1 1 chunk +0 lines, -172 lines 0 comments Download
A tracing/tracing/value/diagnostics/related_name_map.html View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +99 lines, -0 lines 0 comments Download
M tracing/tracing/value/diagnostics/reserved_infos.py View 1 2 3 4 5 1 chunk +0 lines, -2 lines 0 comments Download
M tracing/tracing/value/diagnostics/reserved_names.html View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -2 lines 0 comments Download
M tracing/tracing/value/diagnostics/tag_map.html View 1 2 1 chunk +0 lines, -2 lines 0 comments Download
M tracing/tracing/value/diagnostics/unmergeable_diagnostic_set.html View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -17 lines 0 comments Download
M tracing/tracing/value/histogram.html View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -14 lines 0 comments Download
M tracing/tracing/value/histogram.py View 1 2 3 4 5 6 7 3 chunks +0 lines, -88 lines 0 comments Download
M tracing/tracing/value/histogram_set.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +13 lines, -45 lines 0 comments Download
M tracing/tracing/value/histogram_set.py View 1 2 1 chunk +0 lines, -12 lines 0 comments Download
M tracing/tracing/value/histogram_set_hierarchy.html View 1 2 3 4 5 6 7 8 9 4 chunks +6 lines, -75 lines 0 comments Download
M tracing/tracing/value/histogram_set_test.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +0 lines, -74 lines 0 comments Download
M tracing/tracing/value/histogram_set_unittest.py View 1 2 1 chunk +0 lines, -47 lines 0 comments Download
M tracing/tracing/value/histogram_unittest.py View 1 2 4 chunks +4 lines, -19 lines 0 comments Download
M tracing/tracing/value/merge_histograms_cmdline.html View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -2 lines 0 comments Download
M tracing/tracing/value/ui/breakdown_span.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 9 chunks +117 lines, -93 lines 0 comments Download
M tracing/tracing/value/ui/breakdown_span_test.html View 1 2 3 4 5 3 chunks +58 lines, -33 lines 0 comments Download
M tracing/tracing/value/ui/diagnostic_map_table.html View 1 2 3 4 5 6 7 8 9 5 chunks +19 lines, -25 lines 0 comments Download
M tracing/tracing/value/ui/diagnostic_span.html View 1 2 3 4 5 6 7 8 9 2 chunks +2 lines, -3 lines 0 comments Download
M tracing/tracing/value/ui/diagnostic_span_behavior.html View 2 chunks +9 lines, -1 line 0 comments Download
M tracing/tracing/value/ui/histogram_set_table.html View 1 2 3 4 5 6 7 8 9 2 chunks +10 lines, -9 lines 0 comments Download
M tracing/tracing/value/ui/histogram_set_table_cell.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +7 lines, -6 lines 0 comments Download
M tracing/tracing/value/ui/histogram_set_table_row.html View 1 2 3 4 5 6 7 8 9 3 chunks +5 lines, -3 lines 0 comments Download
M tracing/tracing/value/ui/histogram_set_table_test.html View 1 2 3 4 5 6 7 4 chunks +14 lines, -14 lines 0 comments Download
M tracing/tracing/value/ui/histogram_span.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 8 chunks +26 lines, -27 lines 0 comments Download
M tracing/tracing/value/ui/histogram_span_test.html View 1 2 chunks +3 lines, -7 lines 0 comments Download
D tracing/tracing/value/ui/related_histogram_map_span.html View 1 1 chunk +0 lines, -62 lines 0 comments Download
D tracing/tracing/value/ui/related_histogram_map_span_test.html View 1 1 chunk +0 lines, -35 lines 0 comments Download
A tracing/tracing/value/ui/related_name_map_span.html View 1 2 1 chunk +34 lines, -0 lines 0 comments Download
A tracing/tracing/value/ui/related_name_map_span_test.html View 1 2 1 chunk +26 lines, -0 lines 0 comments Download
M tracing/tracing/value/ui/scalar_span.html View 1 2 3 4 5 6 7 8 9 10 1 chunk +3 lines, -0 lines 0 comments Download
M tracing/tracing/value/ui/unmergeable_diagnostic_set_span_test.html View 1 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 9 (9 generated)
benjhayden
Description was changed from ========== Subsume histogram relationships into Breakdown. BUG=catapult:#3761 ========== to ========== Refactor ...
3 years, 4 months ago (2017-08-25 05:55:41 UTC) #1
benjhayden
Description was changed from ========== Refactor Histogram relationship diagnostics. Currently, Histogram relationships are encoded as ...
3 years, 4 months ago (2017-08-25 06:08:06 UTC) #2
benjhayden
Description was changed from ========== Refactor Histogram relationship diagnostics. Currently, Histogram relationships are encoded as ...
3 years, 4 months ago (2017-08-25 06:09:17 UTC) #3
benjhayden
Description was changed from ========== Refactor Histogram relationship diagnostics. Currently, Histogram relationships are encoded as ...
3 years, 4 months ago (2017-08-25 06:16:02 UTC) #4
benjhayden
Description was changed from ========== Refactor Histogram relationship diagnostics. Currently, Histogram relationships are encoded as ...
3 years, 4 months ago (2017-08-25 06:16:26 UTC) #5
benjhayden
Description was changed from ========== Refactor Histogram relationship diagnostics. Currently, Histogram relationships are encoded as ...
3 years, 3 months ago (2017-09-12 06:19:35 UTC) #6
benjhayden
Description was changed from ========== Refactor Histogram relationship diagnostics. SPLIT - add RelatedNameMap - add ...
3 years, 3 months ago (2017-09-12 06:34:07 UTC) #7
benjhayden
Description was changed from ========== Refactor Histogram relationship diagnostics. http://www/~benjhayden/3009553002.html SPLIT - add RelatedNameMap - ...
3 years, 3 months ago (2017-09-12 16:49:31 UTC) #8
benjhayden
3 years, 3 months ago (2017-09-12 21:24:40 UTC) #9
Description was changed from

==========
Refactor Histogram relationship diagnostics.

http://www/~benjhayden/3009553002.html

SPLIT
- add RelatedNameMap
- add support for RelatedNameMap to breakdown-span, HistogramSet, <what else?>
- add documentation for RelatedNameMap
- add Breakdowns to memoryMetric
- add Breakdowns to loadingMetric
- add Breakdowns to <what other metrics?>
- translate existing RelatedHistogramMap/Breakdowns to RelatedNameMaps
- remove support for RelatedHistogramMap/Breakdowns
- remove RelatedHistogramMap/Breakdowns
- remove documentation for RelatedHistogramMap/Breakdowns
- refactor HistogramSet to map from name to set of histograms

Currently, Histogram relationships are encoded as RelatedHistogramMap and 
RelatedHistogramBreakdown diagnostics.
RelatedHistogramBreakdown is a histogram-level analog to the sample-level
Breakdown diagnostic, but there is no encoded relationship between them.
RelatedHistogramBreakdown is a subclass of RelatedHistogramMap.
RelatedHistogramMap uses UUIDs to refer to related Histograms directly.

Merging Histogram relationship diagnostics is very complex.

There are not actually any uses that require Histograms to be related
directly (via guid). All known uses of Histogram relationships actually care
only
about the names of related Histograms.
Metric authors think of relationships as being between histogram names, not
between
histogram objects.

The "relatedNames" diagnostic name is reserved for a GenericSet synthesized from
RelatedHistogramMaps and RelatedHistogramBreakdowns.

breakdown-span visualizes both Breakdowns and RelatedHistogramBreakdowns. The
only
difference between them is that RelatedHistogramBreakdowns are visualized as
links
which, when clicked, send the names of the related Histograms up to the
histogram-set-table in an event so the table can filter out unrelated rows.
Breakdown-span cannot linkify Breakdowns.

The distinction between RHBs and Breakdowns is an architectural wart.
There should be a single way for metrics to encode sample breakdowns, and its
visualization should be linkable.

This CL replaces RelatedHistogramMap and RelatedHistogramBreakdown with
RelatedNameMap, which is a Map from string key to a Histogram name.
RelatedNameMaps could be visualized as a set of analysis-links, but don't need
to
be since breakdown-span produces those analysis-links by correlating Breakdown
entries with RelatedNameMaps.

When metrics create RelatedNameMaps directly, there is no need for
"relatedNames"
or addRelatedNames().

Merging RelatedNameMaps is 2 orders of magnitude simpler than
RelatedHistogramMap/Breakdown.

BUG=catapult:#3761
==========

to

==========
Refactor Histogram relationship diagnostics.

Demos:
http://www/~benjhayden/3009553002.html
http://www/~benjhayden/3009553002-loading.html

SPLIT
- add RelatedNameMap
- add support for RelatedNameMap to breakdown-span, HistogramSet, <what else?>
- add documentation for RelatedNameMap
- add Breakdowns to memoryMetric
- add Breakdowns to loadingMetric
- add Breakdowns to <what other metrics?>
- translate existing RelatedHistogramMap/Breakdowns to RelatedNameMaps
- remove support for RelatedHistogramMap/Breakdowns
- remove RelatedHistogramMap/Breakdowns
- remove documentation for RelatedHistogramMap/Breakdowns
- refactor HistogramSet to map from name to set of histograms

Currently, Histogram relationships are encoded as RelatedHistogramMap and 
RelatedHistogramBreakdown diagnostics.
RelatedHistogramBreakdown is a histogram-level analog to the sample-level
Breakdown diagnostic, but there is no encoded relationship between them.
RelatedHistogramBreakdown is a subclass of RelatedHistogramMap.
RelatedHistogramMap uses UUIDs to refer to related Histograms directly.

Merging Histogram relationship diagnostics is very complex.

There are not actually any uses that require Histograms to be related
directly (via guid). All known uses of Histogram relationships actually care
only
about the names of related Histograms.
Metric authors think of relationships as being between histogram names, not
between
histogram objects.

The "relatedNames" diagnostic name is reserved for a GenericSet synthesized from
RelatedHistogramMaps and RelatedHistogramBreakdowns.

breakdown-span visualizes both Breakdowns and RelatedHistogramBreakdowns. The
only
difference between them is that RelatedHistogramBreakdowns are visualized as
links
which, when clicked, send the names of the related Histograms up to the
histogram-set-table in an event so the table can filter out unrelated rows.
Breakdown-span cannot linkify Breakdowns.

The distinction between RHBs and Breakdowns is an architectural wart.
There should be a single way for metrics to encode sample breakdowns, and its
visualization should be linkable.

This CL replaces RelatedHistogramMap and RelatedHistogramBreakdown with
RelatedNameMap, which is a Map from string key to a Histogram name.
RelatedNameMaps could be visualized as a set of analysis-links, but don't need
to
be since breakdown-span produces those analysis-links by correlating Breakdown
entries with RelatedNameMaps.

When metrics create RelatedNameMaps directly, there is no need for
"relatedNames"
or addRelatedNames().

Merging RelatedNameMaps is 2 orders of magnitude simpler than
RelatedHistogramMap/Breakdown.

BUG=catapult:#3761
==========

Powered by Google App Engine
This is Rietveld 408576698