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
,用于通过 Inspect API 查询组件公开的数据。ffx trace
:用于收集、汇总和直观呈现诊断跟踪信息。- zxdb 用于调试在 Fuchsia 上运行的代码。zxdb 是适用于在 Fuchsia 上运行的代码的控制台模式调试程序。
您可能还需要执行以下操作:
您还可以按照诊断 Codelab 中的说明操作:
您还可以按照跟踪教程和指南操作: