fuchsia.diagnostics

添加时间:7

协议

ArchiveAccessor

fuchsia.diagnostics/reader.fidl 中定义

用于与不同诊断数据源交互的外部协议。

StreamDiagnostics

针对系统中的诊断数据创建迭代器。

  • 通过在 SNAPSHOT 模式下进行流式传输,迭代器可能受到限制, 系统诊断数据的当前状态。
  • 如果以 SNAPSHOT_THEN_SUBSCRIBE 方法流式传输,迭代器可能会无限 或“订阅”模式前期模型对模型的当前状态进行迭代, 对系统进行诊断后,两者都对新收到的诊断信息进行持续迭代 数据。
  • result stream 请求用于诊断问题的 [fuchsia.diagnostics/BatchIterator] 记录会公开给客户端

    • 墓碑: <ph type="x-smartling-placeholder">
        </ph>
      • INVALID_ARGS:StreamParameters 结构体中缺少必需的参数。
      • WRONG_TYPE:StreamParameters 结构体提供的选择器不正确 格式。
  • 请求 stream_parameters 是一个 [fuchsia.diagnostics/StreamParameter], 指定如何配置数据流。

请求

名称类型
stream_parameters StreamParameters
result_stream server_end<BatchIterator>

BatchIterator

fuchsia.diagnostics/reader.fidl 中定义

从概念上讲,这是一个目录迭代器,迭代器中的每个元素都是一个 完整文件。

GetNext

返回 [fuchsia.diagnostics/FormattedContent] 结构体的向量 格式由提供给 Reader 协议的 format_settings 参数指定 生成了此 BatchIterator。

空矢量表示数据层次结构已完全迭代, GetNext 调用将始终返回空矢量。

当 BatchIterator 通过订阅模型提供结果时,对 GetNext 的调用将 挂起,直到有新数据可用时,它不会返回空矢量。

  • 返回 FormattedContent 结构体的向量。连接到 批次应调用 GetNext(),直到出现空矢量 表示已读取整个数据层次结构。
  • 错误 [fuchsia.diagnostics/ReaderError] 值,表示读取底层数据层次结构时出现问题 或者设置这些层次结构的格式以填充 batch。请注意,这些 不包括无法读取单个组件的数据层次结构。 迭代器可容忍无法读取个别组件数据源, 指示该失败是超时还是格式不正确的二进制文件。 如果 GetNext 调用失败,那么数据层次结构的那部分结果 但对 GetNext 的后续调用将提供 FormattedDataHierarchies。

请求

<空>

响应

名称类型
payload BatchIterator_GetNext_Result

WaitForReady

表示 BatchIterator 已连接。如果 BatchIterator 尚未连接,此方法将挂起,直到连接成功。

添加时间:18

请求

<空>

响应

名称类型
payload BatchIterator_WaitForReady_Result

LogSettings

fuchsia.diagnostics/log_settings.fidl 中定义

此协议允许客户端修改组件的日志记录行为 。

RegisterInterest

已移除:18 已弃用:12

请求

名称类型
selectors vector<LogInterestSelector>[64]

SetInterest

请求更改匹配组成部分的兴趣。

每个组成部分包含一组请求的兴趣。

收到有关 LogSettings#SetInterest 的新请求时, 匹配组成部分的集合将获得新的最低兴趣度。 如果兴趣低于之前的最低兴趣,则 系统会发送新的最低利率对应的 SetInterest 请求。

如果与 LogSettings 的连接再次发送 SetInterest 请求,其之前的意向请求将被撤消。

完成与 LogSettings 的连接后,兴趣将包括 已撤消。每个匹配的组成部分的最低兴趣度都会更新为 该集合的新最低兴趣度。

添加时间:12

请求

名称类型
selectors vector<LogInterestSelector>[64]

响应

<空>

结构体

全部

fuchsia.diagnostics/selector.fidl 中定义

<空>

BatchIterator_GetNext_Response 资源

fuchsia.diagnostics/reader.fidl 中定义

字段类型说明默认
batch vector<FormattedContent>[64] 无默认设置

BatchIterator_WaitForReady_Response

fuchsia.diagnostics/reader.fidl 中定义

<空>

LogInterestSelector

fuchsia.diagnostics/log_settings.fidl 中定义

某项特定兴趣及其指定目标;

字段类型说明默认
selector ComponentSelector

与将请求其兴趣的组件相匹配。

