Health check is a standardized inspection metric. Adding a fuchsia.inspect.Health
child
to an Inspect Node gives that node the contained health information. This information can
be aggregated by system-wide health-checking tools.
User Guide
The following example illustrates the use of iquery for getting information about the component health status.
Examples:
$ iquery --recursive `iquery --find` .
a/root.inspect:
fuchsia.inspect.Health:
status = OK
connections:
0:
fuchsia.inspect.Health:
status = STARTING_UP
optional_database:
fuchsia.inspect.Health:
status = UNHEALTHY
message = "Cannot open local.file"
b/root.inspect:
fuchsia.inspect.Health:
status = OK
c/root.inspect:
fuchsia.inspect.Health:
status = UNHEALTHY
message = "Failed to connect to fuchsia.example.RequiredService"
$ iquery --health a/root.inspect b/root.inspect c/root.inspect
a/root.inspect = OK
b/root.inspect = OK
c/root.inspect = UNHEALTHY (Failed to connect to fuchsia.example.RequiredService)
$ iquery --health --summary a/root.inspect b/root.inspect c/root.inspect
c/root.inspect = UNHEALTHY (Failed to connect to fuchsia.example.RequiredService)
$ iquery --health --summary a/root.inspect b/root.inspect not_found/root.inspect
not_found/root.inspect = NOT_FOUND
$ iquery --health --recursive a/root.inspect b/root.inspect c/root.inspect
a/root.inspect = HEALTHY
a/root.inspect#connections/0 = STARTING_UP
a/root.inspect#optional_database = UNHEALTHY (Cannot open local.file)
b/root.inspect = OK
c/root.inspect = UNHEALTHY (Failed to connect to fuchsia.example.RequiredService)
Using health checks in components
The following sections explain how to use the library in Fuchsia components written in various programming languages.
Rust
use fuchsia_inspect as inspect;
use fuchsia_inspect::health;
fn main() {
// If you have your own inspector, it's also possible to export its health.
/* inspector needs to be initialized */
let inspector = /* ... */
let mut node = inspector::root();
let mut health = fuchsia_inspect::health::Node(node);
// ...
health.set_ok();
health.set_unhealthy("I'm not feeling well.");
health.set_ok(); // The component is healthy again.
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.