Reviewed on: 2020-11-16
Archivist collects component lifecycle events, inspect snapshots, and log streams on Fuchsia, making them available over the fuchsia.diagnostics/ArchiveAccessor protocol.
This project is included in the bringup build product and most others as a result.
The production Archivist is “mounted” in the component topology in the bootstrap realm.
Realms can run their own Archivist by running archivist-for-embedding.cm from the archivist-for-embedding package. This has a number of sharp edges today and the Diagnostics team recommends consulting with us in the process of writing a new integration.
Unit tests are available in the archivist-tests package.
Integration tests for system logging are available in these packages:
archivist-integration-testsarchivist-integration-tests-v2test-logs-from-crashesThe entrypoint is located in src/main.rs, with the rest of the code living in src/*.rs files. Unit tests are co-located with the code and integration tests are located in the tests/ directory.
Each data type the Archivist supports has a directory:
src/inspectsrc/lifecyclesrc/logsArchivist accepts a configuration file to allow product-specific configuration separately from its package. The configuration file must be valid JSON with a single object at the top level. Its path within Archivist's namespace is defined by the --config-path argument.
See the generated docs for Archivist's serde-based config parser for details.