blob: b2c69852cd43d1c239e129467ac7ec242083fac3 [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This file is used to generate a comprehensive list of Cryptohome histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please send CLs to chromium-metrics-reviews@google.com rather than to specific
individuals. These CLs will be automatically reassigned to a reviewer within
about 5 minutes. This approach helps the metrics team to load-balance incoming
reviews. Googlers can read more about this at go/gwsq-gerrit.
-->
<histogram-configuration>
<histograms>
<histogram name="Cryptohome.AsyncDBusRequest" units="ms"
expires_after="2022-01-02">
<owner>zuan@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
Records the total running time of every async dbus calls of Cryptohome at
server side.
</summary>
</histogram>
<histogram name="Cryptohome.AsyncDBusRequest.Inqueue" units="ms"
expires_after="2020-08-17">
<owner>zuan@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
Records the total inqueue time of every async dbus calls of Cryptohome at
server side. Recorded when the first stage of this requests is served.
</summary>
</histogram>
<histogram name="Cryptohome.ChecksumStatus" enum="CryptohomeChecksumStatus"
expires_after="2021-08-09">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
Checksum status of critical persistent data used by Cryptohome. This status
is recorded every time the cryptohomed daemon reads a file.
</summary>
</histogram>
<histogram name="Cryptohome.DeletedUserProfiles" units="profiles"
expires_after="2022-02-05">
<owner>simmonsjosh@google.com</owner>
<owner>src/ui/file_manager/OWNERS</owner>
<summary>
In low disk space scenarios, Cryptohome erases whole user profiles. This is
a number of user profiles deleted during cleanup. Only reported when
non-zero.
</summary>
</histogram>
<histogram name="Cryptohome.DeprecatedApiCalled"
enum="CryptohomeDeprecatedApiCalled" expires_after="2021-12-12">
<owner>apronin@chromium.org</owner>
<owner>louiscollard@chromium.org</owner>
<owner>zuan@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
Records when a deprecated API function in cryptohome is called, so we know
which exposed DBus API can be removed without side effect.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationEndStatus"
enum="DircryptoMigrationEndStatus" expires_after="2020-03-01">
<owner>dspaid@chromium.org</owner>
<summary>
The status of the user home directory migration from ecryptfs to
ext4-crypto. This is logged once at the end of each migration.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationFailedErrorCode"
enum="PlatformFileError" expires_after="M81">
<owner>kinaba@chromium.org</owner>
<summary>
The error code of file operation by which the user home directory migration
from ecryptfs to ext4-crypto has failed. This is logged once the migration
encounters a file I/O error.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationFailedOperationType"
enum="DircryptoMigrationFailedOperationType" expires_after="M78">
<owner>kinaba@chromium.org</owner>
<summary>
The type of file operation at which the user home directory migration from
ecryptfs to ext4-crypto has failed. This is logged once the migration
encounters a file I/O error.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationFailedPathType"
enum="DircryptoMigrationFailedPathType" expires_after="M78">
<owner>kinaba@chromium.org</owner>
<summary>
The category of the path where the user home directory migration from
ecryptfs to ext4-crypto has failed. This is logged once the migration
encounters a file I/O error.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationInitialFreeSpaceInMb" units="MB"
expires_after="M85">
<owner>dspaid@chromium.org</owner>
<summary>
The total amount of free disk space on the system when the user started the
migration from ecryptfs to ext4-crypto. This is only logged when the user
encounters an insufficient space error.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationNoSpaceFailureFreeSpaceInMb"
units="MB" expires_after="M85">
<owner>dspaid@chromium.org</owner>
<summary>
The total amount of free disk space on the system when the user received an
insufficient space error during the migration from ecryptfs to ext4-crypto.
This is only logged when the user encounters an insufficient space error.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationNoSpaceXattrSizeInBytes"
units="bytes" expires_after="M85">
<owner>dspaid@chromium.org</owner>
<summary>
The total number of bytes of xattr data that we are trying to store on a
file when we receive an insufficient space error. This includes both xattr
data already present on the file as well as the new xattr we are trying to
set. This is only logged during ecryptfs to ext4-crypto migration if we
receive an insufficient space error when setting a new extended attribute.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationStartStatus"
enum="DircryptoMigrationStartStatus" expires_after="M81">
<owner>dspaid@chromium.org</owner>
<summary>
The status of the user home directory migration from ecryptfs to
ext4-crypto. This is logged once at the start of each migration.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationTotalByteCountInMb" units="MB"
expires_after="M81">
<owner>hashimoto@chromium.org</owner>
<summary>
The total byte count (MB) of the data in a user's home directory which is
being migrated from ecryptfs to ext4-crypto. This is logged once when a new
migration starts.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMigrationTotalFileCount" units="units"
expires_after="M81">
<owner>hashimoto@chromium.org</owner>
<summary>
The total file count in a user's home directory which is being migrated from
ecryptfs to ext4-crypto. This is logged once when a new migration starts.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMinimalMigrationEndStatus"
enum="DircryptoMigrationEndStatus" expires_after="M77">
<owner>dspaid@chromium.org</owner>
<owner>pmarko@chromium.org</owner>
<summary>
The status of the user home directory minimal migration from ecryptfs to
ext4-crypto. This is logged once at the end of each minimal migration.
</summary>
</histogram>
<histogram name="Cryptohome.DircryptoMinimalMigrationStartStatus"
enum="DircryptoMigrationStartStatus" expires_after="M77">
<owner>dspaid@chromium.org</owner>
<owner>pmarko@chromium.org</owner>
<summary>
The status of the user home directory minimal migration from ecryptfs to
ext4-crypto. This is logged once at the start of each minimal migration.
</summary>
</histogram>
<histogram name="Cryptohome.DiskCleanupProgress"
enum="CryptohomeDiskCleanupProgress" expires_after="2021-12-26">
<owner>dlunev@chromium.org</owner>
<owner>sarthakkukreti@chromium.org</owner>
<summary>
In low disk space scenarios, Cryptohome erases caches while target amount of
free disk space is not reached. It starts from low priority categories. This
histogram reports which topmost priority was reached to fulfill a cleanup
request.
</summary>
</histogram>
<histogram name="Cryptohome.DiskCleanupResult"
enum="CryptohomeDiskCleanupResult" expires_after="2021-11-21">
<owner>vsavu@google.com</owner>
<owner>dlunev@chromium.org</owner>
<summary>Records the result of triggering disk cleanup.</summary>
</histogram>
<histogram name="Cryptohome.Errors" enum="CryptohomeError"
expires_after="2021-11-14">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>Cryptohome errors.</summary>
</histogram>
<histogram name="Cryptohome.EvkkEncryptionType" enum="EvkkEncryptionType"
expires_after="2021-08-01">
<obsolete>
Replaced with Cryptohome.WrappingKeyDerivation.Mount 2021-03-08 which
describes the derivation types more comprehensively.
</obsolete>
<owner>enlightened@chromium.org</owner>
<owner>tnagel@chromium.org</owner>
<summary>
Indicates whether Encrypted Vault Keyset Key (EVKK) is TPM wrapped. This is
reported when the Derive function inside scrypt auth block or TPM auth block
is called, which happens during cryptohome mount phase.
</summary>
</histogram>
<histogram name="Cryptohome.FreeDiskSpaceTotalFreedInMb" units="MiB"
expires_after="2022-07-13">
<owner>vsavu@chromium.org</owner>
<owner>dlunev@chromium.org</owner>
<summary>
In low disk space scenarios, Cryptohome performs a lot of disk space
operations to erase data. This is the amount of space that was released by
the automatic cleanup.
</summary>
</histogram>
<histogram name="Cryptohome.FreeDiskSpaceTotalTime2" units="ms"
expires_after="2022-07-13">
<owner>dlunev@chromium.org</owner>
<owner>sarthakkukreti@chromium.org</owner>
<summary>
In low disk space scenarios, Cryptohome performs a lot of disk space
operations to erase data. This is a number of milliseconds taken to perform
a cleanup. Reported only if longer than 5 ms. Increased maximum and number
of buckets compared to FreeDiskSpaceTotalTime.
</summary>
</histogram>
<histogram name="Cryptohome.GCache.FreedDiskSpaceInMb" units="MB"
expires_after="2022-07-13">
<owner>dlunev@chromium.org</owner>
<owner>sarthakkukreti@chromium.org</owner>
<summary>
This is an amount of Google Drive cache (MB) which was evicted by cryptohome
due to shortage of remaining disk space. Reported only if something was
deleted (greater than zero).
</summary>
</histogram>
<histogram name="Cryptohome.HomedirEncryptionType" enum="HomedirEncryptionType"
expires_after="2021-12-19">
<owner>dspaid@chromium.org</owner>
<summary>
The encryption type used for a user's cryptohome directory. This is logged
each time the cryptohome is mounted.
</summary>
</histogram>
<histogram name="Cryptohome.InvalidateDirCryptoKeyResult" enum="BooleanSuccess"
expires_after="2021-09-26">
<owner>yich@google.com</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
The errors resulting from interacting with the InvalidateDirCryptoKey
operation.
</summary>
</histogram>
<histogram base="true" name="Cryptohome.LECredential"
enum="CryptohomeLECredError" expires_after="2022-01-09">
<!-- Name completed by histogram_suffixes name="LECredentialOps" -->
<owner>pmalani@chromium.org</owner>
<owner>apronin@chromium.org</owner>
<owner>mnissler@chromium.org</owner>
<owner>allenwebb@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
Events related to Low Entropy (LE) credential management. These are logged
every time an operation involving a LE credential is performed.
</summary>
</histogram>
<histogram name="Cryptohome.LegacyCodePathUsage.{Location}"
enum="BooleanCodePathUsage" expires_after="2022-01-09">
<owner>hardikgoyal@chromium.org</owner>
<owner>kerrnel@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
This will report usage of {Location} paths to see if it is actually being
used or not to enable us to decide if we want to continue supporting
{Location} or not.
</summary>
<token key="Location">
<variant name="AddKeyResetSeedGeneration"
summary="Reset seed generated during Add Key operation"/>
</token>
</histogram>
<histogram name="Cryptohome.MigrationToGaiaId"
enum="CryptohomeMigrationToGaiaId" expires_after="M97">
<owner>alemate@chromium.org</owner>
<owner>rsorokin@chromium.org</owner>
<owner>cros-oac@google.com</owner>
<summary>
This is the status of cryptohome migration to GaiaId. Every time user logs
in current migration status is recorded.
</summary>
</histogram>
<histogram name="Cryptohome.MigrationUI.ConsumedBatteryPercent" units="%"
expires_after="2020-07-01">
<owner>fukino@chromium.org</owner>
<summary>
The amount of consumed battery level during cryptohome encryption migration.
This is logged when the battery level decreases during migration, and the
data is used to check if the minimum battery level required to start
migration is appropriate.
</summary>
</histogram>
<histogram name="Cryptohome.MigrationUI.FirstScreen"
enum="MigrationUIFirstScreen" expires_after="2020-07-01">
<owner>fukino@chromium.org</owner>
<summary>
The first screen in the encryption migration UI, which is shown when a user
attempts to log in to the system and old encryption (eCryptfs) is detected.
</summary>
</histogram>
<histogram name="Cryptohome.MigrationUI.MigrationResult"
enum="MigrationUIMigrationResult" expires_after="2021-01-17">
<owner>fukino@chromium.org</owner>
<summary>
The result of encryption migration from eCryptfs to Ext4 dircrypto. The
recorded result is what the migration UI in Chrome side is notified from
cryptohomed.
</summary>
</histogram>
<histogram name="Cryptohome.MigrationUI.RemoveCryptohomeResult"
enum="MigrationUIRemoveCryptohomeResult" expires_after="2020-07-01">
<owner>fukino@chromium.org</owner>
<summary>
The result of the removal of user's cryptohome. When the migration UI is
notified that the migration failed, the UI tries to remove the user's
cryptohome to make sure that the user can create clean crytohome directory
in the next sign-in.
</summary>
</histogram>
<histogram name="Cryptohome.MigrationUI.UserChoice"
enum="MigrationUIUserChoice" expires_after="2020-07-01">
<owner>fukino@chromium.org</owner>
<summary>
User's choice when the system is ready to migrate encryption. The user can
start migration or skip it. It is used to know how many users have skipped
migration.
</summary>
</histogram>
<histogram name="Cryptohome.MigrationUI.VisibleScreen" enum="MigrationUIScreen"
expires_after="2020-10-25">
<owner>fukino@chromium.org</owner>
<summary>
How many times each screen in migration UI is shown to the user. A screen is
recorded as a visible screen when the screen is kept displayed at least for
a second.
</summary>
</histogram>
<histogram name="Cryptohome.OOPMountCleanupResult"
enum="CryptohomeOOPMountCleanupResult" expires_after="2021-12-12">
<owner>betuls@chromium.org</owner>
<owner>jorgelo@chromium.org</owner>
<summary>
The result of a cryptohome out-of-process mount cleanup. Recorded once per
logout.
</summary>
</histogram>
<histogram name="Cryptohome.OOPMountOperationResult"
enum="CryptohomeOOPMountOperationResult" expires_after="2021-12-12">
<owner>betuls@chromium.org</owner>
<owner>jorgelo@chromium.org</owner>
<summary>
The result of a cryptohome out-of-process mount operation. Recorded once per
login attempt.
</summary>
</histogram>
<histogram name="Cryptohome.ParallelTasks" units="count"
expires_after="2021-11-14">
<owner>zuan@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
How many tasks runs in parallel typically in the mount thread of cryptohome.
Recorded when a requests comes in. Counts of 1 will not reported.
</summary>
</histogram>
<histogram name="Cryptohome.RestoreSELinuxContextResultForHome"
enum="BooleanSuccess" expires_after="2022-02-25">
<owner>betuls@chromium.org</owner>
<owner>jorgelo@chromium.org</owner>
<summary>
The result of a cryptohome restore SELinux context operation of user home
directory /home/.shadow/salted-hash and its subdirectories. Recorded once
per login attempt.
</summary>
</histogram>
<histogram name="Cryptohome.RestoreSELinuxContextResultForShadow"
enum="BooleanSuccess" expires_after="2022-02-25">
<owner>betuls@chromium.org</owner>
<owner>jorgelo@chromium.org</owner>
<summary>
The result of a cryptohome restore SELinux context operation of shadow
directory /home/.shadow and its subdirectories. Recorded on a user's first
login on a device or login after factory reset.
</summary>
</histogram>
<histogram name="Cryptohome.TimeBetweenFreeDiskSpace" units="s"
expires_after="2022-01-01">
<owner>vsavu@google.com</owner>
<owner>dlunev@chromium.org</owner>
<owner>sarthakkukreti@chromium.org</owner>
<summary>
The amount of time (s) between disk cleanup runs. If there is sufficient
disk space, nothing is reported. The first cleanup run after boot is not
reported.
</summary>
</histogram>
<histogram name="Cryptohome.TimeSessionUnlock" units="ms"
expires_after="2021-12-12">
<owner>kerrnel@chromium.org</owner>
<owner>mnissler@chromium.org</owner>
<summary>
The amount of time (ms) for Chrome OS cryptohome daemon to verify the user's
password during an unlock operation.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToCompleteDircryptoMigration" units="ms"
expires_after="M81">
<owner>dspaid@chromium.org</owner>
<summary>
The amount of time (ms) for the user's home directory to be migrated from
ecryptfs to ext4-crypto. If the migration is interrupted and subsequently
resumed (such as due to power loss) then no value is recorded for either
attempt.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToCompleteDircryptoMinimalMigration" units="ms"
expires_after="M85">
<owner>dspaid@chromium.org</owner>
<summary>
The amount of time (ms) for the user's home directory to be migrated from
ecryptfs to ext4-crypto if the minimal migration method was used. If the
minimal migration is interrupted and subsequently resumed (such as due to
power loss) then no value is recorded for either attempt.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToInitPkcs11" units="ms"
expires_after="2021-10-24">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
The amount of time (ms) for Chrome OS cryptohome daemon to initialize the
PKCS#11. Initializations under 1 second represent checks on a previously
initialized PKCS#11, and should be discarded for analysis.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToMountEx" units="ms"
expires_after="2021-12-12">
<owner>jorgelo@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
The amount of time for Chrome OS cryptohome to mount the encrypted home
directory.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToMountGuestAsync" units="ms"
expires_after="2021-01-01">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
The amount of time (ms) for Chrome OS cryptohome to mount the encrypted
guest home directory asynchronously.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToMountGuestEx" units="ms"
expires_after="2021-12-12">
<owner>jorgelo@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
The amount of time for Chrome OS cryptohome to mount the encrypted guest
home directory.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToPerformEphemeralMount" units="ms"
expires_after="2021-12-12">
<owner>jorgelo@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
The amount of time cryptohome spends actively performing mounts when
creating an ephemeral user data directory. Does not include any process or
async dispatch overhead.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToPerformMount" units="ms"
expires_after="2021-12-05">
<owner>betuls@chromium.org</owner>
<owner>jorgelo@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
The amount of time cryptohome spends performing the mounts for the user's
encrypted home directory. Does not include any process or async dispatch
overhead.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToPerformOOPMountCleanup" units="ms"
expires_after="2022-01-02">
<owner>jorgelo@chromium.org</owner>
<owner>betuls@chromium.org</owner>
<summary>
The amount of time (ms) cryptohome spends terminating and reaping the
out-of-process mounter, which includes the time spent by the mounter itself
tearing down the user home directory.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToPerformOOPMountOperation" units="ms"
expires_after="2021-12-12">
<owner>jorgelo@chromium.org</owner>
<owner>betuls@chromium.org</owner>
<summary>
The amount of time (ms) cryptohome spends running the out-of-process
mounter, until the user home directory is finalized.
</summary>
</histogram>
<histogram name="Cryptohome.TimeToTakeTpmOwnership" units="ms"
expires_after="2021-11-14">
<owner>apronin@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
The amount of time (ms) for Chrome OS cryptohome daemon to take ownership of
the TPM.
</summary>
</histogram>
<histogram name="Cryptohome.TpmResults" enum="CryptohomeTpmResults"
expires_after="2021-12-19">
<owner>afakhry@chromium.org</owner>
<summary>
The errors resulting from interacting with the Trusted Platform Module (TPM)
device.
</summary>
</histogram>
<histogram name="Cryptohome.UserSubdirHasCorrectGroup" enum="BooleanCorrect"
expires_after="2022-02-01">
<owner>austinct@chromium.org</owner>
<owner>src/ui/file_manager/OWNERS</owner>
<summary>
Records whether the user's profile directory (/home/chronos/u-{hash}) is
owned by group chronos-access. This is recorded once per log-in.
</summary>
</histogram>
<histogram name="Cryptohome.WrappingKeyDerivation.Create"
enum="WrappingKeyDerivation" expires_after="2022-05-01">
<owner>tnagel@chromium.org</owner>
<owner>zauri@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<owner>cros-privacy-core@google.com</owner>
<summary>
Derivation types of the Cryptohome's wrapping key. Reporting happens when
the Cryptohome is being created or when the new keys are added to the
existing Cryptohome. Concretely during a user creation, password change,
registration of a new authentication method (e.g. PIN), migration from
scrypt to TPM/GSC (in case the security chip becomes available later).
</summary>
</histogram>
<histogram name="Cryptohome.WrappingKeyDerivation.Mount"
enum="WrappingKeyDerivation" expires_after="2022-05-01">
<owner>tnagel@chromium.org</owner>
<owner>zauri@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<owner>cros-privacy-core@google.com</owner>
<summary>
Derivation types of the Cryptohome's wrapping key. Reporting happens mostly
when the Cryptohome is being mounted. Concretely the reporting happens
during a user creation, registration/removal of an authentication methods
(e.g. PIN), user login, password change, migration from scrypt to TPM/GSC
(in case the security chip becomes available later).
</summary>
</histogram>
<histogram name="Cryptohome.{Action}AuthBlockType"
enum="CryptohomeAuthBlockType" expires_after="2021-10-14">
<owner>yich@google.com</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
The type of auth block that we {Action} in cryptohome. Recorded when
cryptohome accesses the auth block.
</summary>
<token key="Action">
<variant name="Create" summary="created"/>
<variant name="Derive" summary="derived"/>
</token>
</histogram>
<histogram name="CryptohomeClient" units="ms" expires_after="2021-11-14">
<owner>zuan@chromium.org</owner>
<owner>cros-hwsec+uma@chromium.org</owner>
<summary>
Records the time duration of every dbus outgoing calls issued from the
client of Crypthome in Chrome side.
</summary>
</histogram>
</histograms>
</histogram-configuration>