Merge changes from topic "boottime"

* changes:
  statsd atom: Fix errara and missing item for boottime metrics
  Rename FS_MGR_FS_STAT into FS_MGR_FS_STAT_DATA_PARTITION
  Add proto definition for boottime metrics
This commit is contained in:
Treehugger Robot
2020-02-06 07:41:39 +00:00
committed by Gerrit Code Review

View File

@@ -351,6 +351,10 @@ message Atom {
228 [(allow_from_any_uid) = true];
PerfettoUploaded perfetto_uploaded =
229 [(log_from_module) = "perfetto"];
BootTimeEventDuration boot_time_event_duration_reported = 239;
BootTimeEventElapsedTime boot_time_event_elapsed_time_reported = 240;
BootTimeEventUtcTime boot_time_event_utc_time_reported = 241;
BootTimeEventErrorCode boot_time_event_error_code_reported = 242;
UserspaceRebootReported userspace_reboot_reported = 243;
}
@@ -3739,6 +3743,210 @@ message RoleRequestResultReported {
optional Result result = 9;
}
/**
* Represents boot time event with duration in ms.
*
* Logged from: bootstat and various system server components. Check each enums for details.
*/
message BootTimeEventDuration {
enum DurationEvent {
UNKNOWN = 0;
// Bootloader time excluding BOOTLOADER_UI_WAIT + boot complete time. Logged from bootstat.
ABSOLUTE_BOOT_TIME = 1;
// Bootloader's 1st stage execution time.
// Logged from bootstat.
BOOTLOADER_FIRST_STAGE_EXEC = 2;
// Bootloader's 1st stage loading time.
// Logged from bootstat.
BOOTLOADER_FIRST_STAGE_LOAD = 3;
// Bootloader's kernel loading time.
// Logged from bootstat.
BOOTLOADER_KERNEL_LOAD = 4;
// Bootloader's 2nd stage execution time.
// Logged from bootstat.
BOOTLOADER_SECOND_STAGE_EXEC = 5;
// Bootloader's 2nd stage loading time.
// Logged from bootstat.
BOOTLOADER_SECOND_STAGE_LOAD = 6;
// Duration for Bootloader to show unlocked device's warning UI. This should not happen
// for locked device.
// Logged from bootstat.
BOOTLOADER_UI_WAIT = 7;
// Total time spend in bootloader. This is the sum of all BOOTLOADER_* listed above.
// Logged from bootstat.
BOOTLOADER_TOTAL = 8;
// Shutdown duration inside init for the reboot before the current boot up.
// Logged from f/b/services/.../BootReceiver.java.
SHUTDOWN_DURATION = 9;
// Total time for mounting of disk devices during bootup.
// Logged from f/b/services/.../BootReceiver.java.
MOUNT_DEFAULT_DURATION = 10;
// Total time for early stage mounting of disk devices during bootup.
// Logged from f/b/services/.../BootReceiver.java.
MOUNT_EARLY_DURATION = 11;
// Total time for late stage mounting of disk devices during bootup.
// Logged from f/b/services/.../BootReceiver.java.
MOUNT_LATE_DURATION = 12;
// Average time to scan non-system app after OTA
// Logged from f/b/services/.../PackageManagerService.java
OTA_PACKAGE_MANAGER_INIT_TIME = 13;
// Time to initialize Package manager after OTA
// Logged from f/b/services/.../PackageManagerService.java
OTA_PACKAGE_MANAGER_DATA_APP_AVG_SCAN_TIME = 14;
// Time to scan all system app from Package manager after OTA
// Logged from f/b/services/.../PackageManagerService.java
OTA_PACKAGE_MANAGER_SYSTEM_APP_AVG_SCAN_TIME = 15;
// Init's total time for cold boot stage.
// Logged from bootstat.
COLDBOOT_WAIT = 16;
// Init's total time for initializing selinux.
// Logged from bootstat.
SELINUX_INIT = 17;
// Time since last factory reset.
// Logged from bootstat.
FACTORY_RESET_TIME_SINCE_RESET = 18;
// Init's total time spent for completing the 1st stage.
// Logged from bootstat.
ANDROID_INIT_STAGE_1 = 19;
}
// Type of the event.
optional DurationEvent event = 1;
// Duration of the event in ms.
optional int64 duration_millis = 2;
}
/**
* Represents the start of specific boot time event during bootup in ms. This is usually a time
* since boot-up.
*
* Logged from: bootstat and various system server components. Check each enums for details.
*/
message BootTimeEventElapsedTime {
enum ElapsedTimeEvent {
UNKNOWN = 0;
// Time when init starts 1st stage. Logged from bootstat.
ANDROID_INIT_STAGE_1 = 1;
// Time when sys.boot_completed prop is set.
// Logged from bootstat.
BOOT_COMPLETE = 2;
// BOOT_COMPLETE for encrypted device.
BOOT_COMPLETE_ENCRYPTION = 3;
// BOOT_COMPLETE for device with no encryption.
BOOT_COMPLETE_NO_ENCRYPTION = 4;
// Adjusted BOOT_COMPLETE for encrypted device extracting decryption time.
BOOT_COMPLETE_POST_DECRYPT = 5;
// BOOT_COMPLETE after factory reset.
FACTORY_RESET_BOOT_COMPLETE = 6;
// BOOT_COMPLETE_NO_ENCRYPTION after factory reset.
FACTORY_RESET_BOOT_COMPLETE_NO_ENCRYPTION = 7;
// BOOT_COMPLETE_POST_DECRYPT after factory reset.
FACTORY_RESET_BOOT_COMPLETE_POST_DECRYPT = 8;
// BOOT_COMPLETE after OTA.
OTA_BOOT_COMPLETE = 9;
// BOOT_COMPLETE_NO_ENCRYPTION after OTA.
OTA_BOOT_COMPLETE_NO_ENCRYPTION = 10;
// BOOT_COMPLETE_POST_DECRYPT after OTA.
OTA_BOOT_COMPLETE_POST_DECRYPT = 11;
// Time when the system starts sending LOCKED_BOOT_COMPLETED broadcast.
// Logged from f/b/services/.../UserController.java
FRAMEWORK_LOCKED_BOOT_COMPLETED = 12;
// Time when the system starts sending BOOT_COMPLETED broadcast.
// Logged from f/b/services/.../UserController.java
FRAMEWORK_BOOT_COMPLETED = 13;
// Time when the package manager starts init.
// Logged from f/b/services/.../SystemServer.java
PACKAGE_MANAGER_INIT_START = 14;
// Time when package manager is ready
// Logged from f/b/services/.../SystemServer.java
PACKAGE_MANAGER_INIT_READY = 15;
// Represents the time when user has entered unlock credential for system with user pin.
// Logged from bootstat.
POST_DECRYPT = 16;
// Represents the start of zygote's init.
// Logged from zygote itself.
ZYGOTE_INIT_START = 17;
// Represents the start of secondary zygote's init.
// TODO: add logging to zygote
SECONDARY_ZYGOTE_INIT_START = 18;
// Represents the start of system server's init.
// Logged from f/b/services/.../SystemServer.java
SYSTEM_SERVER_INIT_START = 19;
// Represents the completion of system server's init.
// Logged from f/b/services/.../SystemServer.java
SYSTEM_SERVER_READY = 20;
// Represents the start of launcher during boot-up.
// TODO: add logging
LAUNCHER_START = 21;
// Represents the completion of launcher's initial rendering. User can use other apps from
// launcher from this point.
// TODO: add logging
LAUNCHER_SHOWN = 22;
}
// Type of the event.
optional ElapsedTimeEvent event = 1;
// Time since bootup for the event.
// It should be acquired from SystemClock elapsedRealtime() call or equivalent.
optional int64 time_millis = 2;
}
/**
* Boot time events with UTC time.
*
* Logged from: bootstat and various system server components. Check each enums for details.
*/
message BootTimeEventUtcTime {
enum UtcTimeEvent {
UNKNOWN = 0;
// Time of the bootstat's marking of 1st boot after the last factory reset.
// Logged from bootstat.
FACTORY_RESET_RESET_TIME = 1;
// The time when bootstat records FACTORY_RESET_* events. This is close to
// BOOT_COMPLETE time for the current bootup.
// Logged from bootstat.
FACTORY_RESET_CURRENT_TIME = 2;
// DUplicate of FACTORY_RESET_RESET_TIME added for debugging purpose.
// Logged from bootstat.
FACTORY_RESET_RECORD_VALUE = 3;
}
// Type of the event.
optional UtcTimeEvent event = 1;
// UTC time for the event.
optional int64 utc_time_secs = 2;
}
/**
* Boot time events representing specific error code during bootup.
* Meaning of error code can be different per each event type.
*
* Logged from: bootstat and various system server components. Check each enums for details.
*/
message BootTimeEventErrorCode {
enum ErrorCodeEvent {
UNKNOWN = 0;
// Linux error code for time() call to get the current UTC time.
// Logged from bootstat.
FACTORY_RESET_CURRENT_TIME_FAILURE = 1;
// Represents UmountStat before the reboot for the current boot up. Error codes defined
// as UMOUNT_STAT_* from init/reboot.cpp.
// Logged from f/b/services/.../BootReceiver.java.
SHUTDOWN_UMOUNT_STAT = 2;
// Reprepsents fie system mounting error code of /data partition for the current boot.
// Error codes defined as combination of FsStatFlags from system/core/fs_mgr/fs_mgr.cpp.
// Logged from f/b/services/.../BootReceiver.java.
FS_MGR_FS_STAT_DATA_PARTITION = 3;
}
// Type of the event.
optional ErrorCodeEvent event = 1;
// error code defined per each event type.
// For example, this can have a value of FsStatFlags.FS_STAT_FULL_MOUNT_FAILED for the event of
// FS_MGR_FS_STAT.
optional int32 error_code = 2;
}
//////////////////////////////////////////////////////////////////////
// Pulled atoms below this line //
//////////////////////////////////////////////////////////////////////