blob: 75f15813c8e0f53251689b17a7bafc5d31311a6b [file] [log] [blame]
# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
description "Report UMA statistics each time login prompt is shown"
author "chromium-os-dev@chromium.org"
# This is triggered every time the login prompt is shown.
start on login-prompt-visible
script
# Records the difference between two timestamps in milliseconds.
# Only emits metrics if none of the three arguments are empty.
# Arguments are <starting point> <ending point> <metric name>
record_delta() {
if [ $# -eq 3 ]; then
metrics_client $3 $(($2 - $1)) 1 1000000 50
fi
}
CHROME_LOGOUT_STARTED=$(bootstat_get_last logout-started time-ms)
# Only record restart statistics if chrome performed a logout.
if [ -n "$CHROME_LOGOUT_STARTED" ]; then
CHROME_UI_POST_STOP=$(bootstat_get_last ui-post-stop time-ms)
CHROME_PROCESSES_TERMINATED=$(bootstat_get_last \
other-processes-terminated time-ms)
CHROME_X_TERMINATED=$(bootstat_get_last x-terminated time-ms)
CHROME_CRYPTOHOME_UNMOUNTED=$(bootstat_get_last \
cryptohome-unmounted time-ms)
CHROME_EXEC=$(bootstat_get_last chrome-exec time-ms)
CHROME_LOGIN_PROMPT_VISIBLE=$(bootstat_get_last \
login-prompt-visible time-ms)
# Record deltas between some interesting steps.
record_delta $CHROME_LOGOUT_STARTED $CHROME_UI_POST_STOP \
Uptime.LogoutToUIStopAfterLogout
record_delta $CHROME_UI_POST_STOP $CHROME_PROCESSES_TERMINATED \
Uptime.UIStopToProcessesTerminatedAfterLogout
record_delta $CHROME_PROCESSES_TERMINATED $CHROME_X_TERMINATED \
Uptime.ProcessesTerminatedToXTerminatedAfterLogout
record_delta $CHROME_X_TERMINATED $CHROME_EXEC \
Uptime.XTerminatedToChromeExecAfterLogout
record_delta $CHROME_EXEC $CHROME_LOGIN_PROMPT_VISIBLE \
Uptime.ChromeExecToLoginPromptVisibleAfterLogout
# Some summary statistics so we can account for everything.
record_delta $CHROME_LOGOUT_STARTED $CHROME_CRYPTOHOME_UNMOUNTED \
Uptime.Logout
record_delta $CHROME_CRYPTOHOME_UNMOUNTED $CHROME_LOGIN_PROMPT_VISIBLE \
Uptime.LoginPromptSetupTimeAfterLogout
record_delta $CHROME_LOGOUT_STARTED $CHROME_LOGIN_PROMPT_VISIBLE \
Uptime.LogoutToLoginPromptVisible
fi
end script