diff --git a/tools/metrics/histograms/histogram_ownership.py b/tools/metrics/histograms/histogram_ownership.py index 7014e0c6b36b3b..e0441d5ec63e28 100755 --- a/tools/metrics/histograms/histogram_ownership.py +++ b/tools/metrics/histograms/histogram_ownership.py @@ -9,19 +9,18 @@ from __future__ import print_function -import extract_histograms +import errno import os import sys -import xml.etree.ElementTree +from xml.etree import ElementTree as ET -sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) -import path_util +import extract_histograms +import histogram_paths +import merge_xml -def main(): - tree = xml.etree.ElementTree.parse(path_util.GetHistogramsFile()) - root = tree.getroot() - assert root.tag == 'histogram-configuration' +def PrintOwners(root): + assert root.tag == 'histogram-configuration' root_children = root.getchildren() histograms = None for node in root_children: @@ -45,7 +44,6 @@ def main(): continue if node.text == extract_histograms.OWNER_PLACEHOLDER: continue - assert '@' in node.text owners.append(node.text) if not obsolete: @@ -55,5 +53,33 @@ def main(): print(name, 'NO_OWNER') +def main(): + """Prints the owners of histograms in a specific file or of all histograms. + + Args: + argv[1]: Optional argument that is the relative path to a specific + histograms.xml. + + Example usage to print owners of histograms_xml/Accessibility/histograms.xml: + python histogram_ownership.py histograms_xml/Accessibility/histograms.xml + + Example usage to print owners of all histograms: + python histogram_ownership.py + """ + if len(sys.argv) == 1: + merged_xml_string = merge_xml.PrettyPrintMergedFiles( + histogram_paths.ALL_XMLS) + root = ET.fromstring(merged_xml_string) + else: + rel_path = sys.argv[1] + if not os.path.exists(rel_path): + raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT)) + + tree = ET.parse(rel_path) + root = tree.getroot() + + PrintOwners(root) + + if __name__ == '__main__': main() diff --git a/tools/metrics/histograms/histogram_paths.py b/tools/metrics/histograms/histogram_paths.py index 4c65c102cfee17..76c78426033688 100644 --- a/tools/metrics/histograms/histogram_paths.py +++ b/tools/metrics/histograms/histogram_paths.py @@ -10,12 +10,38 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import path_util -ALL_XMLS_RELATIVE = [ - 'tools/metrics/histograms/enums.xml', - 'tools/metrics/histograms/histograms.xml' -] -ALL_XMLS = [path_util.GetInputFile(f) for f in ALL_XMLS_RELATIVE] -ENUMS_XML, HISTOGRAMS_XML = ALL_XMLS + +def _FindHistogramsXmlFiles(base_dir): + """Gets a list of all histograms.xml files under the directory tree, prefixed + with tools/metrics/histograms/.""" + file_list = [] + for dirName, _, fileList in os.walk(base_dir): + for filename in fileList: + if filename == 'histograms.xml': + filepath = os.path.join('tools/metrics/histograms/', dirName, filename) + file_list.append(filepath) + return file_list + + +ENUMS_XML_RELATIVE = 'tools/metrics/histograms/enums.xml' +# This file path accounts for cases where the script is executed from other +# metrics-related directories. +PATH_TO_HISTOGRAMS_XML_DIR = os.path.join('..', 'histograms/histograms_xml') +# In the middle state, histogram paths include both the large histograms.xml +# file as well as the split up files. +# TODO: Improve on the current design to avoid calling `os.walk()` at the time +# of module import. +HISTOGRAMS_XMLS_RELATIVE = (['tools/metrics/histograms/histograms.xml'] + + _FindHistogramsXmlFiles(PATH_TO_HISTOGRAMS_XML_DIR)) +OBSOLETE_XML_RELATIVE = ('tools/metrics/histograms/histograms_xml/' + 'obsolete_histograms.xml') +ALL_XMLS_RELATIVE = [ENUMS_XML_RELATIVE, OBSOLETE_XML_RELATIVE + ] + HISTOGRAMS_XMLS_RELATIVE + +ENUMS_XML = path_util.GetInputFile(ENUMS_XML_RELATIVE) +HISTOGRAMS_XMLS = [path_util.GetInputFile(f) for f in HISTOGRAMS_XMLS_RELATIVE] +OBSOLETE_XML = path_util.GetInputFile(OBSOLETE_XML_RELATIVE) +ALL_XMLS = [ENUMS_XML, OBSOLETE_XML] + HISTOGRAMS_XMLS ALL_TEST_XMLS_RELATIVE = [ 'tools/metrics/histograms/test_data/enums.xml', @@ -23,4 +49,4 @@ 'tools/metrics/histograms/test_data/ukm.xml', ] ALL_TEST_XMLS = [path_util.GetInputFile(f) for f in ALL_TEST_XMLS_RELATIVE] -TEST_ENUMS_XML, TEST_HISTOGRAMS_XML, TEST_UKM_XML = ALL_TEST_XMLS \ No newline at end of file +TEST_ENUMS_XML, TEST_HISTOGRAMS_XML, TEST_UKM_XML = ALL_TEST_XMLS diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index c13cc86d0acc78..da38d11395bbc1 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml @@ -62871,217 +62871,6 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. - - tomhughes@chromium.org - chromeos-fingerprint@google.com - The mode FPMCU was in when we reset context. - - - - yichengli@chromium.org - chromeos-fingerprint@google.com - The mode FPMCU was in when we set its context. - - - - yichengli@chromium.org - chromeos-fingerprint@google.com - Whether setting FPMCU mode succeeded. - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - - Counts the number of fingerprint attempts until successful screen unlock. - - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - - Counts the number of times that the fingerprint match successfully vs. - rejected. - - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - Counts the number of fingers enrolled by the user. - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - - Measures the time it took to capture the fingerprint image in the 'match' - case. - - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - - Measures the time it took to run matcher in the 'match' case. - - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - - Measures the time it took between the detection of a finger and the 'match' - event being sent to the AP. - - - - - yichengli@chromium.org - chromeos-fingerprint@google.com - - Whether the hash of the positive match secret read from FPMCU matches the - record. - - - - - ravisadineni@chromium.org - chromeos-fingerprint@google.com - - Whether fingerprint touch was ignored due to parallel power button press. - - - - - yichengli@chromium.org - chromeos-fingerprint@google.com - - Whether migrating a record to positive match secret succeeded. - - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - - Measures the time it took to capture the fingerprint image in the 'no-match' - case. - - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - - Measures the time it took to run the matcher in the 'no-match' case. - - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - - Measures the time it took between the detection of a finger and the - 'no-match' event being sent to the AP. - - - - - yichengli@chromium.org - chromeos-fingerprint@google.com - - Whether successfully read positive match secret from FPMCU when needed. - - - - - yichengli@chromium.org - chromeos-fingerprint@google.com - - Format version of a fingerprint template record read from storage. - - - - - rsorokin@chromium.org - jessejames@chromium.org - cros-oac@google.com - - Track whether fingerprint is enabled to unlock the screen, when the user - logs in. - - - - - tomhughes@chromium.org - hesling@chromium.org - chromeos-fingerprint@google.com - - Measures the total time it takes to run the fingerprint firmware updater - when an update was not necessary. - - - - - tomhughes@chromium.org - hesling@chromium.org - chromeos-fingerprint@google.com - - Tracks the fingerprint firmware updater's reason(s) for re-flashing. - - - - - tomhughes@chromium.org - hesling@chromium.org - chromeos-fingerprint@google.com - Tracks the fingerprint firmware updater's overall status. - - - - tomhughes@chromium.org - hesling@chromium.org - chromeos-fingerprint@google.com - - Measures the total time it takes to run the fingerprint firmware updater - when an update was necessary. - - - ghendel@chromium.org @@ -183594,1451 +183383,6 @@ should be kept until we use this API. --> - - asvitkine@chromium.org - src/base/metrics/OWNERS - - The actual interval between log upload start and previous log upload - finished within the same process. A value of 0 indicates there was no - previous upload. Prior to M71, logging for this metric was broken. - - - - - wfh@chromium.org - src/base/metrics/OWNERS - - Records the result of the attempt to enumerate the installed AntiVirus on - the machine. This is recorded once during metrics initialization. - - - - - siggi@chromium.org - src/base/metrics/OWNERS - - Reports the combined state of distinct clean exit beacons stored in Local - State and the Windows registry. They are normally expected to be identical. - - - - - gab@chromium.org - src/base/metrics/OWNERS - - Recorded when we are somehow missing the client ID stored in Local State yet - are able to recover it from a backup location along with the backed up - installation date. This report carries the age in hours of the recovered - client id. - - - - - - Removed in M45. - - asvitkine@chromium.org - - Recorded when the one-time UMA client id reset was performed (and the client - id of this user was migrated). - - - - - - Removed as of August 2015. The histogram showed no unexpected slowness, and - a profiler is a better tool for identifying any future issues. - - asvitkine@chromium.org - - The time to run the external metrics collection task (Chrome OS). - - - - - - Removed as of Jun 2016. The histogram was added for debugging purpose and is - not needed anymore. - - asvitkine@chromium.org - yiyaoliu@chromium.org - - Records attempts to compute the current the signin status and error - encountered when computing. - - - - - - Removed April, 2018 as the information has never shown any problems. - - asvitkine@chromium.org - bcwhite@chromium.org - - Records attempts to create histograms in presistent space and any errors - encountered when doing so. - - - - - - No longer useful or monitored, removed 2020-01-06. - - wnwen@chromium.org - src/base/metrics/OWNERS - - Measures how much time it took to complete all async deferred startup tasks - on the background thread. Only logged on Android. - - - - - - No longer useful or monitored, removed 2020-01-06. - - wnwen@chromium.org - src/base/metrics/OWNERS - - Measures how much time since application was first in foreground till all - deferred tasks are done. Only logged on Android. - - - - - - No longer useful or monitored, removed 2020-01-06. - - wnwen@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - Measures how much time it took to complete deferred startup tasks on the UI - thread. Only logged on Android. - - - - - - Removed 01/2017 for - UMA.Debug.EnableCrashUpload.DeferredStartupAsyncTaskDuration. - - wnwen@chromium.org - asvitkine@chromium.org - - Measures how much time it took to complete async deferred startup tasks on - the background thread. Only logged on Android. - - - - - - No longer useful or monitored, removed 2020-01-06. - - wnwen@chromium.org - src/base/metrics/OWNERS - - Measures the maximum amount of time a single deferred startup task took. - - - - - - Replaced by UMA.Debug.EnableCrashUpload.DeferredStartUptime2 - - asvitkine@chromium.org - - Measures how much time since start up it took for onDeferredStartup() to be - called, which schedules enablePotentialCrashUploading() to be executed on an - async task. Only logged on Android. - - - - - - Removed 2017. No longer tracked. - - wnwen@chromium.org - asvitkine@chromium.org - - Measures how much time since application was first in foreground till - deferred tasks are initialized and queued on the idle handler. Only logged - on Android. - - - - - - Replaced by UMA.Debug.EnableCrashUpload.PostDeferredStartUptime2 - - asvitkine@chromium.org - - Measures how much time since start up it took before ChromeActivity's - postDeferredStartupIfNeeded() was called. Only logged on Android. - - - - - - Removed 2017. No longer tracked. - - wnwen@chromium.org - asvitkine@chromium.org - - Measures how much time since application was first in foreground till - ChromeActivity's postDeferredStartupIfNeeded() was called exactly once. Only - logged on Android. - - - - - - Replaced by UMA.Debug.EnableCrashUpload.Uptime2 - - asvitkine@chromium.org - - Measures how much time since start up it took before crash reporting was - enabled via enablePotentialCrashUploading() as part of deferred start up. - Only logged on Android. - - - - - - Replaced by UMA.Debug.EnableCrashUpload.Uptime3 - - asvitkine@chromium.org - - Measures how much time since start up it took before crash reporting was - enabled via enablePotentialCrashUploading() as part of deferred start up. - Only logged on Android. - - - - - - Removed 2017. No longer tracked. - - wnwen@chromium.org - asvitkine@chromium.org - - Measures how much time since application was first in foreground till crash - reporting was enabled as part of deferred start up. Only logged on Android. - - - - - - Replaced by UMA.Truncate* metrics. - - asvitkine@chromium.org - rkaplow@chromium.org - - The number of events that would be discarded at log transmission time - because the event count was already too large. Note that this doesn't - measure actual discards - in case the UMAThrottleEvents feature is disabled, - the discards won't occur. - - - - - asvitkine@chromium.org - kaznacheev@chromium.org - src/base/metrics/OWNERS - - Logs the device enrollment status for Chrome OS device. Logged with every - UMA upload. - - - - - asvitkine@chromium.org - src/base/metrics/OWNERS - - Logs the entropy source type that was used for field trial randomization. - Logged once at each start up. - - - - - asvitkine@chromium.org - src/base/metrics/OWNERS - - Logged on Android whenever an external experiment is registered. The logged - value is the number of groups in the experiment. This will not be logged at - all if there are no external experiments, but will be logged on group - transitions (e.g. when going from 1 to 0 groups). - - - - - - Removed 11/2016 for UMA.FieldTrialAllocator.Used - - lawrencewu@chromium.org - bcwhite@chromium.org - asvitkine@chromium.org - - Size, before padding, of objects allocated from persistent memory in the - browser process for field trials. Updated on each subprocess launch. - - - - - - Removed 2012. No longer tracked. - - asvitkine@chromium.org - - Log whether the --enable-benchmarking flag was set, which causes field - trials to only use the default group. - - - - - asvitkine@chromium.org - bcwhite@chromium.org - src/base/metrics/OWNERS - - Records attempts to access a file for the purpose of extracting metrics. - - - - - - Removed April, 2018 as the information it provides is no longer useful. - - asvitkine@chromium.org - bcwhite@chromium.org - - The number of old metrics files for which a delete was attempted. This is - logged once with each upload operation. Values greater than 1 indicate that - the files are not deletable by the browser and must be cleaned up by - whatever process is creating them. - - - - - - Removed April, 2018 as no problems were ever indicated. - - asvitkine@chromium.org - bcwhite@chromium.org - - The number of metrics files in a directory that need to be uploaded. This is - logged once with each upload operation. - - - - - - Removed 07/2017. Was only for short-term analysis. About 95% of dropped - files were less than 1 day old. - - asvitkine@chromium.org - bcwhite@chromium.org - - Records the last-modified age of a file that was dropped for lack of an - embedded profile. - - - - - - Removed 2019/04 with the resolution of https://crbug.com/695880 - - asvitkine@chromium.org - bcwhite@chromium.org - - Records the number of histograms present in a file that was dropped for lack - of an embedded profile. - - - - - - Removed 2019/04 as times are small, consistent, and now on a background - thread. - - bcwhite@chromium.org - - Tracks the time used to record all histograms from a file with an embedded - profile. - - - - - - Removed 2019/04 with the resolution of https://crbug.com/695880 - - asvitkine@chromium.org - bcwhite@chromium.org - - Records attempts to upload metrics from files with embedded system profiles. - Counts are not necessarily mutually exclusive. - - - - - - This metrics was to provide information for crbug/760317 which has been - resolved. Removed February, 2018. - - bcwhite@chromium.org - - Records various happenings within the FileMetricsProvider for debugging - purposes. - - - - - asvitkine@chromium.org - bcwhite@chromium.org - src/base/metrics/OWNERS - - Records attempts to access a file for the purpose of extracting initial - stability metrics. - - - - - - Access times are consistently on the order of a few ms. Removed 2019/06. - - asvitkine@chromium.org - bcwhite@chromium.org - - Records how much wall time was spent checking and mapping an initial metrics - file on disk. - - - - - - Removed April, 2018 as the information it provides is no longer useful. - - asvitkine@chromium.org - bcwhite@chromium.org - - Records how much wall time was spent checking and mapping initial metrics - from all files on disk. - - - - - - Access times are consistently on the order of a few ms. Removed 2019/06. - - asvitkine@chromium.org - bcwhite@chromium.org - - Records how much wall time was spent collecting initial stability metrics - from a file on disk. - - - - - - Removed April, 2018 as the information it provides is no longer useful. - - asvitkine@chromium.org - bcwhite@chromium.org - - Records how much wall time was spent collecting initial stability metrics - from all files on disk. - - - - - - Access times are consistently on the order of a few ms. Removed 2019/06. - - asvitkine@chromium.org - bcwhite@chromium.org - - Records how much wall time was spent collecting metrics from a file on disk. - - - - - - Removed April, 2018 as the information it provides is no longer useful. - - asvitkine@chromium.org - bcwhite@chromium.org - - Records how much wall time was spent collecting metrics from all files on - disk. - - - - - - Removed as of August 2015. No longer tracked. - - asvitkine@chromium.org - - For each attempt to generate the low entropy source, log whether or not the - load required generating a new low entropy source. - - - - - - Removed as of October 2017. No longer tracked. - - asvitkine@chromium.org - bcwhite@chromium.org - - Type and flags of every histogram created plus other activities. Counts are - not mutually-exclusive except for the different types. - - - - - - - - - - - - asvitkine@chromium.org - src/base/metrics/OWNERS - - Logged during MetricsService initialization whether the init task or the - initial log timer completed first. The expectation is the vast majority of - the time, the init task should complete first. If metrics show otherwise, - then it may indicate there's a bug in the MetricsService init sequence and - that it should be investigated. - - - - - asvitkine@chromium.org - src/base/metrics/OWNERS - - This is logged with a value of true in every log when the UMA client code - has detected that this is a potentially cloned install and has set the pref - to reset its UMA client id on the next startup. - - - - - bttk@chromium.org - src/base/metrics/OWNERS - - Number of histogram samples that were not recorded when flushing due to - cache size limits in the Java in-memory cache. There are separate limits on - the number of cached histograms, and the number of samples in a histogram. - - - - - - Removed on 2020-03-18. Renamed to - UMA.JavaCachingRecorder.DroppedHistogramSampleCount and reports also - histogram samples dropped due to a limit of the number of cached histograms. - - bttk@chromium.org - src/base/metrics/OWNERS - - Number of histogram samples that were not recorded when flushing due to a - per-histogram sample count limit in the Java in-memory cache. - - - - - bttk@chromium.org - src/base/metrics/OWNERS - - Number of user actions that were not recorded when flushing due to a cache - size limit in Java the in-memory cache. - - - - - bttk@chromium.org - src/base/metrics/OWNERS - - Number of histograms recorded when flushing the Java in-memory cache. - - - - - - Removed on 2020-03-18 to reduce the number of histograms emitted by the - cache. - - bttk@chromium.org - src/base/metrics/OWNERS - - Number of histograms for which not all samples may have been recorded when - flushing the Java in-memory cache due to a per-histogram sample count limit. - - - - - - Removed on 2020-03-18 to reduce the number of histograms emitted by the - cache. UMA.JavaCachingRecorder.DroppedHistogramSampleCount includes - histogram samples that were reported in this histogram. - - bttk@chromium.org - src/base/metrics/OWNERS - - Number of samples that were not recorded when flushing the Java in-memory - cache due to a histogram count limit. - - - - - bttk@chromium.org - src/base/metrics/OWNERS - - Number of histogram samples seen by the time the Java in-memory cache was - flushed. This includes samples counted in DroppedHistogramSampleCount. - - - - - - Removed on 2020-03-18. Renamed to - UMA.JavaCachingRecorder.InputHistogramSampleCount. - - bttk@chromium.org - src/base/metrics/OWNERS - - Number of histogram samples seen by the time the Java in-memory cache was - flushed. This is a sum of DroppedSampleCount and FlushedHistogramCount. - - - - - bttk@chromium.org - src/base/metrics/OWNERS - - Number of user actions seen by the time the in-memory cache was flushed. - This includes actions counted in DroppedUserActionCount. - - - - - - Removed on 2020-03-18 to reduce the number of histograms emitted by the - cache. - - bttk@chromium.org - src/base/metrics/OWNERS - - The remaining histogram count limit when flushing in the Java in-memory - cache. - - - - - - Removed on 2020-03-18 to reduce the number of histograms emitted by the - cache. - - bttk@chromium.org - src/base/metrics/OWNERS - - The smallest remaining sample count limit in metrics flushed from the Java - in-memory cache. - - - - - - Removed 2020-04 - - asvitkine@chromium.org - src/base/metrics/OWNERS - - Number of bytes in an excessively large log that was discarded at shutdown - instead of being saved to disk to retry during next chrome run. - - - - - - Removed 2020-04 - - asvitkine@chromium.org - src/base/metrics/OWNERS - - Number of bytes in a log was was rejected by server, and then discarded. - - - - - - Removed as of August 2015. The histograms showed no unexpected slowness, and - a profiler is a better tool for identifying any future issues. - - asvitkine@chromium.org - - The time spent to load (de-serialize) unsent logs from local state, recorded - during the MetricsService startup sequence. - - - - - bcwhite@chromium.org - src/base/metrics/OWNERS - - Failures, as reported in errno, encountered while allocating local - persistent memory under Posix. - - - - - bcwhite@chromium.org - src/base/metrics/OWNERS - - Failures, as reported by GetLastError(), encountered while allocating local - persistent memory under Windows. - - - - - - No longer tracked. - - asvitkine@chromium.org - - Simple counter of the number of times LogLoadComplete was called (bug - demonstration, as we're called more often than once per page load :-/ ) - - - - - asvitkine@chromium.org - src/base/metrics/OWNERS - - Size in kilobytes (after compression) of an uploaded UMA log. Recorded after - a successful UMA upload. - - Note: A related metric (UMA.ProtoCompressionRatio) logs the compression - ratio. - - - - - holte@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - Logs whether a log was not uploaded due to cellular log throttling logic. - Android only. - - - - - - Used for analyzing UMA log uploads on cellular connection, but necessary - after the analysis is finished. - - asvitkine@chromium.org - gayane@chromium.org - - The network connection type for each successful metrics log upload. - - - - - holte@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - HTTP response codes and network errors encountered by UMA when attempting to - upload logs to the server through an HTTPS connection. - - - - - holte@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - HTTP response codes and network errors encountered by UMA when attempting to - upload logs to the server through an HTTP connection. - - - - - - Removed in favor of UMA.LogSize.OnSuccess - - asvitkine@chromium.org - holte@chromium.org - - Reports total upload length in bytes when the UMA service type is used. - - - - - asvitkine@chromium.org - mpearson@chromium.org - src/base/metrics/OWNERS - - Distribution of the new low entropy source value. Corresponds to - metrics::prefs::kMetricsLowEntropySource. Used for field trial - randomization. Recorded on startup. - - - - - asvitkine@chromium.org - mpearson@chromium.org - src/base/metrics/OWNERS - - Distribution of the old low entropy source value. Corresponds to - metrics::prefs::kMetricsOldLowEntropySource. Used for field trial - randomization on clients that already have it, but not created on new - installs. Recorded on startup. - - - - - jwd@chromium.org - src/base/metrics/OWNERS - - Tracks if the machine ID is generated successfully and if it changes from - one run to the next. The machine ID is a 24-bit hash of machine - characteristics. It is expected to change if an install of Chrome is copied - to multiple machines. This check happens once per browser startup. - - - - - jwd@chromium.org - src/base/metrics/OWNERS - - A count of the number of times the metrics ids (client id and low entropy - source) have been reset due to a cloned install being detected. - - - - - asvitkine@chromium.org - src/base/metrics/OWNERS - - Logged when user successfully enables/disables MetricsReporting or when an - error occurs. - - - - - - This metrics was to provide information for crbug/760317 which has been - resolved. Removed February, 2018. - - bcwhite@chromium.org - - Records the size of the metrics directory size, after failing to be deleted. - This is a temporary metric that will be removed in M63 or M64. - - - - - - This metrics was to provide information for crbug/760317 which has been - resolved. Removed February, 2018. - - bcwhite@chromium.org - - Records the size of the metrics directory size, after being successfully - deleted. This should always be zero unless there is a bug in the return - code. This is a temporary metric that will be removed in M63 or M64. - - - - - rkaplow@chromium.org - src/base/metrics/OWNERS - - Records true during the initialization of the metrics state, right at the - time of logging a count to launch_count in stability prefs. - - - - - - Removed February, 2018 because persistent metrics are fully launched with no - observable change in operation time. - - asvitkine@chromium.org - bcwhite@chromium.org - - Records how much wall time was spent merging, taking snapshots, and - recording histograms for reporting to UMA. - - - - - asvitkine@chromium.org - bcwhite@chromium.org - src/base/metrics/OWNERS - - The lower 32 bits of the ID of the histogram that went negative. - - - - - asvitkine@chromium.org - bcwhite@chromium.org - src/base/metrics/OWNERS - - The amount of increment that caused a sample count to become negative. - - - - - asvitkine@chromium.org - bcwhite@chromium.org - src/base/metrics/OWNERS - - Reasons why a negative sample count would have been created. Currently, only - negative samples from persistent sparse histograms are being checked. - - - - - - Removed 01/2019 in b/110205489 being split into ChromeOS.CWP.CollectPerf and - ChromeOS.CWP.UploadPerf. - - asvitkine@chromium.org - - A count of successes and various failure modes related to collecting and - processing performance data obtained through "perf" on Chrome OS. - - - - - - Removed 2/2017 for Issue 689315 which indicated they weren't being used. - - bcwhite@chromium.org - asvitkine@chromium.org - - Size, before padding, of objects allocated from persistent memory. This is - updated with every allocation. - - - - - bcwhite@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - Errors detected by the persistent memory allocator. These are set when they - occur. - - - - - bcwhite@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - Percentage of persistent memory segment that has been allocated. This is - updated only once per reporting cycle. - - - - - bcwhite@chromium.org - src/base/metrics/OWNERS - - A count of successes and failures for the creation of various forms of - persistent memory used to store histograms. - - - - - - Data showed many files being deleted during rollout and then tapering off to - near zero. Removed 2019/07. - - bcwhite@chromium.org - asvitkine@chromium.org - - Number of old .tmp files of the kind that Windows creates and leaves around - when trying to rename a file to another one that already exists. See - https://crbug.com/934164 - - - - - michaelpg@chromium.org - yilkal@chromium.org - src/base/metrics/OWNERS - - This UMA logs the primary user type per metrics recording interval. - - - - - - Removed as of Jun 2016. The histogram was added for debugging purpose and is - not needed anymore. - - asvitkine@chromium.org - yiyaoliu@chromium.org - - Record the number of loaded profiles when a profile is erased from the - profiles map kept by profile manager. - - - - - - - asvitkine@chromium.org - isherman@chromium.org - src/base/metrics/OWNERS - - An enum representing the signin status of all opened profiles during one UMA - session. - - Reported incorrect data on ChromeOS before M80. - - - - - asvitkine@chromium.org - src/base/metrics/OWNERS - - Compression ratio of the serialized protobuf that will be uploaded to the - UMA server. This serialized protobuf is compressed using gzip. See also - UMA.LogSize.OnSuccess. - - - - - - Removed as of Sep, 2013. Gzipping protobufs is now the default. - - asvitkine@chromium.org - Was the UMA protobuf uploaded earlier compressed or not. - - - - - Removed as of August 2015. See UMA.ProtoCompressionRatio instead. - - asvitkine@chromium.org - - Kilobytes saved from gzipping the protobufs before uploading them. - - - - - jwd@chromium.org - src/base/metrics/OWNERS - - Sample rate applied to this client, expressed as number of clients per 1000 - that are in the sample. Recorded on every log upload but only if the client - is eligible for sampling. (As of September 2019, the only clients eligible - for sampling are Windows and Android installs on which the UMA checkbox was - enabled by default.) - - Clients not eligible for sampling will not have this histogram recorded. - - Clients that are eligible for sampling but are sampled out (i.e., not - uploading logs) will not have this histogram recorded. Notably, it will not - appear in chrome://histograms! (Obviously, it also won't appear in the UMA - logs because the client is not uploading logs.) - - Additional nuance, hopefully not important: the rate refers to the session - that the log was generated in, not the session the log was generated about. - This means when UMA uploads information about the last session (such as - stability statistics), it is possible--though extremely unlikely--that the - sampling rate config has changed from the previous session to the current - one. As such, the sampling rate emitted in a previous-session log record may - not be the right one that should've applied to that record. - - - - - - Removed as of August 2015. The histograms showed no unexpected slowness, and - a profiler is a better tool for identifying any future issues. - - asvitkine@chromium.org - - The time spent to store unsent logs to local state, which is done - periodically and also during start up if there was an initial stability log. - - - - - tby@chromium.org - rkaplow@chromium.org - asvitkine@chromium.org - - Emitted when a structured metrics event is sent for recording. This records - whether that event was recorded successfully, or otherwise what error - occurred. - - - - - tby@chromium.org - rkaplow@chromium.org - asvitkine@chromium.org - - Records unexpected internal errors of the structured metrics system. The - bucket proportion of this metric is not meaningful. - - - - - tby@chromium.org - rkaplow@chromium.org - asvitkine@chromium.org - - When a user event key is validated (and possibly updated), whether the key - was valid and required no changes, missing and required creation, or old and - required rotation. - - - - - tby@chromium.org - rkaplow@chromium.org - asvitkine@chromium.org - - How many events are provided when the structured metrics system is called on - to provide its current session data. - - - - - tby@chromium.org - rkaplow@chromium.org - asvitkine@chromium.org - - When the structured metrics provider initializes, it reads the pref store - from disk that holds keys and unsent logs. If there was an error during that - read, this records the error code. PREF_READ_ERROR_NO_FILE is recorded - whenever a particular profile signs into a particular device for the first - time, so a reasonable number of errors are expected. - - - - - - Removed 2020/04 - - asvitkine@chromium.org - bcwhite@chromium.org - src/base/metrics/OWNERS - - The number of subprocesses from which persistent metrics were collected, - logged once with every reporting cycle. - - - - - - Removed 2019/06 after not reporting anything in years. - - asvitkine@chromium.org - bcwhite@chromium.org - - The number of subprocesses, by type, from which persistent metrics are NOT - collected because there is no information about this (likely new) process - type. Process numbers 1000 or greater are "custom" processes used - by embedders. - - - - - - Removed as of August 2015. - - asvitkine@chromium.org - - The number of synthetic field trials added to the UMA log when the system - profile is recorded. Since this is done prior to capturing the histograms - from the current process, this will generally be logged once per UMA log. - - - - - rkaplow@chromium.org - src/base/metrics/OWNERS - - The number of omnibox events that existed in the metrics log before we - truncated them to save bandwidth. - - - - - rkaplow@chromium.org - src/base/metrics/OWNERS - - The number of user actions events that existed in the metrics log before we - truncated them to save bandwidth. - - - - - - Removed as of May, 2012 (i.e. Chrome 21+). Replaced by the - UMA.UploadResponseStatus.XML and UMA.UploadResponseStatus.Protobuf - histograms. - - asvitkine@chromium.org - The server returned a 400 code, and we discarded a log. -
- This tends to indicate that a syntax error is present in a log, such as - would appear when a bogus XML tag is included, or the XML is not balanced - and well structured. -
-
- - - holte@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - Counter for number of UMA unsent logs removed from persistent storage. - - - - - michaelbai@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - The size of all persistent initial or ongoing logs that have been - proto-encoded and compressed in the previous browser run; it is recorded on - the browser start up. The value '0' means no unsent logs. - - - - - michaelbai@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - The number of UMA sent samples in the previous browser run; it is recorded - on the browser start up. - - - - - michaelbai@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - The number of UMA unsent samples in the previous browser run; it is recorded - on the browser start up. - - - - - michaelbai@chromium.org - asvitkine@chromium.org - src/base/metrics/OWNERS - - The percentage of the unsent samples over the total in the previous browser - run; it is recorded on the browser start up. - - - - - - Removed as of August 2015. This failure case no longer exists. - - asvitkine@chromium.org - - For each attempted UMA upload, log whether the upload was successfully - constructed. An upload might fail to be constructed, for example, if we try - to upload before the system is fully initialized; or if serialization of the - data fails. - - - - - - Replaced by UMA.LogUpload.ResponseOrErrorCode - - asvitkine@chromium.org - - For each upload to the protocol buffer (v2) UMA server, log whether the - upload was successful, or whether there was an error. - - - - - - Removed 2013. No longer tracked. - - asvitkine@chromium.org - - For each upload to the XML (v1) UMA server, log whether the upload was - successful, or whether there was an error. - - - - - - No longer tracked. - - asvitkine@chromium.org - - Log whether the --reset-variation-state flag was set before the low entropy - source was requested. - - - - - vincb@google.com - src/base/metrics/OWNERS - - The status of the retrieval of user demographics from sync that are reported - to UMA. Emitted each time UMA metrics are reported. - - - - - - Removed 2013. No longer tracked. - - asvitkine@chromium.org - - The time spent in converting the XML tree into a character buffer when - closing a metrics log (Chrome OS). - - - - - - Removed 2013. No longer tracked. - - asvitkine@chromium.org - - The time spent in freeing the XML writer and tree when closing a metrics log - (Chrome OS). - - - malaykeshav@chromium.org @@ -212374,73 +210718,6 @@ regressions. --> - - - Removed 2/2017 for Issue 689315 which indicated they weren't being used. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml b/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml new file mode 100644 index 00000000000000..449d6ee4877b08 --- /dev/null +++ b/tools/metrics/histograms/histograms_xml/Fingerprint/histograms.xml @@ -0,0 +1,244 @@ + + + + + + + + + + tomhughes@chromium.org + chromeos-fingerprint@google.com + The mode FPMCU was in when we reset context. + + + + yichengli@chromium.org + chromeos-fingerprint@google.com + The mode FPMCU was in when we set its context. + + + + yichengli@chromium.org + chromeos-fingerprint@google.com + Whether setting FPMCU mode succeeded. + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + + Counts the number of fingerprint attempts until successful screen unlock. + + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + + Counts the number of times that the fingerprint match successfully vs. + rejected. + + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + Counts the number of fingers enrolled by the user. + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + + Measures the time it took to capture the fingerprint image in the 'match' + case. + + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + + Measures the time it took to run matcher in the 'match' case. + + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + + Measures the time it took between the detection of a finger and the 'match' + event being sent to the AP. + + + + + yichengli@chromium.org + chromeos-fingerprint@google.com + + Whether the hash of the positive match secret read from FPMCU matches the + record. + + + + + ravisadineni@chromium.org + chromeos-fingerprint@google.com + + Whether fingerprint touch was ignored due to parallel power button press. + + + + + yichengli@chromium.org + chromeos-fingerprint@google.com + + Whether migrating a record to positive match secret succeeded. + + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + + Measures the time it took to capture the fingerprint image in the 'no-match' + case. + + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + + Measures the time it took to run the matcher in the 'no-match' case. + + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + + Measures the time it took between the detection of a finger and the + 'no-match' event being sent to the AP. + + + + + yichengli@chromium.org + chromeos-fingerprint@google.com + + Whether successfully read positive match secret from FPMCU when needed. + + + + + yichengli@chromium.org + chromeos-fingerprint@google.com + + Format version of a fingerprint template record read from storage. + + + + + rsorokin@chromium.org + jessejames@chromium.org + cros-oac@google.com + + Track whether fingerprint is enabled to unlock the screen, when the user + logs in. + + + + + tomhughes@chromium.org + hesling@chromium.org + chromeos-fingerprint@google.com + + Measures the total time it takes to run the fingerprint firmware updater + when an update was not necessary. + + + + + tomhughes@chromium.org + hesling@chromium.org + chromeos-fingerprint@google.com + + Tracks the fingerprint firmware updater's reason(s) for re-flashing. + + + + + tomhughes@chromium.org + hesling@chromium.org + chromeos-fingerprint@google.com + Tracks the fingerprint firmware updater's overall status. + + + + tomhughes@chromium.org + hesling@chromium.org + chromeos-fingerprint@google.com + + Measures the total time it takes to run the fingerprint firmware updater + when an update was necessary. + + + + + + diff --git a/tools/metrics/histograms/histograms_xml/UMA/histograms.xml b/tools/metrics/histograms/histograms_xml/UMA/histograms.xml new file mode 100644 index 00000000000000..3fd5c549c17751 --- /dev/null +++ b/tools/metrics/histograms/histograms_xml/UMA/histograms.xml @@ -0,0 +1,608 @@ + + + + + + + + + + asvitkine@chromium.org + src/base/metrics/OWNERS + + The actual interval between log upload start and previous log upload + finished within the same process. A value of 0 indicates there was no + previous upload. Prior to M71, logging for this metric was broken. + + + + + wfh@chromium.org + src/base/metrics/OWNERS + + Records the result of the attempt to enumerate the installed AntiVirus on + the machine. This is recorded once during metrics initialization. + + + + + siggi@chromium.org + src/base/metrics/OWNERS + + Reports the combined state of distinct clean exit beacons stored in Local + State and the Windows registry. They are normally expected to be identical. + + + + + gab@chromium.org + src/base/metrics/OWNERS + + Recorded when we are somehow missing the client ID stored in Local State yet + are able to recover it from a backup location along with the backed up + installation date. This report carries the age in hours of the recovered + client id. + + + + + asvitkine@chromium.org + kaznacheev@chromium.org + src/base/metrics/OWNERS + + Logs the device enrollment status for Chrome OS device. Logged with every + UMA upload. + + + + + asvitkine@chromium.org + src/base/metrics/OWNERS + + Logs the entropy source type that was used for field trial randomization. + Logged once at each start up. + + + + + asvitkine@chromium.org + src/base/metrics/OWNERS + + Logged on Android whenever an external experiment is registered. The logged + value is the number of groups in the experiment. This will not be logged at + all if there are no external experiments, but will be logged on group + transitions (e.g. when going from 1 to 0 groups). + + + + + asvitkine@chromium.org + bcwhite@chromium.org + src/base/metrics/OWNERS + + Records attempts to access a file for the purpose of extracting metrics. + + + + + asvitkine@chromium.org + bcwhite@chromium.org + src/base/metrics/OWNERS + + Records attempts to access a file for the purpose of extracting initial + stability metrics. + + + + + asvitkine@chromium.org + src/base/metrics/OWNERS + + Logged during MetricsService initialization whether the init task or the + initial log timer completed first. The expectation is the vast majority of + the time, the init task should complete first. If metrics show otherwise, + then it may indicate there's a bug in the MetricsService init sequence and + that it should be investigated. + + + + + asvitkine@chromium.org + src/base/metrics/OWNERS + + This is logged with a value of true in every log when the UMA client code + has detected that this is a potentially cloned install and has set the pref + to reset its UMA client id on the next startup. + + + + + bttk@chromium.org + src/base/metrics/OWNERS + + Number of histogram samples that were not recorded when flushing due to + cache size limits in the Java in-memory cache. There are separate limits on + the number of cached histograms, and the number of samples in a histogram. + + + + + bttk@chromium.org + src/base/metrics/OWNERS + + Number of user actions that were not recorded when flushing due to a cache + size limit in Java the in-memory cache. + + + + + bttk@chromium.org + src/base/metrics/OWNERS + + Number of histograms recorded when flushing the Java in-memory cache. + + + + + bttk@chromium.org + src/base/metrics/OWNERS + + Number of histogram samples seen by the time the Java in-memory cache was + flushed. This includes samples counted in DroppedHistogramSampleCount. + + + + + bttk@chromium.org + src/base/metrics/OWNERS + + Number of user actions seen by the time the in-memory cache was flushed. + This includes actions counted in DroppedUserActionCount. + + + + + bcwhite@chromium.org + src/base/metrics/OWNERS + + Failures, as reported in errno, encountered while allocating local + persistent memory under Posix. + + + + + bcwhite@chromium.org + src/base/metrics/OWNERS + + Failures, as reported by GetLastError(), encountered while allocating local + persistent memory under Windows. + + + + + asvitkine@chromium.org + src/base/metrics/OWNERS + + Size in kilobytes (after compression) of an uploaded UMA log. Recorded after + a successful UMA upload. + + Note: A related metric (UMA.ProtoCompressionRatio) logs the compression + ratio. + + + + + holte@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + Logs whether a log was not uploaded due to cellular log throttling logic. + Android only. + + + + + holte@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + HTTP response codes and network errors encountered by UMA when attempting to + upload logs to the server through an HTTPS connection. + + + + + holte@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + HTTP response codes and network errors encountered by UMA when attempting to + upload logs to the server through an HTTP connection. + + + + + asvitkine@chromium.org + mpearson@chromium.org + src/base/metrics/OWNERS + + Distribution of the new low entropy source value. Corresponds to + metrics::prefs::kMetricsLowEntropySource. Used for field trial + randomization. Recorded on startup. + + + + + asvitkine@chromium.org + mpearson@chromium.org + src/base/metrics/OWNERS + + Distribution of the old low entropy source value. Corresponds to + metrics::prefs::kMetricsOldLowEntropySource. Used for field trial + randomization on clients that already have it, but not created on new + installs. Recorded on startup. + + + + + jwd@chromium.org + src/base/metrics/OWNERS + + Tracks if the machine ID is generated successfully and if it changes from + one run to the next. The machine ID is a 24-bit hash of machine + characteristics. It is expected to change if an install of Chrome is copied + to multiple machines. This check happens once per browser startup. + + + + + jwd@chromium.org + src/base/metrics/OWNERS + + A count of the number of times the metrics ids (client id and low entropy + source) have been reset due to a cloned install being detected. + + + + + asvitkine@chromium.org + src/base/metrics/OWNERS + + Logged when user successfully enables/disables MetricsReporting or when an + error occurs. + + + + + rkaplow@chromium.org + src/base/metrics/OWNERS + + Records true during the initialization of the metrics state, right at the + time of logging a count to launch_count in stability prefs. + + + + + asvitkine@chromium.org + bcwhite@chromium.org + src/base/metrics/OWNERS + + The lower 32 bits of the ID of the histogram that went negative. + + + + + asvitkine@chromium.org + bcwhite@chromium.org + src/base/metrics/OWNERS + + The amount of increment that caused a sample count to become negative. + + + + + asvitkine@chromium.org + bcwhite@chromium.org + src/base/metrics/OWNERS + + Reasons why a negative sample count would have been created. Currently, only + negative samples from persistent sparse histograms are being checked. + + + + + bcwhite@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + Errors detected by the persistent memory allocator. These are set when they + occur. + + + + + bcwhite@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + Percentage of persistent memory segment that has been allocated. This is + updated only once per reporting cycle. + + + + + bcwhite@chromium.org + src/base/metrics/OWNERS + + A count of successes and failures for the creation of various forms of + persistent memory used to store histograms. + + + + + michaelpg@chromium.org + yilkal@chromium.org + src/base/metrics/OWNERS + + This UMA logs the primary user type per metrics recording interval. + + + + + + + asvitkine@chromium.org + isherman@chromium.org + src/base/metrics/OWNERS + + An enum representing the signin status of all opened profiles during one UMA + session. + + Reported incorrect data on ChromeOS before M80. + + + + + asvitkine@chromium.org + src/base/metrics/OWNERS + + Compression ratio of the serialized protobuf that will be uploaded to the + UMA server. This serialized protobuf is compressed using gzip. See also + UMA.LogSize.OnSuccess. + + + + + jwd@chromium.org + src/base/metrics/OWNERS + + Sample rate applied to this client, expressed as number of clients per 1000 + that are in the sample. Recorded on every log upload but only if the client + is eligible for sampling. (As of September 2019, the only clients eligible + for sampling are Windows and Android installs on which the UMA checkbox was + enabled by default.) + + Clients not eligible for sampling will not have this histogram recorded. + + Clients that are eligible for sampling but are sampled out (i.e., not + uploading logs) will not have this histogram recorded. Notably, it will not + appear in chrome://histograms! (Obviously, it also won't appear in the UMA + logs because the client is not uploading logs.) + + Additional nuance, hopefully not important: the rate refers to the session + that the log was generated in, not the session the log was generated about. + This means when UMA uploads information about the last session (such as + stability statistics), it is possible--though extremely unlikely--that the + sampling rate config has changed from the previous session to the current + one. As such, the sampling rate emitted in a previous-session log record may + not be the right one that should've applied to that record. + + + + + tby@chromium.org + rkaplow@chromium.org + asvitkine@chromium.org + + Emitted when a structured metrics event is sent for recording. This records + whether that event was recorded successfully, or otherwise what error + occurred. + + + + + tby@chromium.org + rkaplow@chromium.org + asvitkine@chromium.org + + Records unexpected internal errors of the structured metrics system. The + bucket proportion of this metric is not meaningful. + + + + + tby@chromium.org + rkaplow@chromium.org + asvitkine@chromium.org + + When a user event key is validated (and possibly updated), whether the key + was valid and required no changes, missing and required creation, or old and + required rotation. + + + + + tby@chromium.org + rkaplow@chromium.org + asvitkine@chromium.org + + How many events are provided when the structured metrics system is called on + to provide its current session data. + + + + + tby@chromium.org + rkaplow@chromium.org + asvitkine@chromium.org + + When the structured metrics provider initializes, it reads the pref store + from disk that holds keys and unsent logs. If there was an error during that + read, this records the error code. PREF_READ_ERROR_NO_FILE is recorded + whenever a particular profile signs into a particular device for the first + time, so a reasonable number of errors are expected. + + + + + rkaplow@chromium.org + src/base/metrics/OWNERS + + The number of omnibox events that existed in the metrics log before we + truncated them to save bandwidth. + + + + + rkaplow@chromium.org + src/base/metrics/OWNERS + + The number of user actions events that existed in the metrics log before we + truncated them to save bandwidth. + + + + + holte@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + Counter for number of UMA unsent logs removed from persistent storage. + + + + + michaelbai@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + The size of all persistent initial or ongoing logs that have been + proto-encoded and compressed in the previous browser run; it is recorded on + the browser start up. The value '0' means no unsent logs. + + + + + michaelbai@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + The number of UMA sent samples in the previous browser run; it is recorded + on the browser start up. + + + + + michaelbai@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + The number of UMA unsent samples in the previous browser run; it is recorded + on the browser start up. + + + + + michaelbai@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + The percentage of the unsent samples over the total in the previous browser + run; it is recorded on the browser start up. + + + + + vincb@google.com + src/base/metrics/OWNERS + + The status of the retrieval of user demographics from sync that are reported + to UMA. Emitted each time UMA metrics are reported. + + + + + + diff --git a/tools/metrics/histograms/histograms_xml/histogram_suffixes.xml b/tools/metrics/histograms/histograms_xml/histogram_suffixes.xml new file mode 100644 index 00000000000000..60129f56ea6a64 --- /dev/null +++ b/tools/metrics/histograms/histograms_xml/histogram_suffixes.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + Removed 2/2017 for Issue 689315 which indicated they weren't being used. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml b/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml new file mode 100644 index 00000000000000..c00fbd3f5dae67 --- /dev/null +++ b/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml @@ -0,0 +1,896 @@ + + + + + + + + + + + Removed in M45. + + asvitkine@chromium.org + + Recorded when the one-time UMA client id reset was performed (and the client + id of this user was migrated). + + + + + + Removed as of August 2015. The histogram showed no unexpected slowness, and + a profiler is a better tool for identifying any future issues. + + asvitkine@chromium.org + + The time to run the external metrics collection task (Chrome OS). + + + + + + Removed as of Jun 2016. The histogram was added for debugging purpose and is + not needed anymore. + + asvitkine@chromium.org + yiyaoliu@chromium.org + + Records attempts to compute the current the signin status and error + encountered when computing. + + + + + + Removed April, 2018 as the information has never shown any problems. + + asvitkine@chromium.org + bcwhite@chromium.org + + Records attempts to create histograms in presistent space and any errors + encountered when doing so. + + + + + + No longer useful or monitored, removed 2020-01-06. + + wnwen@chromium.org + src/base/metrics/OWNERS + + Measures how much time it took to complete all async deferred startup tasks + on the background thread. Only logged on Android. + + + + + + No longer useful or monitored, removed 2020-01-06. + + wnwen@chromium.org + src/base/metrics/OWNERS + + Measures how much time since application was first in foreground till all + deferred tasks are done. Only logged on Android. + + + + + + No longer useful or monitored, removed 2020-01-06. + + wnwen@chromium.org + asvitkine@chromium.org + src/base/metrics/OWNERS + + Measures how much time it took to complete deferred startup tasks on the UI + thread. Only logged on Android. + + + + + + Removed 01/2017 for + UMA.Debug.EnableCrashUpload.DeferredStartupAsyncTaskDuration. + + wnwen@chromium.org + asvitkine@chromium.org + + Measures how much time it took to complete async deferred startup tasks on + the background thread. Only logged on Android. + + + + + + No longer useful or monitored, removed 2020-01-06. + + wnwen@chromium.org + src/base/metrics/OWNERS + + Measures the maximum amount of time a single deferred startup task took. + + + + + + Replaced by UMA.Debug.EnableCrashUpload.DeferredStartUptime2 + + asvitkine@chromium.org + + Measures how much time since start up it took for onDeferredStartup() to be + called, which schedules enablePotentialCrashUploading() to be executed on an + async task. Only logged on Android. + + + + + + Removed 2017. No longer tracked. + + wnwen@chromium.org + asvitkine@chromium.org + + Measures how much time since application was first in foreground till + deferred tasks are initialized and queued on the idle handler. Only logged + on Android. + + + + + + Replaced by UMA.Debug.EnableCrashUpload.PostDeferredStartUptime2 + + asvitkine@chromium.org + + Measures how much time since start up it took before ChromeActivity's + postDeferredStartupIfNeeded() was called. Only logged on Android. + + + + + + Removed 2017. No longer tracked. + + wnwen@chromium.org + asvitkine@chromium.org + + Measures how much time since application was first in foreground till + ChromeActivity's postDeferredStartupIfNeeded() was called exactly once. Only + logged on Android. + + + + + + Replaced by UMA.Debug.EnableCrashUpload.Uptime2 + + asvitkine@chromium.org + + Measures how much time since start up it took before crash reporting was + enabled via enablePotentialCrashUploading() as part of deferred start up. + Only logged on Android. + + + + + + Replaced by UMA.Debug.EnableCrashUpload.Uptime3 + + asvitkine@chromium.org + + Measures how much time since start up it took before crash reporting was + enabled via enablePotentialCrashUploading() as part of deferred start up. + Only logged on Android. + + + + + + Removed 2017. No longer tracked. + + wnwen@chromium.org + asvitkine@chromium.org + + Measures how much time since application was first in foreground till crash + reporting was enabled as part of deferred start up. Only logged on Android. + + + + + + Replaced by UMA.Truncate* metrics. + + asvitkine@chromium.org + rkaplow@chromium.org + + The number of events that would be discarded at log transmission time + because the event count was already too large. Note that this doesn't + measure actual discards - in case the UMAThrottleEvents feature is disabled, + the discards won't occur. + + + + + + Removed 11/2016 for UMA.FieldTrialAllocator.Used + + lawrencewu@chromium.org + bcwhite@chromium.org + asvitkine@chromium.org + + Size, before padding, of objects allocated from persistent memory in the + browser process for field trials. Updated on each subprocess launch. + + + + + + Removed 2012. No longer tracked. + + asvitkine@chromium.org + + Log whether the --enable-benchmarking flag was set, which causes field + trials to only use the default group. + + + + + + Removed April, 2018 as the information it provides is no longer useful. + + asvitkine@chromium.org + bcwhite@chromium.org + + The number of old metrics files for which a delete was attempted. This is + logged once with each upload operation. Values greater than 1 indicate that + the files are not deletable by the browser and must be cleaned up by + whatever process is creating them. + + + + + + Removed April, 2018 as no problems were ever indicated. + + asvitkine@chromium.org + bcwhite@chromium.org + + The number of metrics files in a directory that need to be uploaded. This is + logged once with each upload operation. + + + + + + Removed 07/2017. Was only for short-term analysis. About 95% of dropped + files were less than 1 day old. + + asvitkine@chromium.org + bcwhite@chromium.org + + Records the last-modified age of a file that was dropped for lack of an + embedded profile. + + + + + + Removed 2019/04 with the resolution of https://crbug.com/695880 + + asvitkine@chromium.org + bcwhite@chromium.org + + Records the number of histograms present in a file that was dropped for lack + of an embedded profile. + + + + + + Removed 2019/04 as times are small, consistent, and now on a background + thread. + + bcwhite@chromium.org + + Tracks the time used to record all histograms from a file with an embedded + profile. + + + + + + Removed 2019/04 with the resolution of https://crbug.com/695880 + + asvitkine@chromium.org + bcwhite@chromium.org + + Records attempts to upload metrics from files with embedded system profiles. + Counts are not necessarily mutually exclusive. + + + + + + This metrics was to provide information for crbug/760317 which has been + resolved. Removed February, 2018. + + bcwhite@chromium.org + + Records various happenings within the FileMetricsProvider for debugging + purposes. + + + + + + Access times are consistently on the order of a few ms. Removed 2019/06. + + asvitkine@chromium.org + bcwhite@chromium.org + + Records how much wall time was spent checking and mapping an initial metrics + file on disk. + + + + + + Removed April, 2018 as the information it provides is no longer useful. + + asvitkine@chromium.org + bcwhite@chromium.org + + Records how much wall time was spent checking and mapping initial metrics + from all files on disk. + + + + + + Access times are consistently on the order of a few ms. Removed 2019/06. + + asvitkine@chromium.org + bcwhite@chromium.org + + Records how much wall time was spent collecting initial stability metrics + from a file on disk. + + + + + + Removed April, 2018 as the information it provides is no longer useful. + + asvitkine@chromium.org + bcwhite@chromium.org + + Records how much wall time was spent collecting initial stability metrics + from all files on disk. + + + + + + Access times are consistently on the order of a few ms. Removed 2019/06. + + asvitkine@chromium.org + bcwhite@chromium.org + + Records how much wall time was spent collecting metrics from a file on disk. + + + + + + Removed April, 2018 as the information it provides is no longer useful. + + asvitkine@chromium.org + bcwhite@chromium.org + + Records how much wall time was spent collecting metrics from all files on + disk. + + + + + + Removed as of August 2015. No longer tracked. + + asvitkine@chromium.org + + For each attempt to generate the low entropy source, log whether or not the + load required generating a new low entropy source. + + + + + + Removed as of October 2017. No longer tracked. + + asvitkine@chromium.org + bcwhite@chromium.org + + Type and flags of every histogram created plus other activities. Counts are + not mutually-exclusive except for the different types. + + + + + + Removed on 2020-03-18. Renamed to + UMA.JavaCachingRecorder.DroppedHistogramSampleCount and reports also + histogram samples dropped due to a limit of the number of cached histograms. + + bttk@chromium.org + src/base/metrics/OWNERS + + Number of histogram samples that were not recorded when flushing due to a + per-histogram sample count limit in the Java in-memory cache. + + + + + + Removed on 2020-03-18 to reduce the number of histograms emitted by the + cache. + + bttk@chromium.org + src/base/metrics/OWNERS + + Number of histograms for which not all samples may have been recorded when + flushing the Java in-memory cache due to a per-histogram sample count limit. + + + + + + Removed on 2020-03-18 to reduce the number of histograms emitted by the + cache. UMA.JavaCachingRecorder.DroppedHistogramSampleCount includes + histogram samples that were reported in this histogram. + + bttk@chromium.org + src/base/metrics/OWNERS + + Number of samples that were not recorded when flushing the Java in-memory + cache due to a histogram count limit. + + + + + + Removed on 2020-03-18. Renamed to + UMA.JavaCachingRecorder.InputHistogramSampleCount. + + bttk@chromium.org + src/base/metrics/OWNERS + + Number of histogram samples seen by the time the Java in-memory cache was + flushed. This is a sum of DroppedSampleCount and FlushedHistogramCount. + + + + + + Removed on 2020-03-18 to reduce the number of histograms emitted by the + cache. + + bttk@chromium.org + src/base/metrics/OWNERS + + The remaining histogram count limit when flushing in the Java in-memory + cache. + + + + + + Removed on 2020-03-18 to reduce the number of histograms emitted by the + cache. + + bttk@chromium.org + src/base/metrics/OWNERS + + The smallest remaining sample count limit in metrics flushed from the Java + in-memory cache. + + + + + + Removed 2020-04 + + asvitkine@chromium.org + src/base/metrics/OWNERS + + Number of bytes in an excessively large log that was discarded at shutdown + instead of being saved to disk to retry during next chrome run. + + + + + + Removed 2020-04 + + asvitkine@chromium.org + src/base/metrics/OWNERS + + Number of bytes in a log was was rejected by server, and then discarded. + + + + + + Removed as of August 2015. The histograms showed no unexpected slowness, and + a profiler is a better tool for identifying any future issues. + + asvitkine@chromium.org + + The time spent to load (de-serialize) unsent logs from local state, recorded + during the MetricsService startup sequence. + + + + + + No longer tracked. + + asvitkine@chromium.org + + Simple counter of the number of times LogLoadComplete was called (bug + demonstration, as we're called more often than once per page load :-/ ) + + + + + + Used for analyzing UMA log uploads on cellular connection, but necessary + after the analysis is finished. + + asvitkine@chromium.org + gayane@chromium.org + + The network connection type for each successful metrics log upload. + + + + + + Removed in favor of UMA.LogSize.OnSuccess + + asvitkine@chromium.org + holte@chromium.org + + Reports total upload length in bytes when the UMA service type is used. + + + + + + This metrics was to provide information for crbug/760317 which has been + resolved. Removed February, 2018. + + bcwhite@chromium.org + + Records the size of the metrics directory size, after failing to be deleted. + This is a temporary metric that will be removed in M63 or M64. + + + + + + This metrics was to provide information for crbug/760317 which has been + resolved. Removed February, 2018. + + bcwhite@chromium.org + + Records the size of the metrics directory size, after being successfully + deleted. This should always be zero unless there is a bug in the return + code. This is a temporary metric that will be removed in M63 or M64. + + + + + + Removed February, 2018 because persistent metrics are fully launched with no + observable change in operation time. + + asvitkine@chromium.org + bcwhite@chromium.org + + Records how much wall time was spent merging, taking snapshots, and + recording histograms for reporting to UMA. + + + + + + Removed 01/2019 in b/110205489 being split into ChromeOS.CWP.CollectPerf and + ChromeOS.CWP.UploadPerf. + + asvitkine@chromium.org + + A count of successes and various failure modes related to collecting and + processing performance data obtained through "perf" on Chrome OS. + + + + + + Removed 2/2017 for Issue 689315 which indicated they weren't being used. + + bcwhite@chromium.org + asvitkine@chromium.org + + Size, before padding, of objects allocated from persistent memory. This is + updated with every allocation. + + + + + + Data showed many files being deleted during rollout and then tapering off to + near zero. Removed 2019/07. + + bcwhite@chromium.org + asvitkine@chromium.org + + Number of old .tmp files of the kind that Windows creates and leaves around + when trying to rename a file to another one that already exists. See + https://crbug.com/934164 + + + + + + Removed as of Jun 2016. The histogram was added for debugging purpose and is + not needed anymore. + + asvitkine@chromium.org + yiyaoliu@chromium.org + + Record the number of loaded profiles when a profile is erased from the + profiles map kept by profile manager. + + + + + + Removed as of Sep, 2013. Gzipping protobufs is now the default. + + asvitkine@chromium.org + Was the UMA protobuf uploaded earlier compressed or not. + + + + + Removed as of August 2015. See UMA.ProtoCompressionRatio instead. + + asvitkine@chromium.org + + Kilobytes saved from gzipping the protobufs before uploading them. + + + + + + Removed as of August 2015. The histograms showed no unexpected slowness, and + a profiler is a better tool for identifying any future issues. + + asvitkine@chromium.org + + The time spent to store unsent logs to local state, which is done + periodically and also during start up if there was an initial stability log. + + + + + + Removed 2020/04 + + asvitkine@chromium.org + bcwhite@chromium.org + src/base/metrics/OWNERS + + The number of subprocesses from which persistent metrics were collected, + logged once with every reporting cycle. + + + + + + Removed 2019/06 after not reporting anything in years. + + asvitkine@chromium.org + bcwhite@chromium.org + + The number of subprocesses, by type, from which persistent metrics are NOT + collected because there is no information about this (likely new) process + type. Process numbers 1000 or greater are "custom" processes used + by embedders. + + + + + + Removed as of August 2015. + + asvitkine@chromium.org + + The number of synthetic field trials added to the UMA log when the system + profile is recorded. Since this is done prior to capturing the histograms + from the current process, this will generally be logged once per UMA log. + + + + + + Removed as of May, 2012 (i.e. Chrome 21+). Replaced by the + UMA.UploadResponseStatus.XML and UMA.UploadResponseStatus.Protobuf + histograms. + + asvitkine@chromium.org + The server returned a 400 code, and we discarded a log. +
+ This tends to indicate that a syntax error is present in a log, such as + would appear when a bogus XML tag is included, or the XML is not balanced + and well structured. +
+
+ + + + Removed as of August 2015. This failure case no longer exists. + + asvitkine@chromium.org + + For each attempted UMA upload, log whether the upload was successfully + constructed. An upload might fail to be constructed, for example, if we try + to upload before the system is fully initialized; or if serialization of the + data fails. + + + + + + Replaced by UMA.LogUpload.ResponseOrErrorCode + + asvitkine@chromium.org + + For each upload to the protocol buffer (v2) UMA server, log whether the + upload was successful, or whether there was an error. + + + + + + Removed 2013. No longer tracked. + + asvitkine@chromium.org + + For each upload to the XML (v1) UMA server, log whether the upload was + successful, or whether there was an error. + + + + + + No longer tracked. + + asvitkine@chromium.org + + Log whether the --reset-variation-state flag was set before the low entropy + source was requested. + + + + + + Removed 2013. No longer tracked. + + asvitkine@chromium.org + + The time spent in converting the XML tree into a character buffer when + closing a metrics log (Chrome OS). + + + + + + Removed 2013. No longer tracked. + + asvitkine@chromium.org + + The time spent in freeing the XML writer and tree when closing a metrics log + (Chrome OS). + + + +
+ +
diff --git a/tools/metrics/histograms/merge_xml.py b/tools/metrics/histograms/merge_xml.py index 939862b9f22bcf..a715be03eb1443 100755 --- a/tools/metrics/histograms/merge_xml.py +++ b/tools/metrics/histograms/merge_xml.py @@ -16,17 +16,19 @@ import populate_enums -def GetElementsByTagName(trees, tag): +def GetElementsByTagName(trees, tag, depth=2): """Gets all elements with the specified tag from a set of DOM trees. Args: trees: A list of DOM trees. tag: The tag of the elements to find. + depth: The depth in the trees by which a match should be found. + Returns: A list of DOM nodes with the specified tag. """ iterator = extract_histograms.IterElementsWithTag - return list(e for t in trees for e in iterator(t, tag, 2)) + return list(e for t in trees for e in iterator(t, tag, depth)) def GetEnumsNodes(doc, trees): @@ -55,6 +57,28 @@ def GetEnumsNodes(doc, trees): return enums_list +def CombineHistogramsSorted(doc, trees): + """Sorts nodes by name and returns a single node. + + Args: + doc: The document to create the node in. + trees: A list of DOM trees. + + Returns: + A list containing a single node. + """ + combined_histograms = doc.createElement('histograms') + + histogram_nodes = GetElementsByTagName(trees, 'histogram', depth=3) + sorted_histograms = sorted(histogram_nodes, + key=lambda node: node.getAttribute('name').lower()) + + for histogram in sorted_histograms: + combined_histograms.appendChild(histogram) + + return [combined_histograms] + + def MakeNodeWithChildren(doc, tag, children): """Creates a DOM node with specified tag and child nodes. @@ -82,12 +106,16 @@ def MergeTrees(trees): A merged DOM tree. """ doc = xml.dom.minidom.Document() - doc.appendChild(MakeNodeWithChildren(doc, 'histogram-configuration', - # This can result in the merged document having multiple and - # similar sections, but scripts ignore these anyway. - GetEnumsNodes(doc, trees) + - GetElementsByTagName(trees, 'histograms') + - GetElementsByTagName(trees, 'histogram_suffixes_list'))) + doc.appendChild( + MakeNodeWithChildren( + doc, + 'histogram-configuration', + # This can result in the merged document having multiple and + # similar sections, but scripts ignore these anyway. + GetEnumsNodes(doc, trees) + + # Sort the histograms by name and return a single node. + CombineHistogramsSorted(doc, trees) + + GetElementsByTagName(trees, 'histogram_suffixes_list'))) return doc diff --git a/tools/metrics/md2xml.py b/tools/metrics/md2xml.py index 78fd4b7eca844b..6033a57d24b48a 100755 --- a/tools/metrics/md2xml.py +++ b/tools/metrics/md2xml.py @@ -59,7 +59,6 @@ sys.path.append(os.path.join(os.path.dirname(__file__), 'histograms')) import pretty_print - SupportedTags = [ "added", "expires", @@ -142,12 +141,19 @@ def CreateNode(tree, tag, text): def main(): - if len(sys.argv) != 2: - sys.stderr.write('Usage: %s \n' % (sys.argv[0])) + """ + argv[1]: The path to the md file. + argv[2]: The relative path of the xml file to be added. + """ + if len(sys.argv) != 3: + sys.stderr.write('Usage: %s \n' % + (sys.argv[0])) sys.exit(1) + rel_path = sys.argv[2] with Trace('Reading histograms.xml') as t: - xml_path = path_util.GetHistogramsFile() + xml_path = path_util.GetInputFile( + os.path.join('tools', 'metrics', 'histograms', rel_path)) with open(xml_path, 'rb') as f: raw_xml = f.read()