| - | |
| key: Runtime Observation | |
| use_case: | | |
| I want to understand what my component is doing at runtime. | |
| tools: | |
| - Inspect | |
| - Logs | |
| - Structured Logs | |
| - Tracing | |
| - zxdb | |
| description: | | |
| It is often useful to be able to look at what your component is | |
| actually doing when it runs on a system. Fuchsia, like most | |
| systems, supports [Logging][Logs] so components may provide | |
| human-readable output on their state. Logs may be augmented with | |
| [Structured Data][Structured Logs] that is typed and can be | |
| aggregated by other tools. | |
| Fuchsia components have the unique ability to publish their | |
| ongoing state for inspection using the [Inspect feature][Inspect]. | |
| Generally, Inspect tells you what your component is doing <i>right | |
| now</i> while Logs tell you how you got there. Both are useful | |
| to have a comprehensive view of component status. | |
| related-problems: [] | |
| - | |
| key: Snapshot Triage | |
| use_case: | | |
| I want to automatically post-process snapshots to identify notable | |
| values or error conditions | |
| tools: | |
| - Triage | |
| description: | | |
| Fuchsia Feedback Snapshots contain a lot of data about what was | |
| happening on a Fuchsia device, and often the volume of data makes | |
| it difficult to really see what is happening on the device at a | |
| high level. | |
| The [Automatic Triage Tool][Triage] is a system for applying a | |
| series of rules to a snapshot to extract useful data. This | |
| includes top-level gauges (which display values from the system, | |
| such as memory usage) and alerts (which describe some condition | |
| identified on the system). The system is fully configurable on | |
| a per-product or per-component basis and is available for local | |
| use as well. | |
| related-problems: [] | |
| - | |
| key: Trigger Snapshot | |
| use_case: | | |
| I want to automatically trigger taking a snapshot on a specific condition | |
| tools: | |
| - Detect | |
| description: | | |
| When things go wrong on devices, it is useful to understand what | |
| was happening at that moment in time. [Detect][Detect] is basically | |
| a version of [Triage][Triage] that works on device. Like Triage, | |
| it supports producing warnings based on the state of the device. | |
| Unlike off-device Triage, Detect supports a new action type that | |
| files a crash report containing a snapshot when the condition | |
| is detected. | |
| related-problems: [] | |
| - | |
| key: Trace a function | |
| use_case: | | |
| I want to measure the runtime of specific functions | |
| tools: | |
| - Tracing | |
| description: | | |
| Fuchsia's tracing system offers a comprehensive way to collect, | |
| aggregate, and visualize diagnostic tracing information from the | |
| Fuchsia user space processes and the Zircon kernel. Traces, like | |
| logs, represent events from a Fuchsia system, but are fine grained, | |
| higher frequency and are meant for machine consumption to compute | |
| other insights and visualizations. | |
| related-problems: [] | |
| - | |
| key: Collect metrics from devices | |
| use_case: | | |
| I want to collect metrics from user-owned devices in the field | |
| tools: | |
| - Cobalt | |
| description: | | |
| Cobalt is a pipeline for collecting metrics data from user-owned devices in | |
| the field and producing aggregated reports. | |
| Cobalt includes a suite of features for preserving user privacy and | |
| anonymity while giving product owners the data they need to improve their | |
| products. | |
| related-problems: [] |