协议
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 结构体提供的选择器不正确 格式。
- 墓碑:
<ph type="x-smartling-placeholder">
-
请求
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 尚未连接,此方法将挂起,直到连接成功。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
BatchIterator_WaitForReady_Result
|
LogSettings
在 fuchsia.diagnostics/log_settings.fidl 中定义
此协议允许客户端修改组件的日志记录行为 。
RegisterInterest
请求
名称 | 类型 |
---|---|
selectors |
vector<LogInterestSelector>[64]
|
SetInterest
请求更改匹配组成部分的兴趣。
每个组成部分包含一组请求的兴趣。
收到有关 LogSettings#SetInterest 的新请求时,
匹配组成部分的集合将获得新的最低兴趣度。
如果兴趣低于之前的最低兴趣,则
系统会发送新的最低利率对应的 SetInterest
请求。
如果与 LogSettings
的连接再次发送 SetInterest
请求,其之前的意向请求将被撤消。
完成与 LogSettings
的连接后,兴趣将包括
已撤消。每个匹配的组成部分的最低兴趣度都会更新为
该集合的新最低兴趣度。
请求
名称 | 类型 |
---|---|
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 中定义
用于指定以下对象的输出格式的枚举 阅读器结果。
名称 | 值 | 说明 |
---|---|---|
JSON |
1 |
根据诊断 Json 转储读取结果 架构规范。 |
TEXT |
2 |
根据 Iquery 文本规范转储读取结果。 |
CBOR |
3 |
根据诊断 CBOR 转储读取结果 架构规范。 添加时间:HEAD
|
ReaderError 严格
类型:uint32
在 fuchsia.diagnostics/reader.fidl 中定义
描述传送结果时流式传输协议可能出现的故障状态的枚举 传递给客户端。
名称 | 值 | 说明 |
---|---|---|
IO |
1 |
严重级别严格
类型:uint8
在 fuchsia.diagnostics/severity.fidl 中定义
给定记录的严重程度。
名称 | 值 | 说明 |
---|---|---|
跟踪 |
16 |
跟踪记录包含有关程序执行的详细信息。 |
DEBUG |
32 |
调试记录包括面向开发阶段的程序执行信息。 |
INFO |
48 |
信息记录包含有关程序执行的常规信息。(默认) |
WARN |
64 |
警告记录包含有关潜在问题操作的信息。 |
ERROR |
80 |
错误记录包含有关失败操作的信息。 |
严重 |
96 |
严重记录传达与导致程序终止的操作相关的信息。 |
StreamMode 严格
类型:uint8
在 fuchsia.diagnostics/reader.fidl 中定义
用于指定用户连接和流式传输诊断指标的模式的枚举。
名称 | 值 | 说明 |
---|---|---|
快照 |
1 |
视频流会在以下事件发生时提供诊断数据的快照: 然后结束 |
SNAPSHOT_THEN_SUBSCRIBE |
2 |
视频流会在以下事件发生时提供诊断数据的快照: 那么对视频流的后续调用将一直暂停,直到 有新的诊断数据可用。 |
订阅 |
3 |
在新的诊断数据可用之前,对该数据流的调用将挂起。在对 新到达的数据会进行缓冲。 |
表格
ComponentSelector
在 fuchsia.diagnostics/selector.fidl 中定义
用于指定组件名称的模式, 确定选择哪些组件
组件选择器支持通配符,即 glob 单个“level”/ 组件名称。例如: 核心//echo 将匹配仅在核心下级领域运行的所有 echo 实例,但没有任何 进一步嵌套。
组件选择器还支持递归通配符,它会 glob 多个 “级别”代表组件名称。例如: 核心/* 将匹配在 core/ 及其所有后代下运行的所有组件实例。 请注意,通配符不会选择核心本身。希望选择 包含根树的子树应传递两个选择器,例如: 核心 核心/** 递归通配符只能用作选择器的最后一部分。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
moniker_segments |
vector<StringSelector>[25]
|
用于对所选组件的名称进行编码的模式的向量。 这些别名是相对于“根”的子级别名档案管理员的层次结构 都知道这一点 必须至少提供一个 StringSelector, 用于指定与以下内容匹配的组件名称: 当前选择器 |
兴趣
在 fuchsia.diagnostics/interest.fidl 中定义
“兴趣”表明了客户的所需的诊断数据 例如用于过滤消息或控制其生成。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
min_severity |
Severity
|
所需的最低严重级别。组件应包含位于 或 高于此严重级别。 如果不存在,则解释为 Severity.INFO。 |
PerformanceConfiguration
在 fuchsia.diagnostics/reader.fidl 中定义
用于配置诊断数据流性能属性的参数。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
max_aggregate_content_size_bytes |
uint64
|
由 返回的所有格式化内容的总大小上限 诊断流的批量迭代器。如果为数据流设置此值 在订阅模式下配置,当达到 。 注意:可选 |
2 |
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 中定义
结构化选择器,包含模式匹配到 数据层次结构所属的节点所拥有的以字符串命名的属性 特定组件
这些选择器以文本形式表示为三个片段,各部分用英文冒号分隔, 指定以下内容: <component_moniker>:<node_selector>:<property_selector> 示例: 房源选择: realm1/realm2/echo:root/active_users:user_count
Subtree selection:
realm1/realm2/echo:root/active_users
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
component_selector |
ComponentSelector
|
定义要匹配的组件名称模式的选择器 。 |
2 |
tree_selector |
TreeSelector
|
定义要匹配的数据层次结构属性的选择器
这些对象所拥有的数据层次结构中,
|
3 |
tree_names |
TreeNames
|
在应用之前要过滤的一组 fuchsia.inspect.Tree 名称 层次结构/属性选择器。 目前,不填写此字段等同于 TreeNames::all。这个 属于软过渡;最终它等同于 TreeNames::some(["root"]),其中“root”是默认的树名称。 https://fxbug.dev/355732696 跟踪此转换。 添加时间:22
|
StreamParameters
在 fuchsia.diagnostics/reader.fidl 中定义
配置诊断信息流所需的参数。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
data_type |
DataType
|
一个 [fuchsia.diagnostics/DataType],用于指定诊断数据类型 才能流式传输到客户端 注意:必填 |
2 |
stream_mode |
StreamMode
|
一个 [fuchsia.diagnostics/StreamMode],用于指定 流式传输服务器提供流式结果。 注意:必填 |
3 |
format |
Format
|
一个 [fuchsia.diagnostics/Format],指定如何对返回 诊断数据。 注意:必填 |
4 |
client_selector_configuration |
ClientSelectorConfiguration
|
指定客户端希望从其 连接。客户端可以使用矢量请求特定的数据子集 也可以指定自己需要所有可用数据 注意:必填 |
5 |
batch_retrieval_timeout_seconds |
int64
|
指定等待单个事件的最大秒数的配置 以便“推送”其诊断数据此值可用于 或者如果您知道您感兴趣的组件位于 高负载。 如果未提供,则 PER_COMPONENT_ASYNC_TIMEOUT_SECONDS(如 https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master/src/diagnostics/archivist/src/constants.rs 。 注意:可选 |
6 |
performance_configuration |
PerformanceConfiguration
|
用于配置诊断数据流性能属性的参数。 注意:可选 |
联合体
BatchIterator_GetNext_Result 严格的资源
在 fuchsia.diagnostics/reader.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
BatchIterator_GetNext_Response
|
|
2 |
err |
ReaderError
|
|
3 |
framework_err |
internal
|
BatchIterator_WaitForReady_Result 严格
在 fuchsia.diagnostics/reader.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
BatchIterator_WaitForReady_Response
|
|
3 |
framework_err |
internal
|
ClientSelectorConfiguration 柔性
在 fuchsia.diagnostics/reader.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
selectors |
vector<SelectorArgument>
|
[fuchsia.diagnostics/SelectorArgument] 的向量, 提供额外的过滤条件来限定数据流的范围。空向量被视为 配置错误,会导致摘要信号指示不正确的参数。 |
2 |
select_all |
bool
|
如果设置 select_all,则 select_all 必须为 true, 其连接能够公开的所有数据。 |
FormattedContent 灵活 资源
在 fuchsia.diagnostics/reader.fidl 中定义
包含结构化诊断的完整层次结构的完美并集 数据,以便将内容单独解析为文件。
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
json |
fuchsia.mem/Buffer
|
编码为 JSON 的诊断架构。 VMO 最多可包含 1MB 的诊断数据。 |
2 |
text |
fuchsia.mem/Buffer
|
编码为文本的诊断架构。 VMO 最多可包含 1MB 的诊断数据。 |
3 |
cbor |
handle<vmo>
|
编码为 cbor 的诊断架构。 VMO 最多可包含 1MB 的诊断数据。 大小将以 ZX_PROP_VMO_CONTENT_SIZE 表示。 添加时间:HEAD
|
SelectorArgument 柔性环境
在 fuchsia.diagnostics/reader.fidl 中定义
用于归档选择器的参数可以是预先解析的 fidl 结构体或字符串表示法。
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
structured_selector |
Selector
|
用于定义模式匹配器的选择器,用于选择层次结构中的组件 和属性。 |
2 |
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 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
string_pattern |
string[100]
|
这是提供的字符串,用于定义 匹配。解析器处理星号 ()、冒号 (:) 和反斜杠 () 视为特殊字符。 如果您想要匹配实际星号 (),则必须对这些字符进行转义。 如果您希望匹配文本反斜杠 (),则必须对其进行转义。 如果您想匹配文本冒号 (:),则必须对这些冒号进行转义。 例如:abc 将匹配名称为“abc”的任何字符串。
例如:a* 将匹配名称为“a”的任何字符串。
例如:a* 将匹配任何以“a”开头的内容。
例如:a 将匹配任何以“a”开头的字符串。
例如:ab 将匹配任何以 a 开头、以 b 结尾的字符串。
例如:abc 将匹配任何以 a 开头、以 c 结尾且以 此外,“*”系统会将字面量视为特殊序列, 组件选择器中的多个级别。请参阅 |ComponentSelector|用于 。 |
2 |
exact_match |
string[100]
|
这是所提供的字符串,用于定义要匹配的字符串。否 字符被视为特殊字符,或带有特殊语法。 |
TreeNames 柔性
在 fuchsia.diagnostics/selector.fidl 中定义
TreeNames 是 fuchsia.inspect.Trees 的集合, 从选择器中解析出来。层次结构和属性选择器部分 将仅应用于与该集合匹配的树。
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
some |
vector<string>
|
指定的树名子集。 |
2 |
all |
All
|
所有可用的树。相当于列出 数据。 |
TreeSelector 柔性
在 fuchsia.diagnostics/selector.fidl 中定义
TreeSelector 表示对命名节点层次结构的选择请求, 命名属性
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
subtree_selector |
SubtreeSelector
|
定义要匹配的一组节点的选择器,整个子树包括 这些节点将被选中 |
2 |
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 |