UKM reports should include hardware class in system profile metrics |
||||||||
Issue descriptionUKM reports have a |system_profile| field that is not populated. For Chrome OS, this would include valuable information about the device. UMA reports include a SystemProfileProto via ChromeUserMetricsExtension, so this data is populated for UMA reports, but not UKM reports. This information can be provided by registering those MetricsProviders that override ProvideSystemProfileMetrics on the UKM service, namely ChromeOsMetricsProvider, ScreenInfoMetricsProvider, ExtensionsMetricsProvider, PluginMetricsProvider, etc. https://cs.chromium.org/chromium/src/third_party/metrics_proto/system_profile.proto?type=cs&sq=package:chromium
,
Mar 2 2018
Friendly ping.
,
Mar 6 2018
(accepting - filtered feb 11 update, sorry)
,
Mar 6 2018
Grabbing as skare@ is moving teams. I think it should be reasonable to add those. For hardware, could you clarify which fields you're most interested in (besides hardware_class which is probably the most interesting one)?
,
Mar 7 2018
I think these are the important ones. Jia, are there more that we want? * system_ram_mb * hardware_class * screen_count * primary_screen_width * primary_screen_height * primary_screen_scale_factor * internal_display_supports_touch
,
Mar 8 2018
* system_ram_mb This should already be getting recorded: https://cs.chromium.org/chromium/src/components/metrics/metrics_log.cc?rcl=ba0d17f7b580a3663c8722a6304748eb99e5905a&l=164 * hardware_class This does not get recorded currently, due to CrOS using a different code path that is not used under UKM: https://cs.chromium.org/chromium/src/chrome/browser/metrics/chromeos_metrics_provider.cc?rcl=ba0d17f7b580a3663c8722a6304748eb99e5905a&l=193 * screen_count * primary_screen_width * primary_screen_height * primary_screen_scale_factor Need to hook up ScreenInfoMetricsProvider() for this. * internal_display_supports_touch This is done by ChromeOSMetricsProvider().
,
Mar 8 2018
Note: We can't use ChromeOSMetricsProvider() as-is because it modifies state outside the object when used. In particular, it clears some counts in prefs when they're reported. My suggestion is to move the hardware class for CrOS to the core logic and internal_display stuff to the ScreenInfoMetricsProvider().
,
Apr 3 2018
Hi asvitkine, is this being worked on for M67 or M68?
,
Apr 4 2018
Hello, Could someone please give use an ETA on these metrics? We're waiting for hardware_class in M67 for our project. Thanks! Jia
,
Apr 4 2018
Let me try to get this in before M67 branch.
,
Apr 4 2018
I don't think this should be a problem for us to include with UKM reports. We can double check with privacy. Sorry for delay on this. Brian do you have cycles for this for m67?
,
Apr 4 2018
I've already been doing work in this area, so happy to carry this forward. Assigning back to myself.
,
Apr 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c063c43422b559af629322ba578cd9e71a6eda14 commit c063c43422b559af629322ba578cd9e71a6eda14 Author: Alexei Svitkine <asvitkine@chromium.org> Date: Mon Apr 09 20:57:23 2018 Report Chrome OS system profile metrics to UKM. Specifically, this includes metrics reported by ChromeOSMetricsProvider in the system profile for UKM. The following fields will now be included: - hardware.hardware_class - hardware.internal_display_supports_touch - hardware.bluetooth (and all the sub-fields) - multi_profile_user_count A note on the implementation: This reports the new short hardware class field that is now reported to UMA (as of M67), as enabled by the kUmaShortHWClass feature. This CL also improves this logic (both for UMA and UKM) by doing it synchronously which is possible with the new implementation. The bluetooth data is still retrieve asynchronously however - which is new for UKM service. In addition, this CL fixes MetricsProvider initialization order in UkmService, where previously the Init() call on providers was happening before providers were added. This was not a problem before because the existing providers did not do anything in Init(). This change also improe Bug: 807663 , 810872 Change-Id: I4b0dcb848e40a467a26feaf757f43aaf442be050 Reviewed-on: https://chromium-review.googlesource.com/996175 Commit-Queue: Alexei Svitkine <asvitkine@chromium.org> Reviewed-by: Robert Kaplow <rkaplow@chromium.org> Cr-Commit-Position: refs/heads/master@{#549271} [modify] https://crrev.com/c063c43422b559af629322ba578cd9e71a6eda14/chrome/browser/metrics/chrome_metrics_service_client.cc [modify] https://crrev.com/c063c43422b559af629322ba578cd9e71a6eda14/chrome/browser/metrics/chromeos_metrics_provider.cc [modify] https://crrev.com/c063c43422b559af629322ba578cd9e71a6eda14/chrome/browser/metrics/ukm_browsertest.cc [modify] https://crrev.com/c063c43422b559af629322ba578cd9e71a6eda14/components/ukm/ukm_service.cc
,
Apr 9 2018
,
Apr 9 2018
Marking as Fixed for M67 and retitling to specifically mention hardware class. Please file bugs if other fields are desired. I'll verify the data once this reaches users. |
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by michae...@chromium.org
, Feb 11 2018Status: Assigned (was: Untriaged)