If the matching string contains a [, \ or *, then it is also checked with a regex match. Exact match is always tried firsts. If we do not find an exact string match, switch to iterate through the entire list for regex strings to find a match. This allows us to scale with details without consuming a large number of enums, permitting details that we do not necessarily want resolution on to propagate to TRON. The hierarchical nature of the boot reason <reason>,<subreason>,<detail>... can cause scenarios where the <detail> does not matter to TRON, but does matter to bugreport collection. Add a bootstat --boot_reason_enum function to expose and test the kBootReasonMap matchihg algorithm. Add a kBootReasonMap test that exhaustively tests all built-in entries, and an example of one regex entry. New regex entries added to bootstat.cpp will need a series of exact match examples added into filter_kBootReasonMap() function. Test: boot_reason_test.sh kBootReasonMap (or all tests) Bug: 116838876 Bug: 128929506 Change-Id: I3f7b5de22f99195b7ce99672a212174365960b3f Merged-In: I3f7b5de22f99195b7ce99672a212174365960b3f |
||
|---|---|---|
| .. | ||
| .clang-format | ||
| Android.bp | ||
| AndroidTest.xml | ||
| boot_event_record_store.cpp | ||
| boot_event_record_store.h | ||
| boot_event_record_store_test.cpp | ||
| boot_reason_test.sh | ||
| bootstat-debug.rc | ||
| bootstat.cpp | ||
| bootstat.rc | ||
| OWNERS | ||
| README.md | ||
| testrunner.cpp | ||
bootstat
The bootstat command records boot events (e.g., firmware_loaded,
boot_complete) and the relative time at which these events occurred. The
command also aggregates boot event metrics locally and logs the metrics for
analysis.
Usage: bootstat [options]
options include:
-h, --help Show this help
-l, --log Log all metrics to logstorage
-p, --print Dump the boot event records to the console
-r, --record Record the timestamp of a named boot event
--record_boot_reason Record the reason why the device booted
--record_time_since_factory_reset Record the time since the device was reset
Relative time
The timestamp recorded by bootstat is the uptime of the system, i.e., the number of seconds since the system booted.
Recording boot events
To record the relative time of an event during the boot phase, call bootstat
with the -r option and the name of the boot event.
$ bootstat -r boot_complete
The relative time at which the command runs is recorded along with the name of the boot event to be persisted.
Logging boot events
To log the persisted boot events, call bootstat with the -l option.
$ bootstat -l
bootstat logs all boot events recorded using the -r option to the EventLog
using the Tron histogram. These logs may be uploaded by interested parties
for aggregation and analysis of boot time across different devices and
versions.
Printing boot events
To print the set of persisted boot events, call bootstat with the -p option.
$ bootstat -p
Boot events:
------------
boot_complete 71