New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 918208 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 918210



Sign in to add a comment

New HistogramSet JSON format

Project Member Reported by benjhayden@chromium.org, Dec 28

Issue description

The HistogramSet JSON format could be much more efficient. Let's switch to a new format before TBMv3 launches so they only need to implement one format.

 * Remove sparse diagnostic guids
 * Intern histogram and diagnostic names
 * Use short object keys
 * Store sample values alongside their diagnostics
 * Combine nanDiagnosticMaps and numNans into a nanBin.

Steps:

 * Deploy a new *de*serializer to the chromeperf dashboard and results.html
 * Quantify the efficiency of the new format
 * Deploy the new serializer
 * Migrate existing data in the chromeperf datastore to the new format
 * Wait for users to upgrade existing results.html files
 * Remove old deserializer
 
Blocking: 918210
Is there a document specifying the new format? Something like https://chromium.googlesource.com/chromium/src/+/HEAD/docs/testing/json_test_results_format.md would be helpful.
It hasn't been finalized yet, but here's the design doc:
https://docs.google.com/document/d/1agEZc6CmYRgMGY_IVjUc2b56Hsq5HZPbsPZ4n3KwLJc/edit
Please feel free to comment on it. We can also discuss it at the next services weekly.
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/catapult/+/0df132fe0a47e137883277c68a631c7a428c1ae5

commit 0df132fe0a47e137883277c68a631c7a428c1ae5
Author: benshayden <benjhayden@chromium.org>
Date: Fri Jan 11 00:32:32 2019

Use HistogramSet.ImportDicts in PageTestResults.

PageTestResults allows clients to filter Histograms.
It deserializes the Histograms so that clients can use high-level APIs to access
diagnostics.
Currently, it deserializes the Histograms using Histogram.FromDict().
However, that API will soon be deprecated in favor of HistogramSet.ImportDicts.

This CL changes PageTestResults to use the more future-proof ImportDicts instead
of Histogram.FromDict.
This should have no visible effect. It just makes future work easier.

Bug: chromium:918208

Change-Id: I7eb1e739e717a6cfd3bb6d2980ae4d6046c9ccea
Reviewed-on: https://chromium-review.googlesource.com/c/1405391
Commit-Queue: Ben Hayden <benjhayden@chromium.org>
Reviewed-by: Caleb Rouleau <crouleau@chromium.org>

[modify] https://crrev.com/0df132fe0a47e137883277c68a631c7a428c1ae5/telemetry/telemetry/internal/results/page_test_results.py

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/db27da7fa66e91086096b2b6083870b2ddbe6d3f

commit db27da7fa66e91086096b2b6083870b2ddbe6d3f
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Fri Jan 11 03:26:46 2019

Roll src/third_party/catapult 0cc582388fa2..0df132fe0a47 (6 commits)

https://chromium.googlesource.com/catapult.git/+log/0cc582388fa2..0df132fe0a47


git log 0cc582388fa2..0df132fe0a47 --date=short --no-merges --format='%ad %ae %s'
2019-01-11 benjhayden@chromium.org Use HistogramSet.ImportDicts in PageTestResults.
2019-01-11 benjhayden@chromium.org Use storyTags instead of tagMap in update_test_suite_descriptors.
2019-01-10 benjhayden@chromium.org Use the HTMLImports polyfill
2019-01-10 benjhayden@chromium.org Fix request-base-test with polyfilled html imports.
2019-01-10 dtu@chromium.org [pinpoint] Remove old code for OOBS and Swarming/Isolate server migrations.
2019-01-10 eroman@chromium.org Add mattm to OWNERS for netlog_viewer.


Created with:
  gclient setdep -r src/third_party/catapult@0df132fe0a47

The AutoRoll server is located here: https://autoroll.skia.org/r/catapult-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG=chromium:918208,chromium:918218,chromium:867643
TBR=sullivan@chromium.org

Change-Id: I3ea68899d4f9fa4b5896f792ef2fc7f616cee8c2
Reviewed-on: https://chromium-review.googlesource.com/c/1406264
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#621888}
[modify] https://crrev.com/db27da7fa66e91086096b2b6083870b2ddbe6d3f/DEPS

Project Member

Comment 6 by bugdroid1@chromium.org, Jan 11

The following revision refers to this bug:
  https://chromium.googlesource.com/catapult/+/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c

