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

Issue 677158 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Add effective connection type change events to the system profile proto

Project Member Reported by tbansal@chromium.org, Dec 27 2016

Issue description

Add effective connection type change events to the system profile proto. This will make it easier to breakdown the UMA metrics based on the network quality.
 
Cc: tbansal@chromium.org bengr@chromium.org
 Issue 663892  has been merged into this issue.
Components: Internals>Metrics
Hi,I have a question. Now, the module about NQE has been used in chromium, or is a experimental technology.
NQE is being used in Chromium, so it is no longer experimental.

Comment 5 Deleted

I am interested in the NQE module. Recently I checked the chromium codes, I found the function enableNetworkQualityEstimator in CronetEngine.java is the switch of NQE, but only the test file invoking it. This replies that NQE is in use? 
To enable NQE you need to do 3 things:
(1) Create an NQE object
(2) Set NQE on UrlRequestContext (see https://cs.chromium.org/chromium/src/chrome/browser/io_thread.cc?rcl=0&l=901)
(3) Set NQE as a socket performance watcher factory on the Http Network Session params (see https://cs.chromium.org/chromium/src/chrome/browser/profiles/profile_io_data.cc?rcl=1484065239&l=1279).

For embedders that want to use Cronet, they need to explicitly call enableNetworkQualityEstimator() which automatically does all the 3 steps above.

Thank you for you answer. I am developing a browser core based on chromium. Now I will invoke this function to enable the network quality estimator.Thank you.
NQE can check the network connection type according to the rtt threshold and throughput threshold. But the thresholds are not defined. I know the standard is difficult to fix.
Thank you for you answers!
Project Member

Comment 10 by bugdroid1@chromium.org, Jan 11 2017

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

commit 9b3dd2bc8783876fdf3d9e242b4240a3537d19e2
Author: tbansal <tbansal@chromium.org>
Date: Wed Jan 11 06:12:59 2017

Add EffectiveConnectionType enum to the system profile proto

Value of the EffectiveConnectionType enum is provided by the
NetworkMetricsProvider.

A new class EffectiveConnectionTypeObserver has been added which listens
to the changes in the EffectiveConnectionType, and lives on the same
thread as the NetworkQualityEstimator.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester

BUG= 677158 

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

[modify] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/chrome/browser/BUILD.gn
[modify] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/chrome/browser/metrics/chrome_metrics_service_client.cc
[add] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/chrome/browser/metrics/network_quality_estimator_provider_impl.cc
[add] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/chrome/browser/metrics/network_quality_estimator_provider_impl.h
[modify] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/components/metrics/BUILD.gn
[modify] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/components/metrics/net/DEPS
[modify] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/components/metrics/net/network_metrics_provider.cc
[modify] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/components/metrics/net/network_metrics_provider.h
[add] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/components/metrics/net/network_metrics_provider_unittest.cc
[modify] https://crrev.com/9b3dd2bc8783876fdf3d9e242b4240a3537d19e2/components/metrics/proto/system_profile.proto

Thresholds are hard-coded here: https://cs.chromium.org/chromium/src/net/nqe/network_quality_estimator_params.cc?rcl=0&l=257, although they can be overridden using field trials. For your case, you can pass in an empty map (|variation_params|) to NQE's constructor. In that case, it will use the hard-coded thresholds.
Labels: M-57
Status: Fixed (was: Started)
Components: Internals>Network>NetworkQuality
Labels: -nqe

Sign in to add a comment