无默认设置
interest Interest

将发送到与选择器匹配的组件的兴趣级别。

无默认设置

PropertySelector

fuchsia.diagnostics/selector.fidl 中定义

选择器,定义一组要匹配的节点,并在这些匹配的节点上 匹配的属性。

字段类型说明默认
node_path vector<StringSelector>[100]

充当模式匹配器的 StringSelector 的向量 代表通过命名节点层次结构的路径。矢量中的每个条目 是数据层次结构中单个命名节点的选择器。矢量 为已命名节点定义选择器,然后定义 数据层次结构。

节点路径支持通配符,也就是 glob 的单个级别 节点层次结构例如: root/a/b//d 将匹配所有位于节点 b 的子节点下方且名为 d 的节点。 root/a/b/c 将匹配 b 下以字符“c”开头的所有节点。

无默认设置
target_properties StringSelector

一个 StringSelector,用作 数据层次结构中的某个节点上以字符串命名的属性。

target_properties 支持通配符,以匹配所有属性 任何与 node_path 匹配的节点上。

无默认设置

SubtreeSelector

fuchsia.diagnostics/selector.fidl 中定义

定义要匹配的一组节点的选择器,整个子树包括 这些节点将被选中

字段类型说明默认
node_path vector<StringSelector>[100]

充当模式匹配器的 StringSelector 的向量 代表通过命名节点层次结构的路径。矢量中的每个条目 是数据层次结构中单个命名节点的选择器。矢量 为已命名节点定义选择器,然后定义 数据层次结构。

节点路径支持通配符,也就是 glob 的单个级别 节点层次结构例如: root/a/b//d 将匹配所有位于节点 b 的子节点下方且名为 d 的节点。 root/a/b/c 将匹配 b 下以字符“c”开头的所有节点。

无默认设置

精英

数据类型严格

类型:uint8

fuchsia.diagnostics/reader.fidl 中定义

名称说明
1

完成系统上的层次结构检查。

3

系统上的日志流。

格式严格

类型:uint32

fuchsia.diagnostics/format.fidl 中定义

用于指定以下对象的输出格式的枚举 阅读器结果。

名称说明
1

根据诊断 Json 转储读取结果 架构规范。

2

根据 Iquery 文本规范转储读取结果。

3

根据诊断 CBOR 转储读取结果 架构规范。

添加时间:HEAD

ReaderError 严格

类型:uint32

fuchsia.diagnostics/reader.fidl 中定义

描述传送结果时流式传输协议可能出现的故障状态的枚举 传递给客户端。

名称说明
1

严重级别严格

类型:uint8

fuchsia.diagnostics/severity.fidl 中定义

给定记录的严重程度。

名称说明
16

跟踪记录包含有关程序执行的详细信息。

32

调试记录包括面向开发阶段的程序执行信息。

48

信息记录包含有关程序执行的常规信息。(默认)

64

警告记录包含有关潜在问题操作的信息。

80

错误记录包含有关失败操作的信息。

96

严重记录传达与导致程序终止的操作相关的信息。

StreamMode 严格

类型:uint8

fuchsia.diagnostics/reader.fidl 中定义

用于指定用户连接和流式传输诊断指标的模式的枚举。

名称说明
1

视频流会在以下事件发生时提供诊断数据的快照: 然后结束

2

视频流会在以下事件发生时提供诊断数据的快照: 那么对视频流的后续调用将一直暂停,直到 有新的诊断数据可用。

3

在新的诊断数据可用之前,对该数据流的调用将挂起。在对 新到达的数据会进行缓冲。

表格

ComponentSelector

fuchsia.diagnostics/selector.fidl 中定义

用于指定组件名称的模式, 确定选择哪些组件

组件选择器支持通配符,即 glob 单个“level”/ 组件名称。例如: 核心//echo 将匹配仅在核心下级领域运行的所有 echo 实例,但没有任何 进一步嵌套。

