问题排查工具参考文档

本页的目的是引导用户使用可能有助于解决 Fuchsia 开发者可能遇到的常见问题的工具。

问题

  • 我想了解我的组件在运行时执行了哪些操作。


    • 检查
    • 公开有关组件状态的结构化诊断信息。 这有助于监控组件在给定时间点的状态。 借助“检查”工具,组件可以公开任意类型的键值对层次结构,并在执行过程中对其进行更新。在组件仍在运行时,可以对这些数据进行快照和检查。 检查通常用于表示组件的工作集和近期历史记录的相关信息,以便在调试期间提供帮助。 组件开发者可以通过依赖于其所选语言(Rust、C++)的库,并调用适当的方法来更改其记录的状态,从而使用 Inspect。 您可以使用 ffx inspect 工具或 ffx target snapshot 读取检查数据。

    • 日志
    • 在组件执行期间输出字符串日志。 与许多系统一样,Fuchsia 支持对字符串进行基本日志记录,以便在执行特定行源代码时记录一些信息。 日志由归档程序组件汇总。您可以使用 `ffx log` 读取这些日志。

    • 结构化日志
    • 在日志消息中存储结构化键值对。 除了基于文本的日志之外,Fuchsia 还支持编码为类型化键值对层次结构的完全结构化日志记录。 开发者可以在 Rust 中使用 tracing crate 宏或在 C++ 中使用 FX_SLOG 宏来编写结构化日志。

    • 跟踪记录
    • Fuchsia 的跟踪系统提供了一种全面的方式,可从 Fuchsia 用户空间进程和 Zircon 内核收集、汇总和可视化诊断跟踪信息。轨迹(如日志)代表 Fuchsia 系统中的事件,但粒度更细、频率更高,并且供机器使用,以计算其他数据分析和可视化结果。

    • zxdb
    • zxdb 是适用于在 Fuchsia 上运行的原生代码的控制台模式调试程序。


  • 我想自动对快照进行后处理,以识别重要值或错误情况


    • 分类
    • 分类功能会从诊断数据中选择和处理值,在设备端和设备端以外生成有用的操作和数据洞见。 分类功能可以:显示计算值;归档快照(在设备上作为检测引擎运行时);以及输出有关非正常值的警告。


  • 我想根据特定条件自动触发快照



  • 我想衡量特定函数的运行时



  • 我想在现场从用户拥有的设备收集指标


    • 钴蓝
    • Cobalt 是一个流水线,用于从用户拥有的现场设备收集指标数据并生成汇总报告。 Cobalt 包含一套用于保护用户隐私和匿名性的功能,同时为产品所有者提供改进产品所需的数据。


工具

  • 公开有关组件状态的结构化诊断信息。 这有助于监控组件在给定时间点的状态。 借助“检查”工具,组件可以公开任意层次结构的类型化键值对,并在执行过程中对其进行更新。在组件仍在运行时,可以对这些数据进行快照和检查。 检查通常用于表示组件的工作集和近期历史记录的相关信息,以便在调试期间提供帮助。 组件开发者可以通过依赖于其所选语言(Rust、C++)的库,并调用适当的方法来更改其记录的状态,从而使用 Inspect。 您可以使用 ffx inspect 工具或 ffx target snapshot 读取检查数据。


    检查功能可以解决的问题:

    • 我想了解我的组件在运行时执行了哪些操作。

    • 分类

  • 在组件执行期间输出字符串日志。 与许多系统一样,Fuchsia 支持对字符串进行基本日志记录,以便在执行特定行源代码时记录一些信息。 日志会由归档程序组件汇总。您可以使用 `ffx log` 读取这些日志。


    日志可以解决的问题:

    • 我想了解我的组件在运行时执行了哪些操作。

    • 结构化日志

  • 在日志消息中存储结构化键值对。 除了基于文本的日志之外,Fuchsia 还支持编码为类型化键值对层次结构的完全结构化日志记录。 开发者可以在 Rust 中使用 tracing crate 宏或在 C++ 中使用 FX_SLOG 宏来编写结构化日志。


    结构化日志可以解决的问题:

    • 我想了解我的组件在运行时执行了哪些操作。


  • 持久性会存储 Inspect 数据,并在后续启动时发布这些数据。 有时,在设备重新启动之前,无法从设备导出诊断数据,例如,如果网络存在问题。持久化会将所选的 Inspect 数据写入磁盘,然后在下次启动时将其发布回 Inspect。


    持久性可解决的问题:


    • 检查

  • 采样器从 Inspect 读取数据,并将其转发给 Cobalt。 采样器提供了一种向 Cobalt 发送数据的简单方法。您无需将应用关联到 Cobalt 服务并直接使用它,只需在 Inspect 中发布数据并编写一个简单的配置文件条目,告知 Sampler 提取数据并将其发送到 Cobalt 即可。


    Sampler 可以解决的问题:


    • 检查

  • Fuchsia 的跟踪系统提供了一种全面的方式,可从 Fuchsia 用户空间进程和 Zircon 内核收集、汇总和可视化诊断跟踪信息。轨迹(如日志)代表 Fuchsia 系统中的事件,但粒度更细、频率更高,并且供机器使用,以计算其他数据分析和可视化结果。


    跟踪功能可以解决的问题:

    • 我想了解我的组件在运行时执行了哪些操作。
    • 我想衡量特定函数的运行时

    • 检查
    • 日志

  • 分类功能会从诊断数据中选择和处理值,在设备端和设备端以外生成有用的操作和数据洞见。 分类功能可以:显示计算值;归档快照(在设备上作为 Detect 引擎运行时);以及输出有关非正常值的警告。


    分类功能可以解决的问题:

    • 我想自动对快照进行后处理,以识别重要值或错误情况

    • 检查
    • 检测

  • Cobalt 是一个流水线,用于从用户拥有的现场设备收集指标数据并生成汇总报告。 Cobalt 包含一套用于保护用户隐私和匿名性的功能,同时为产品所有者提供改进产品所需的数据。


    Cobalt 可以解决的问题:

    • 我想在现场从用户拥有的设备收集指标


  • 检测扫描 检查设备上的数据,以确定何时提交崩溃报告。 检测扫描是使用分类语言配置的,每隔几分钟运行一次。


    Detect 可以解决的问题:

    • 我想根据特定条件自动触发快照

    • 检查
    • 分类

  • zxdb 是适用于在 Fuchsia 上运行的原生代码的控制台模式调试程序。


    zxdb 可以解决的问题:

    • 我想了解我的组件在运行时执行了哪些操作。