Fuchsia 提供了各种系统来监控正在运行的 Fuchsia 系统。每种可观测性系统都会提供不同的信息和权衡。通过 可观测性系统具有如下特点:
日志记录
日志描述的是人类可读的内容,因此在诊断方面发挥着重要作用
在 Fuchsia 系统上发生的事件。在 Fuchsia 中,组件可以
通过 fuchsia.logger.LogSink
记录日志消息
协议。sdk/lib/syslog/cpp
和 src/lib/diagnostics/log/rust
是用于在 Fuchsia 上记录日志的受支持库。这些库提供了
实现标签、结构化键值对、
元数据、消息和 fuchsia.logger.LogSink
集成。对于
如需详细了解 Fuchsia 组件如何写入日志,请参阅
记录日志。
如果您希望实现以下目标,则应该考虑使用日志记录:
- 查看直观易懂的低频消息和事件。
- 查看快照和其他 Fuchsia 工具中的数据。
跟踪记录
Fuchsia 的跟踪系统提供了一种 收集、汇总和直观呈现 Fuchsia 用户空间进程和 Zircon 内核。轨迹(如日志)也表示 Fuchsia 系统中的事件,但粒度更细、频率更高,并且供机器使用,以计算其他数据分析和可视化结果。将结构化日志记录和跟踪结合使用有助于 更高效地诊断、调试和排查各种 Fuchsia 目标设备。
如果您不需要实时查看数据,则应考虑使用跟踪功能 并希望能够:
- 收集亚微秒级精细结构化数据。
- 在交互式查看器中直观呈现数据。
- 在 SQL 中查询和汇总数据。
检查
Fuchsia 提供了 Inspect,使 Fuchsia 组件能够公开
有关设备当前状态的结构化诊断信息。然后,您可以使用 ffx inspect
工具查询此诊断信息。如需了解详情,请参阅 Fuchsia 组件检查和 ffx inspect
。
如果您希望能够:
- 监控组件在特定时间的状态。
- 表示有关 组件。
- 收集组件状态的低频率快照数据,以启用全车队指标。
- 在快照和工具中查看检查数据。
- 构建可视化功能、进行分析,并创建基于检测的自动异常值检测 快照
钴蓝
Cobalt 是一个流水线,用于从 字段并生成汇总报告。
Cobalt 包含一套可保护用户隐私和匿名性的功能 同时为产品所有者提供改进产品所需的数据。
使用 Cobalt 时,建议使用 Inspect 对组件进行插桩。如果您的组件使用 Inspect 进行插桩,Sampler 会将 Inspect 诊断数据转发到 Cobalt 遥测系统以进行舰队监控。
如需详细了解 Cobalt,请参阅 Cobalt:内置隐私保护功能的遥测。
快照
Fuchsia 设备能够捕获包含整个系统当前状态信息的快照。这包括有关系统上运行的 Fuchsia build 的信息、内核和系统日志,以及系统及其组件的 Inspect 数据。您还可以使用
ffx target snapshot
工具。
检测
此外,Fuchsia 设备运行 Detect,该工具能够根据定期快照一部分组件 Inspect 数据并检查各种条件(如果为真,则会触发崩溃或反馈报告)来触发崩溃报告。
使用诊断和可观测性功能
在您使用 Fuchsia 日志、检查和跟踪来诊断问题时, 希望使用其中的部分工具:
ffx log
,用于从 Fuchsia 设备检索日志。ffx target snapshot
,用于拍摄 Fuchsia 目标设备的状态。ffx triage
,用于分析日志并检查 Fuchsia 快照。ffx inspect
,用于查询组件公开的数据 检查 API。ffx trace
,用于收集、汇总和直观呈现诊断信息 跟踪信息- zxdb 来调试在 Fuchsia 上运行的代码。zxdb 是 控制台模式调试程序,适用于在 Fuchsia 上运行的代码。
您可能还需要执行以下操作:
您还可以按照诊断 Codelab 中的说明操作:
您还可以按照以下跟踪教程和指南操作: