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

Issue 629194 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: May 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Feature


Sign in to add a comment

Design and implement Metrics API

Project Member Reported by mef@chromium.org, Jul 18 2016

Issue description

Prototype UrlRequestMetrics API in Cronet needs to be converted into high-quality public API.

Here is non-exhaustive list of requirements.

- Expose information available in UrlRequest LoadTimingInfo.
- Decouple from NQE API.
- Provide information for BidirectionalStream API.

This is 
 

Comment 1 by mef@chromium.org, Jul 18 2016

Status: Assigned (was: Available)
This is meta-issue to track project progress.

Comment 2 by mef@chromium.org, Jul 18 2016

Labels: MetricsAPI

Comment 3 by mef@chromium.org, Jul 18 2016

Labels: -Type-Bug Type-Feature
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 2 2016

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

commit c53f6e90718d72da77e8c2f9804cd53b2c511a8f
Author: mgersh <mgersh@chromium.org>
Date: Tue Aug 02 15:58:58 2016

Move Cronet metrics-related classes into their own files

UrlRequestInfo becomes RequestFinishedInfo. Both RequestFinishedInfo and
UrlRequestMetrics move out of CronetEngine. This only moves code and
does not change any behavior, although existing embedders will need to
update.

BUG= 629194 

Review-Url: https://codereview.chromium.org/2204533002
Cr-Commit-Position: refs/heads/master@{#409201}

[modify] https://crrev.com/c53f6e90718d72da77e8c2f9804cd53b2c511a8f/components/cronet/android/BUILD.gn
[modify] https://crrev.com/c53f6e90718d72da77e8c2f9804cd53b2c511a8f/components/cronet/android/api/src/org/chromium/net/CronetEngine.java
[modify] https://crrev.com/c53f6e90718d72da77e8c2f9804cd53b2c511a8f/components/cronet/android/api/src/org/chromium/net/JavaCronetEngine.java
[add] https://crrev.com/c53f6e90718d72da77e8c2f9804cd53b2c511a8f/components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java
[delete] https://crrev.com/f1615358fb40347ba0df1e5bf0923fc6a3b5bdd3/components/cronet/android/api/src/org/chromium/net/RequestFinishedListener.java
[modify] https://crrev.com/c53f6e90718d72da77e8c2f9804cd53b2c511a8f/components/cronet/android/api/src/org/chromium/net/UrlRequest.java
[modify] https://crrev.com/c53f6e90718d72da77e8c2f9804cd53b2c511a8f/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
[modify] https://crrev.com/c53f6e90718d72da77e8c2f9804cd53b2c511a8f/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java
[rename] https://crrev.com/c53f6e90718d72da77e8c2f9804cd53b2c511a8f/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java

Blockedon: 635548
Blockedon: 637051
Project Member

Comment 7 by bugdroid1@chromium.org, Sep 16 2016

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

commit ee557cce67e828cc6f31fcef06480ab570ee6e7c
Author: mgersh <mgersh@chromium.org>
Date: Fri Sep 16 16:26:46 2016

Add API for new Cronet metrics

This API is not yet connected to anything in the net stack. Most of
these new metrics will be plumbed through from net::LoadTimingInfo, and
a few from other places.

Includes a unit test for the big mess of longs/Dates in
RequestFinishedInfo.Metrics, but no other tests yet because nothing
works yet.

Leaves the old APIs in place for now, since those actually work.

BUG= 629194 

Review-Url: https://codereview.chromium.org/2220023002
Cr-Commit-Position: refs/heads/master@{#419185}

[modify] https://crrev.com/ee557cce67e828cc6f31fcef06480ab570ee6e7c/components/cronet/android/BUILD.gn
[modify] https://crrev.com/ee557cce67e828cc6f31fcef06480ab570ee6e7c/components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java
[add] https://crrev.com/ee557cce67e828cc6f31fcef06480ab570ee6e7c/components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java
[modify] https://crrev.com/ee557cce67e828cc6f31fcef06480ab570ee6e7c/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
[modify] https://crrev.com/ee557cce67e828cc6f31fcef06480ab570ee6e7c/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java

Blockedon: 648346
Project Member

Comment 9 by bugdroid1@chromium.org, Sep 20 2016

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

commit 738d43b9110e96768a6d8803ca0bd2365a60daab
Author: mgersh <mgersh@chromium.org>
Date: Tue Sep 20 21:05:07 2016

Set TTFB and total request time from new CronetMetrics constructor

These are deprecated and will be removed soon, but for a while we'll
want to set them using the new way of collecting metrics.

BUG= 629194 

Review-Url: https://codereview.chromium.org/2350843005
Cr-Commit-Position: refs/heads/master@{#419851}

[modify] https://crrev.com/738d43b9110e96768a6d8803ca0bd2365a60daab/components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 5 2016

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

commit 6408523c44fd12383d385b02ba9aee872fe8618c
Author: mgersh <mgersh@chromium.org>
Date: Wed Oct 05 17:05:00 2016

Implement timing metrics for UrlRequest

This CL implements all of the timing APIs in
RequestFinishedInfo.Metrics, in most cases by plumbing them through from
net::LoadTimingInfo. Some of the old metrics code is no longer used and
will be deleted in a follow-up CL. Redirect handling and new features of
RequestFinishedInfo other than timing are not yet implemented.

BUG= 629194 

Review-Url: https://codereview.chromium.org/2351793003
Cr-Commit-Position: refs/heads/master@{#423194}

[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/cronet_url_request_adapter.cc
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/cronet_url_request_adapter.h
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 5 2016

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

commit 6408523c44fd12383d385b02ba9aee872fe8618c
Author: mgersh <mgersh@chromium.org>
Date: Wed Oct 05 17:05:00 2016

Implement timing metrics for UrlRequest

This CL implements all of the timing APIs in
RequestFinishedInfo.Metrics, in most cases by plumbing them through from
net::LoadTimingInfo. Some of the old metrics code is no longer used and
will be deleted in a follow-up CL. Redirect handling and new features of
RequestFinishedInfo other than timing are not yet implemented.

BUG= 629194 

Review-Url: https://codereview.chromium.org/2351793003
Cr-Commit-Position: refs/heads/master@{#423194}

[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/cronet_url_request_adapter.cc
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/cronet_url_request_adapter.h
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java

Comment 12 by mef@chromium.org, Oct 5 2016

Woo-hoo!

Comment 13 by mef@chromium.org, Oct 5 2016

Labels: -M-54 M-55
Blockedon: 653661
Project Member

Comment 18 by bugdroid1@chromium.org, Oct 7 2016

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

commit 1ad34d61a5dc3b4415c9448885a36e8f442b2c0b
Author: mgersh <mgersh@chromium.org>
Date: Fri Oct 07 16:11:28 2016

Rename RequestFinishedInfo.Metrics.getResponseEnd() to getRequestEnd()

The timestamp is available even when there is no response, so this name
makes more sense.

BUG= 629194 

Review-Url: https://codereview.chromium.org/2401933002
Cr-Commit-Position: refs/heads/master@{#423872}

[modify] https://crrev.com/1ad34d61a5dc3b4415c9448885a36e8f442b2c0b/components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java
[modify] https://crrev.com/1ad34d61a5dc3b4415c9448885a36e8f442b2c0b/components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java
[modify] https://crrev.com/1ad34d61a5dc3b4415c9448885a36e8f442b2c0b/components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java
[modify] https://crrev.com/1ad34d61a5dc3b4415c9448885a36e8f442b2c0b/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
[modify] https://crrev.com/1ad34d61a5dc3b4415c9448885a36e8f442b2c0b/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java
[modify] https://crrev.com/1ad34d61a5dc3b4415c9448885a36e8f442b2c0b/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
[modify] https://crrev.com/1ad34d61a5dc3b4415c9448885a36e8f442b2c0b/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 11 2016

Labels: merge-merged-2883
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aa4bd7168048a3684f5456fb19a50ad5333d1035

commit aa4bd7168048a3684f5456fb19a50ad5333d1035
Author: xunjieli <xunjieli@chromium.org>
Date: Tue Oct 11 17:52:08 2016

Rename RequestFinishedInfo.Metrics.getResponseEnd() to getRequestEnd()

The timestamp is available even when there is no response, so this name
makes more sense.

BUG= 629194 ,  653661 

TBR=mef@chromium.org
NOPRESUBMIT=true
NOTRY=true
Review-Url: https://codereview.chromium.org/2401933002
Cr-Commit-Position: refs/heads/master@{#423872}
(cherry picked from commit 1ad34d61a5dc3b4415c9448885a36e8f442b2c0b)

Review-Url: https://codereview.chromium.org/2410223002
Cr-Commit-Position: refs/branch-heads/2883@{#35}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java

Project Member

Comment 21 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6408523c44fd12383d385b02ba9aee872fe8618c

commit 6408523c44fd12383d385b02ba9aee872fe8618c
Author: mgersh <mgersh@chromium.org>
Date: Wed Oct 05 17:05:00 2016

Implement timing metrics for UrlRequest

This CL implements all of the timing APIs in
RequestFinishedInfo.Metrics, in most cases by plumbing them through from
net::LoadTimingInfo. Some of the old metrics code is no longer used and
will be deleted in a follow-up CL. Redirect handling and new features of
RequestFinishedInfo other than timing are not yet implemented.

BUG= 629194 

Review-Url: https://codereview.chromium.org/2351793003
Cr-Commit-Position: refs/heads/master@{#423194}

[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/cronet_url_request_adapter.cc
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/cronet_url_request_adapter.h
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java
[modify] https://crrev.com/6408523c44fd12383d385b02ba9aee872fe8618c/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java

Project Member

Comment 25 by bugdroid1@chromium.org, Oct 27 2016

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

commit aa4bd7168048a3684f5456fb19a50ad5333d1035
Author: xunjieli <xunjieli@chromium.org>
Date: Tue Oct 11 17:52:08 2016

Rename RequestFinishedInfo.Metrics.getResponseEnd() to getRequestEnd()

The timestamp is available even when there is no response, so this name
makes more sense.

BUG= 629194 ,  653661 

TBR=mef@chromium.org
NOPRESUBMIT=true
NOTRY=true
Review-Url: https://codereview.chromium.org/2401933002
Cr-Commit-Position: refs/heads/master@{#423872}
(cherry picked from commit 1ad34d61a5dc3b4415c9448885a36e8f442b2c0b)

Review-Url: https://codereview.chromium.org/2410223002
Cr-Commit-Position: refs/branch-heads/2883@{#35}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/test/javatests/src/org/chromium/net/BidirectionalStreamTest.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/test/javatests/src/org/chromium/net/MetricsTestUtil.java
[modify] https://crrev.com/aa4bd7168048a3684f5456fb19a50ad5333d1035/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java

Comment 26 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840

Comment 27 by mef@chromium.org, May 18 2017

Status: Fixed (was: Assigned)
The API has been implemented and available since M-56.

Sign in to add a comment