协议
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 |