组件选择器还支持递归通配符,它会 glob 多个 “级别”代表组件名称。例如: 核心/* 将匹配在 core/ 及其所有后代下运行的所有组件实例。 请注意,通配符不会选择核心本身。希望选择 包含根树的子树应传递两个选择器,例如: 核心 核心/** 递归通配符只能用作选择器的最后一部分。

Ordinal字段类型说明
moniker_segments vector<StringSelector>[25]

用于对所选组件的名称进行编码的模式的向量。 这些别名是相对于“根”的子级别名档案管理员的层次结构 都知道这一点

必须至少提供一个 StringSelector, 用于指定与以下内容匹配的组件名称: 当前选择器

兴趣

fuchsia.diagnostics/interest.fidl 中定义

“兴趣”表明了客户的所需的诊断数据 例如用于过滤消息或控制其生成。

Ordinal字段类型说明
min_severity Severity

所需的最低严重级别。组件应包含位于 或 高于此严重级别。

如果不存在,则解释为 Severity.INFO。

PerformanceConfiguration

fuchsia.diagnostics/reader.fidl 中定义

用于配置诊断数据流性能属性的参数。

Ordinal字段类型说明
max_aggregate_content_size_bytes uint64

由 返回的所有格式化内容的总大小上限 诊断流的批量迭代器。如果为数据流设置此值 在订阅模式下配置,当达到 。 注意:可选

batch_retrieval_timeout_seconds int64

指定等待单个事件的最大秒数的配置 以便“推送”其诊断数据此值可用于 或者如果您知道您感兴趣的组件位于 高负载。 如果未提供,则 PER_COMPONENT_ASYNC_TIMEOUT_SECONDS(如 https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master/src/diagnostics/archivist/src/constants.rs 。 注意:可选

选择器

fuchsia.diagnostics/selector.fidl 中定义

结构化选择器,包含模式匹配到 数据层次结构所属的节点所拥有的以字符串命名的属性 特定组件

这些选择器以文本形式表示为三个片段,各部分用英文冒号分隔, 指定以下内容: &lt;component_moniker&gt;:&lt;node_selector&gt;:&lt;property_selector&gt; 示例: 房源选择: realm1/realm2/echo:root/active_users:user_count

Subtree selection:
     realm1/realm2/echo:root/active_users

Ordinal字段类型说明
component_selector ComponentSelector

定义要匹配的组件名称模式的选择器 。

tree_selector TreeSelector

定义要匹配的数据层次结构属性的选择器 这些对象所拥有的数据层次结构中, component_selector

tree_names TreeNames

在应用之前要过滤的一组 fuchsia.inspect.Tree 名称 层次结构/属性选择器。

目前,不填写此字段等同于 TreeNames::all。这个 属于软过渡;最终它等同于 TreeNames::some(["root"]),其中“root”是默认的树名称。 https://fxbug.dev/355732696 跟踪此转换。

添加时间:22

StreamParameters

fuchsia.diagnostics/reader.fidl 中定义

配置诊断信息流所需的参数。

Ordinal字段类型说明
data_type DataType

一个 [fuchsia.diagnostics/DataType],用于指定诊断数据类型 才能流式传输到客户端 注意:必填

stream_mode StreamMode

一个 [fuchsia.diagnostics/StreamMode],用于指定 流式传输服务器提供流式结果。 注意:必填

format Format

一个 [fuchsia.diagnostics/Format],指定如何对返回 诊断数据。 注意:必填

client_selector_configuration ClientSelectorConfiguration

指定客户端希望从其 连接。客户端可以使用矢量请求特定的数据子集 也可以指定自己需要所有可用数据 注意:必填

batch_retrieval_timeout_seconds int64

指定等待单个事件的最大秒数的配置 以便“推送”其诊断数据此值可用于 或者如果您知道您感兴趣的组件位于 高负载。 如果未提供,则 PER_COMPONENT_ASYNC_TIMEOUT_SECONDS(如 https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master/src/diagnostics/archivist/src/constants.rs 。 注意:可选

performance_configuration PerformanceConfiguration

用于配置诊断数据流性能属性的参数。 注意:可选

联合体

BatchIterator_GetNext_Result 严格的资源

fuchsia.diagnostics/reader.fidl 中定义

Ordinal变体类型说明
response BatchIterator_GetNext_Response
err ReaderError
framework_err internal

BatchIterator_WaitForReady_Result 严格

fuchsia.diagnostics/reader.fidl 中定义

Ordinal变体类型说明
response BatchIterator_WaitForReady_Response
framework_err internal

ClientSelectorConfiguration 柔性

fuchsia.diagnostics/reader.fidl 中定义

Ordinal变体类型说明
selectors vector<SelectorArgument>

[fuchsia.diagnostics/SelectorArgument] 的向量, 提供额外的过滤条件来限定数据流的范围。空向量被视为 配置错误,会导致摘要信号指示不正确的参数。

select_all bool

如果设置 select_all,则 select_all 必须为 true, 其连接能够公开的所有数据。

FormattedContent 灵活 资源

fuchsia.diagnostics/reader.fidl 中定义

包含结构化诊断的完整层次结构的完美并集 数据,以便将内容单独解析为文件。

Ordinal变体类型说明
json fuchsia.mem/Buffer

编码为 JSON 的诊断架构。 VMO 最多可包含 1MB 的诊断数据。

text fuchsia.mem/Buffer

编码为文本的诊断架构。 VMO 最多可包含 1MB 的诊断数据。

cbor handle<vmo>

编码为 cbor 的诊断架构。 VMO 最多可包含 1MB 的诊断数据。 大小将以 ZX_PROP_VMO_CONTENT_SIZE 表示。

添加时间:HEAD

SelectorArgument 柔性环境

fuchsia.diagnostics/reader.fidl 中定义

用于归档选择器的参数可以是预先解析的 fidl 结构体或字符串表示法。

Ordinal变体类型说明
structured_selector Selector

用于定义模式匹配器的选择器,用于选择层次结构中的组件 和属性。

raw_selector string[1024]

表示 [fuchsia.diagnostics/Selector] 的原始字符串。 选择器定义了一个模式匹配器,用于选择层次结构中的组件 和属性。 注意:从 raw_selector 解析的所有 StringSelector 都将在 字符串模式模式,对特殊字符赋予重要意义。 如需了解详情,请参阅 https://fuchsia.dev/fuchsia-src/reference/diagnostics/selectors

StringSelector 柔性

fuchsia.diagnostics/selector.fidl 中定义

StringSelector 是一个联合,定义描述要匹配的模式的不同方式 字符串。

Ordinal变体类型说明
string_pattern string[100]

这是提供的字符串,用于定义 匹配。解析器处理星号 ()、冒号 (:) 和反斜杠 () 视为特殊字符。

如果您想要匹配实际星号 (),则必须对这些字符进行转义。 如果您希望匹配文本反斜杠 (),则必须对其进行转义。 如果您想匹配文本冒号 (:),则必须对这些冒号进行转义。

例如:abc 将匹配名称为“abc”的任何字符串。 例如:a* 将匹配名称为“a”的任何字符串。 例如:a* 将匹配任何以“a”开头的内容。 例如:a 将匹配任何以“a”开头的字符串。 例如:ab 将匹配任何以 a 开头、以 b 结尾的字符串。 例如:abc 将匹配任何以 a 开头、以 c 结尾且以 b 结尾的字符串 中间。

此外,“*”系统会将字面量视为特殊序列, 组件选择器中的多个级别。请参阅 |ComponentSelector|用于 。

exact_match string[100]

这是所提供的字符串,用于定义要匹配的字符串。否 字符被视为特殊字符,或带有特殊语法。

TreeNames 柔性

fuchsia.diagnostics/selector.fidl 中定义

TreeNames 是 fuchsia.inspect.Trees 的集合, 从选择器中解析出来。层次结构和属性选择器部分 将仅应用于与该集合匹配的树。

添加时间:22
Ordinal变体类型说明
some vector<string>

指定的树名子集。

all All

所有可用的树。相当于列出 数据。

TreeSelector 柔性

fuchsia.diagnostics/selector.fidl 中定义

TreeSelector 表示对命名节点层次结构的选择请求, 命名属性

Ordinal变体类型说明
subtree_selector SubtreeSelector

定义要匹配的一组节点的选择器,整个子树包括 这些节点将被选中

property_selector PropertySelector

选择器,定义一组要匹配的节点,并在这些匹配的节点上 属性相匹配。

常量

名称类型说明
MAXIMUM_ENTRIES_PER_BATCH 64 uint16

之所以选择大小 64,是因为分批中的条目是 VMO,每个 Fidl 消息的句柄不得超过 64 个。

MAXIMUM_RAW_SELECTOR_LENGTH 1024 uint16

大小限制为 1024,这是一个相当小的大小限制,可满足大多数 规范选择器

MAX_DATA_HIERARCHY_DEPTH 100 uint16
MAX_LOG_SELECTORS 64 uint8

可通过监听器指定的 LogInterestSelector 数量上限。

MAX_MONIKER_SEGMENTS 25 uint16
MAX_STRING_SELECTOR_LENGTH 100 uint16