commit 8dc09eb0703647db9ca37b26f2d01a0a4dc0285c
Author: benshayden <benjhayden@chromium.org>
Date: Fri Jan 11 22:28:03 2019

Truncate serialized floats in HistogramSet JSON.

JSON encodes floats in base 10 with up to 18 decimal digits.
HistogramSet JSON contains many floats: sample values and summary statistics.
Most of these decimal digits are insignificant and will never affect any
user-visible data. The number of significant decimal digits depends on the unit
and scale of the value.
This CL truncates sample values and summary statistics in order to save
memory/disk space without affecting user-visible data.

Bug: chromium:918208

Change-Id: Ie117e856e938565351a1ffced441f9e713f6eef6
Reviewed-on: https://chromium-review.googlesource.com/c/1403935
Reviewed-by: Sean McCullough <seanmccullough@chromium.org>
Commit-Queue: Ben Hayden <benjhayden@chromium.org>

[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/base/math/running_statistics_test.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/value/diagnostics/breakdown.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/base/math/math.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/metrics/rendering/cpu_utilization.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/base/unit.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/base/math/math_test.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/base/unit_test.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/base/math/running_statistics.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/value/histogram.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/value/diagnostics/related_event_set.html
[modify] https://crrev.com/8dc09eb0703647db9ca37b26f2d01a0a4dc0285c/tracing/tracing/value/histogram_test.html

Cc: kjharland@google.com
Project Member

Comment 8 by bugdroid1@chromium.org, Jan 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c9d39cb7402e371e19d1485f07270953c266d4cd

commit c9d39cb7402e371e19d1485f07270953c266d4cd
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Wed Jan 16 02:43:37 2019

Roll src/third_party/catapult 96320b515106..78448d90081e (17 commits)

https://chromium.googlesource.com/catapult.git/+log/96320b515106..78448d90081e


git log 96320b515106..78448d90081e --date=short --no-merges --format='%ad %ae %s'
2019-01-15 vollick@chromium.org Plumb the trace buffer size for atrace
2019-01-15 perezju@chromium.org Revert "[py_utils] Add modules_util.RequireVersion"
2019-01-15 taylori@google.com Fix handling of perfetto protobuf on mac
2019-01-15 perezju@chromium.org [dashboard] Remove dead code in start_try_job.py
2019-01-15 perezju@chromium.org Revert "Remove TagMap."
2019-01-15 perezju@chromium.org [Telemetry] Add list_of_scalar_values.mean
2019-01-15 dtu@chromium.org [pinpoint] Add Tags field to try job dialog.
2019-01-15 dtu@chromium.org [pinpoint] Ignore cached isolate hashes over 8 weeks old.
2019-01-14 eroman@chromium.org Fix import of new NetExport generated logs.
2019-01-14 bsheedy@chromium.org Fix gtest conversion multiplier
2019-01-14 eyaich@google.com Adding timeToFirstViewportReady metric
2019-01-14 perezju@chromium.org [py_utils] Add modules_util.RequireVersion
2019-01-14 perezju@chromium.org Remove GetNetworkData methods
2019-01-14 perezju@chromium.org [cli services] Add buildbucket_service
2019-01-14 perezju@chromium.org [Telemetry] Remove TBMv1 metrics.SmoothnessMetric
2019-01-11 benjhayden@chromium.org Remove TagMap.
2019-01-11 benjhayden@chromium.org Truncate serialized floats in HistogramSet JSON.


Created with:
  gclient setdep -r src/third_party/catapult@78448d90081e

The AutoRoll server is located here: https://autoroll.skia.org/r/catapult-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG=chromium:776709,chromium:777865,chromium:918218,chromium:921616,chromium:874940,chromium:916877, chromium:917273 ,chromium:921342,chromium:904879,chromium:776709,chromium:777865,chromium:480512, chromium:919093 , chromium:691581 ,chromium:921000,chromium:918218,chromium:918208
TBR=sullivan@chromium.org

Change-Id: I75c07d8719f5668f9b4a95a9757cf6c25412b547
Reviewed-on: https://chromium-review.googlesource.com/c/1413252
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#623062}
[modify] https://crrev.com/c9d39cb7402e371e19d1485f07270953c266d4cd/DEPS

Sign in to add a comment