# CrOS bootstat

This is the Chromium OS 'bootstat' utility.  The utility is used
to generate timestamps and other performance statistics during
system boot.

## CLI Specification

### bootstat

```sh
bootstat <event-name>
```

This command gathers and records the contents of `/proc/uptime` and disk
statistics for the boot disk (the full disk, not the boot partition), and
associates the data with the passed in `<event-name>`.

### bootstat_get_last

```sh
bootstat_get_last <event-name> [ <stat> ... ]
```

Print on standard output the value of the selected statistics recorded when
the specified event occurred.  These are the available statistics:

*   `time`: Total time since kernel startup at the time of the event.
*   `read-sectors`: Total sectors read from any partition of the boot device
    since kernel startup.
*   `write-sectors`: Total sectors written to any partition of the boot device
    since kernel startup.

If multiple statistics are requested, they are reported in order, one
per line.  If no statistics are listed on the command line, the
default is to report `time`.

If an event has occurred more than once since kernel startup, only
the statistics from the last occurrence are reported.

## API Specification

The C and C++ API is defined in [`bootstat.h`](./bootstat.h).
See that header for specification details.

## Design and Implementation Details

Uptime data are stored in a file named `/tmp/uptime-<event-name>`;
disk statistics are stored in a file named `/tmp/disk-<event-name>`.
This convention is a concession to pre-existing code that depends on
these files existing with these specific names, including the
[platform.BootPerf] test, the boot-complete upstart job,
and the Chrome code to report boot time on the login screen.

New code should treat the file names as an implementation detail,
not as the interface.  You should not add new code that depends on
the file names; instead, you should enhance the bootstat command
and/or library to provide access to the data you need.

[platform.BootPerf]: https://chromium.googlesource.com/chromiumos/platform/tast-tests/+/HEAD/src/chromiumos/tast/remote/bundles/cros/platform/boot_perf.go
