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()