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

Issue 693676 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 2017
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Refactor MetricsService to allow more code reuse between UMA and UKM/Rappor

Project Member Reported by holte@chromium.org, Feb 17 2017

Issue description

Break MetricsService logic into smaller more independent pieces, to allow more code reuse between UMA and UKM/Rappor.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Feb 23 2017

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

commit 1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee
Author: holte <holte@chromium.org>
Date: Thu Feb 23 00:22:28 2017

Gather stability prefs into managing objects.

This collects code reading and writing stability prefs from
MetricsLog and MetricsService into StabilityMetricsProvider
and EnvironmentRecorder objects.

Also removes the obsolete stability prefs which are now unneeded.

BUG= 693676 

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

[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/BUILD.gn
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/clean_exit_beacon.cc
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/clean_exit_beacon.h
[add] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/environment_recorder.cc
[add] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/environment_recorder.h
[add] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/environment_recorder_unittest.cc
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/metrics_log.cc
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/metrics_log.h
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/metrics_log_unittest.cc
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/metrics_pref_names.cc
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/metrics_pref_names.h
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/metrics_service.cc
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/metrics_service.h
[modify] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/metrics_service_unittest.cc
[add] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/stability_metrics_provider.cc
[add] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/stability_metrics_provider.h
[add] https://crrev.com/1bf273c8b89a8809183f6a6c93ebc1a1b935a8ee/components/metrics/stability_metrics_provider_unittest.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Feb 23 2017

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

commit ade6fdf493bec82b248ad76bc1d378f5d3ea99e4
Author: holte <holte@chromium.org>
Date: Thu Feb 23 02:42:39 2017

Split a MetricsLogStore object out of MetricsLogManager.

The MetricsLogStore handles all serialized logs, while MetricsLogManager
handles logs which are still being produced.

Creates a LogStore interface for MetricsLogStore and PersistedLogs to
implement.  This will simplify creating a ReportingService that can be reused
by both UKM and UMA.

No functional changes intended.

BUG= 693676 

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

[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/BUILD.gn
[add] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/log_store.h
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/metrics_log_manager.cc
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/metrics_log_manager.h
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/metrics_log_manager_unittest.cc
[add] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/metrics_log_store.cc
[add] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/metrics_log_store.h
[add] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/metrics_log_store_unittest.cc
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/metrics_service.cc
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/metrics_service.h
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/metrics_service_unittest.cc
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/persisted_logs.cc
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/persisted_logs.h
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/persisted_logs_metrics.h
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/persisted_logs_metrics_impl.cc
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/persisted_logs_metrics_impl.h
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/metrics/persisted_logs_unittest.cc
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/ukm/persisted_logs_metrics_impl.cc
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/ukm/persisted_logs_metrics_impl.h
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/ukm/ukm_service.cc
[modify] https://crrev.com/ade6fdf493bec82b248ad76bc1d378f5d3ea99e4/components/ukm/ukm_service_unittest.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 8 2017

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

commit 4ae63f527eab99ac2d363f6605ef699065d5e180
Author: holte <holte@chromium.org>
Date: Wed Mar 08 00:25:08 2017

Use StringPiece for CreateUploader/NetMetricsLogUploader params.

Makes MetricsLogUploader a pure interface, eliminating the params there, and
in TestMetricsLogUploader.

TBR=boliu,olivierrobin

BUG= 693676 

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

[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/android_webview/native/aw_metrics_service_client_impl.cc
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/android_webview/native/aw_metrics_service_client_impl.h
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/chrome/browser/metrics/chrome_metrics_service_client.cc
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/chrome/browser/metrics/chrome_metrics_service_client.h
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/chromecast/browser/metrics/cast_metrics_service_client.cc
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/chromecast/browser/metrics/cast_metrics_service_client.h
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/components/metrics/BUILD.gn
[delete] https://crrev.com/a30808fd6d7f2e20278b303a2db92dc43076c974/components/metrics/metrics_log_uploader.cc
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/components/metrics/metrics_log_uploader.h
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/components/metrics/metrics_service_client.h
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/components/metrics/net/net_metrics_log_uploader.cc
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/components/metrics/net/net_metrics_log_uploader.h
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/components/metrics/test_metrics_log_uploader.cc
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/components/metrics/test_metrics_log_uploader.h
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/components/metrics/test_metrics_service_client.cc
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/components/metrics/test_metrics_service_client.h
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm
[modify] https://crrev.com/4ae63f527eab99ac2d363f6605ef699065d5e180/ios/chrome/today_extension/today_metrics_logger.mm

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 14 2017

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

commit a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869
Author: holte <holte@chromium.org>
Date: Tue Mar 14 02:08:24 2017

Move logic for uploading logs into a ReportingService object.

Gathers the logic related to handling serialized logs for upload into
a ReportingService object which is specialized for UMA with a MetricsReportingService subclass.

No functional changes intended.

BUG= 693676 

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

[modify] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/BUILD.gn
[add] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/metrics_reporting_service.cc
[add] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/metrics_reporting_service.h
[modify] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/metrics_service.cc
[modify] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/metrics_service.h
[modify] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/metrics_service_unittest.cc
[modify] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/metrics_upload_scheduler.cc
[modify] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/metrics_upload_scheduler.h
[add] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/reporting_service.cc
[add] https://crrev.com/a3b241168ae7b85d5cc31e6b2f4afc8cd1cbe869/components/metrics/reporting_service.h

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 15 2017

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

commit 5576ba8067a8c06eec493384d17acec923b0d2b3
Author: holte <holte@chromium.org>
Date: Wed Mar 15 21:26:43 2017

Avoid double initializing reporting_service_

Issue introduced in https://codereview.chromium.org/2608833002

ReportingService is already initialized by InitializeMetricsRecordingState, don't call Initialize again in InitializeMetricsState.

Adds a DCHECK to Initialize to make sure it isn't called twice.

BUG= 693676 

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

[modify] https://crrev.com/5576ba8067a8c06eec493384d17acec923b0d2b3/components/metrics/metrics_service.cc
[modify] https://crrev.com/5576ba8067a8c06eec493384d17acec923b0d2b3/components/metrics/reporting_service.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Mar 27 2017

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

commit 77d815be2a13c86b5f4bc4152e248c2c491c21d3
Author: holte <holte@chromium.org>
Date: Mon Mar 27 21:27:37 2017

Create UKM ReportingService implementation.

* Moves UKM to having split rotation/upload schedulers
* Adds support for tracking + throttling UKM cellular data use.

BUG= 693676 

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

[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/metrics/BUILD.gn
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/metrics/data_use_tracker.cc
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/metrics/data_use_tracker_unittest.cc
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/metrics/metrics_pref_names.cc
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/metrics/metrics_pref_names.h
[delete] https://crrev.com/77d17a744d78d3d35b51fcbe0119bd5dd99bbd46/components/metrics/metrics_reporting_scheduler.cc
[delete] https://crrev.com/77d17a744d78d3d35b51fcbe0119bd5dd99bbd46/components/metrics/metrics_reporting_scheduler.h
[delete] https://crrev.com/77d17a744d78d3d35b51fcbe0119bd5dd99bbd46/components/metrics/metrics_reporting_scheduler_unittest.cc
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/metrics/metrics_service.cc
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/metrics/reporting_service.cc
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/ukm/BUILD.gn
[delete] https://crrev.com/77d17a744d78d3d35b51fcbe0119bd5dd99bbd46/components/ukm/metrics_reporting_scheduler.cc
[delete] https://crrev.com/77d17a744d78d3d35b51fcbe0119bd5dd99bbd46/components/ukm/metrics_reporting_scheduler.h
[add] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/ukm/ukm_reporting_service.cc
[add] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/ukm/ukm_reporting_service.h
[add] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/ukm/ukm_rotation_scheduler.cc
[add] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/ukm/ukm_rotation_scheduler.h
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/ukm/ukm_service.cc
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/components/ukm/ukm_service.h
[modify] https://crrev.com/77d815be2a13c86b5f4bc4152e248c2c491c21d3/tools/metrics/histograms/histograms.xml

Comment 7 by holte@chromium.org, Jul 26 2017

Status: Fixed (was: Assigned)

Sign in to add a comment