fuchsia.diagnostics

新增:7

协议

ArchiveAccessor

在 fuchsia.diagnostics/reader.fidl 中定义

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

StreamDiagnostics

在系统上创建诊断数据迭代器。

  • 迭代器可以通过在 SNAPSHOT 模式下流式传输来限制数量,仅提供系统上诊断数据的当前状态。
  • 通过以 SNAPSHOT_THEN_SUBSCRIBE 或 SUBSCRIBE 模式进行流式传输,迭代器可能是无限的;前者首先提供对系统当前状态的迭代,然后两者都提供对新到达的诊断数据的持续迭代。
  • 请求 result stream 一个 [fuchsia.diagnostics/BatchIterator],诊断记录通过该迭代器向客户端公开。

    • epitaphs:
      • INVALID_ARGS:StreamParameters 结构体中缺少必需参数。
      • WRONG_TYPE:StreamParameters 结构体提供的选择器格式不正确。
  • 请求 stream_parameters 是一个 [fuchsia.diagnostics/StreamParameter],用于指定如何配置数据流。

请求

名称类型
stream_parameters StreamParameters
result_stream server_end:BatchIterator

StreamDiagnosticsToSocket

将诊断数据直接流式传输到套接字。 这适用于偏好基于套接字的流式传输的主机工具或组件。

Added: HEAD

请求

名称类型
stream_parameters StreamParameters
stream handle<socket>

响应

名称类型
payload ArchiveAccessor_StreamDiagnosticsToSocket_Result

WaitForReady

确保已与服务器建立连接,以防止在使用此协议的其他流水线方法时发生竞态。

Added: HEAD

请求

<EMPTY>

响应

名称类型
payload ArchiveAccessor_WaitForReady_Result

BatchIterator

在 fuchsia.diagnostics/reader.fidl 中定义

从概念上讲,这是一个目录迭代器,其中迭代器中的每个元素都是一个完整的单个文件,可以与其他结果串联。

GetNext

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

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

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

  • 返回 FormattedContent 结构体的向量。连接到 Batch 的客户端应调用 GetNext(),直到返回空向量,这表示已读取整个数据层次结构。
  • 错误 a [fuchsia.diagnostics/ReaderError] 值,表示在读取底层数据层次结构或设置这些层次结构的格式以填充 batch 时出现问题。请注意,这些问题不包括单个组件的数据层次结构无法读取。 迭代器可以容忍单个组件数据源无法读取,无论该失败是超时还是二进制文件格式错误。 如果 GetNext 调用失败,系统会丢弃该数据层次结构结果子集,但后续对 GetNext 的调用将提供 FormattedDataHierarchies 的新子集。

请求

<EMPTY>

响应

名称类型
payload BatchIterator_GetNext_Result

WaitForReady

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

新增:18

请求

<EMPTY>

响应

名称类型
payload BatchIterator_WaitForReady_Result

LogFlusher

在 fuchsia.diagnostics/log_flush.fidl 中定义

Added: HEAD

WaitUntilFlushed

通过日志记录流水线将所有待处理日志刷新到串行端口。在调用 Flush 之前写入套接字的日志,在返回时保证会完全写入串行。在 Archivist 收到此调用后写入套接字的日志不保证会被刷新。 此外,在进行此调用之前,套接字必须实际连接到 Archivist。如果 Archivist 尚未收到套接字,这些日志可能会被丢弃。 为确保日志正确刷新,请务必在记录时等待初始兴趣。重要提示:此方法可能会从主机调用,但主机套接字不会通过此方法刷新。 如果您从主机写入数据(而不是在设备上,则无法保证此类日志会被输出)。

请求

<EMPTY>

响应

名称类型
payload LogFlusher_WaitUntilFlushed_Result

LogSettings

在 fuchsia.diagnostics/log_settings.fidl 中定义

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

SetComponentInterest

请求更改匹配组件的兴趣。

每个组件都包含一组请求的兴趣。

当收到针对 LogSettings#SetComponentInterest 的新请求时,匹配组件的集合会收到新的最低兴趣。如果兴趣低于之前的最低兴趣,则会发送包含新最低兴趣的 SetComponentInterest 请求。

如果与 LogSettings 的连接发送了另一个 SetComponentInterest 请求,则其之前的兴趣请求将被撤消。

与 LogSettings 的连接完成后,兴趣会被撤消,除非 persist 设置为 true。每个匹配的组件最低利息都会更新为集合中的新最低利息。

新增:27

请求

名称类型
payload LogSettingsSetComponentInterestRequest

响应

<EMPTY>

LogStream

在 fuchsia.diagnostics/log_stream.fidl 中定义

Added: HEAD

关联

使客户端能够流式传输存储在 Archivist 中的所有日志。 需要一个可写入的数据报或流套接字句柄。 如果使用 subscribe_to_manifest,则需要流套接字,否则可以使用流套接字或数据报套接字。

日志将以原始 FXT 格式写入,并在记录末尾附加两个额外参数,具体取决于传递的选项:

 - `$__moniker`: the moniker of the component that emitted the log.
 - `$__url`: the URL of the component that emitted the log.
 - `$__rolled_out`: the number of logs that were rolled out from the
   buffer before this one.

请求

名称类型
socket handle<socket>
opts LogStreamOptions

示例

在 fuchsia.diagnostics/sample.fidl 中定义

配置 Archivist,使其定期提醒您通过 SampleParameters 提供的数据的状态。

如果给定配置导致命中,则会通过提供的 sink 发送 BatchIterator。该迭代器可能会耗尽,然后 sink 将保持静默,直到下一次命中。

Archivist 不会告知客户端哪些数据成功返回,因为它没有固有的优势能力来执行此操作。需要知道查询了哪些数据的客户端应缓存其选择器并使用 selectors::select_from_hierarchy(或 C++ 中的类似方法)。

Added: HEAD

提交

Commit 会快速返回错误,因为所有配置都会在采集第一个样本之前进行验证。

请求

名称类型
sink client_end:SampleSink

响应

名称类型
payload Sample_Commit_Result

设置

添加示例参数。

由于这受频道大小的限制,因此该 API 会在 300 项时分页。除非选择器特别大,否则应该可以放入通道中。

使用 Commit 表示所有样本均已发送。

请求

名称类型
sample_parameters SampleParameters

SampleSink

在 fuchsia.diagnostics/sample.fidl 中定义

SampleSink 由客户端提供,以便在样本准备就绪时收到通知。

Added: HEAD

OnNowOrNever

OnNowOrNever 会对此服务器中的所有数据启动最终采样,并在下一个 OnSampleReadied 事件耗尽后退出。

它会忽略轮询周期,但不会忽略差异行为。

响应

<EMPTY>

OnSampleReadied

请求

名称类型
event SampleSinkResult

SystemActivityMonitor

在 fuchsia.diagnostics/system_activity_monitor.fidl 中定义

Added: HEAD

GetNextEvent

在系统活动事件(例如 CPU 提升开始或结束)发生之前一直处于阻塞状态,并在事件发生时返回该事件。

请求

<EMPTY>

响应

名称类型
payload SystemActivityMonitor_GetNextEvent_Result

STRUCTS

全部

在 fuchsia.diagnostics/selector.fidl 中定义

<EMPTY>

ArchiveAccessor_StreamDiagnosticsToSocket_Response

在 fuchsia.diagnostics/reader.fidl 中定义

<EMPTY>

ArchiveAccessor_WaitForReady_Response

在 fuchsia.diagnostics/reader.fidl 中定义

<EMPTY>

BatchIterator_GetNext_Response 资源

在 fuchsia.diagnostics/reader.fidl 中定义

字段类型说明默认
batch vector<FormattedContent>:64 无默认应用

BatchIterator_WaitForReady_Response

在 fuchsia.diagnostics/reader.fidl 中定义

<EMPTY>

LogFlusher_WaitUntilFlushed_Response

在 fuchsia.diagnostics/log_flush.fidl 中定义

<EMPTY>

LogInterestSelector

在 fuchsia.diagnostics/log_settings.fidl 中定义

新增:27

字段类型说明默认
selector ComponentSelector

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

无默认应用
interest fuchsia.diagnostics.types/Interest

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

无默认应用

PropertySelector

在 fuchsia.diagnostics/selector.fidl 中定义

一个选择器,用于定义要匹配的一组节点,以及在这些匹配的节点上要匹配的一组命名属性。

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

StringSelector 的向量,用作通过命名节点层次结构的路径的模式匹配器。向量中的每个条目都是数据层次结构中单个命名节点的选择器。然后,命名节点的选择器向量定义数据层次结构中路径的选择器。

节点路径支持通配符,通配符会匹配节点层次结构中的单个层级。例如: root/a/b//d 将匹配节点 b 的某个子节点下名为 d 的所有节点。 root/a/b/c 将匹配 b 下以字符“c”开头的所有节点。

无默认应用
target_properties StringSelector

一个 StringSelector,用作数据层次结构中节点上字符串命名属性的模式匹配器。

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

无默认应用

Sample_Commit_Response

在 fuchsia.diagnostics/sample.fidl 中定义

<EMPTY>

SubtreeSelector

在 fuchsia.diagnostics/selector.fidl 中定义

一个选择器,用于定义要匹配的一组节点,系统会选择包含这些节点的整个子树。

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

StringSelector 的向量,用作通过命名节点层次结构的路径的模式匹配器。向量中的每个条目都是数据层次结构中单个命名节点的选择器。然后,命名节点的选择器向量定义数据层次结构中路径的选择器。

节点路径支持通配符,通配符会匹配节点层次结构中的单个层级。例如: root/a/b//d 将匹配节点 b 的某个子节点下名为 d 的所有节点。 root/a/b/c 将匹配 b 下以字符“c”开头的所有节点。

无默认应用

SystemActivityMonitor_GetNextEvent_Response

在 fuchsia.diagnostics/system_activity_monitor.fidl 中定义

字段类型说明默认
event SystemActivityEvent 无默认应用

枚举

ConfigurationError flexible

类型:uint32

在 fuchsia.diagnostics/sample.fidl 中定义

ConfigurationError 表示 Sample::Set 中的设置有误。此值会在采集第一个样本之前返回。

Added: HEAD

名称值说明
1

这表示在计算采样周期时,采样周期小于 MINIMUM_SAMPLE_PERIOD_SECONDS。

2

这表示 SampleParameters 中存在无效设置。 如需了解详情,请查看 Archivist 的日志。

3

表示发送的选择器无效。如需了解详情,请查看 Archivist 的日志。

DataType strict

类型:uint8

在 fuchsia.diagnostics/reader.fidl 中定义

名称值说明
1

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

3

系统上的日志流。

格式 strict

类型:uint32

在 fuchsia.diagnostics/format.fidl 中定义

用于指定 Reader 结果输出格式的枚举。

名称值说明
1

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

2

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

3

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

Added: HEAD
5

根据 Diagnostics FXT 架构规范转储读取结果。仅日志支持此功能。

新增:NEXT

PowerEvent 灵活

类型:uint32

在 fuchsia.diagnostics/system_activity_monitor.fidl 中定义

Added: HEAD

名称值说明
1

积分加倍活动已开启

2

积分加倍活动已结束

ReaderError strict

类型:uint32

在 fuchsia.diagnostics/reader.fidl 中定义

枚举,用于描述通过结果迭代器向客户端提供结果时流式传输协议的潜在故障状态。

名称值说明
1

RuntimeError flexible

类型:uint32

在 fuchsia.diagnostics/sample.fidl 中定义

RuntimeError 表示在采样服务器开始定期采样数据后出现的错误。客户端可以忽略这些错误,但这些错误可能表示永远不会有 SampleReady 请求到达,或者批处理迭代器可能会以意外方式运行,例如挂起。

Added: HEAD

名称值说明
1

启动批处理迭代器服务器时出错。 如需了解详情,请查看 Archivist 的日志。

SampleStrategy flexible

类型:uint8

在 fuchsia.diagnostics/sample.fidl 中定义

SampleStrategy 会指示 Archivist 您希望在哪些情况下接收给定 SampleDatum 的数据。

Added: HEAD

名称值说明
1

ON_DIFF 会导致服务器保留先前值的缓存。在每个采样周期,它都会将新值与旧值进行比较,并且仅在发生更改时发出提醒。

2

ALWAYS 会在每个采样周期(无论数据是否发生变化)发现数据时发出提醒。

注意:如果根本没有数据,则不会发出提醒。

StreamMode strict

类型:uint8

在 fuchsia.diagnostics/reader.fidl 中定义

枚举,用于指定用户可以连接到诊断指标并流式传输诊断指标的模式。

名称值说明
1

该流将提供连接时的诊断数据快照,然后结束。

2

该流将在连接时提供诊断数据的快照,然后对该流的后续调用将挂起,直到有新的诊断数据可用。

3

对该数据流的调用将挂起,直到有新的诊断数据可用。在对数据流的调用之间,新到达的数据会被缓冲。

TABLES

ComponentSelector

在 fuchsia.diagnostics/selector.fidl 中定义

指定组件名字对象的模式,用于标识要选择的组件。

组件选择器支持通配符,通配符将匹配组件名字对象的一个“级别”。例如: core/*/echo 将匹配仅在 core 下直接运行的所有 echo 实例,但不匹配更深层嵌套的实例。

组件选择器还支持递归通配符,该通配符将匹配组件名字对象的多个“级别”。例如: core/** 将匹配在 core/ 下运行的所有组件实例及其所有后代。 请注意,通配符不会选择核心本身。如果客户端希望选择包含根的子树,则应传递两个选择器,例如: core core/** 递归通配符只能作为选择器的最后一段。

序数字段类型说明
moniker_segments vector<StringSelector>:25

对所选组件的绰号模式进行编码的向量。 这些名字对象是相对于归档器知道的“根”层次结构的子名字对象。

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

LogSettingsSetComponentInterestRequest

在 fuchsia.diagnostics/log_settings.fidl 中定义

序数字段类型说明
selectors vector<LogInterestSelector>:64

选择器列表。必填。

persist bool

断开连接后是否保留设置更改。 可选。默认设置为 false。

LogStreamOptions

在 fuchsia.diagnostics/log_stream.fidl 中定义

Added: HEAD

序数字段类型说明
mode StreamMode

要通过此套接字流式传输哪些日志。

include_moniker bool

是否在记录参数中包含名字。 默认值:false

include_component_url bool

是否在记录参数中包含组件网址。 默认值:false

include_rolled_out bool

是否在记录参数中包含已发布日志的数量。 默认值:false

subscribe_to_manifest bool

PerformanceConfiguration

在 fuchsia.diagnostics/reader.fidl 中定义

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

序数字段类型说明
max_aggregate_content_size_bytes uint64

诊断流的批处理迭代器返回的所有格式化内容的总大小上限。如果为以订阅模式配置的数据流设置了此值,则数据流将在达到大小上限时终止。注意:可选

batch_retrieval_timeout_seconds int64

配置,用于指定等待单个组件“泵送”其诊断数据的最长秒数。此值可用于测试,或者在您知道感兴趣的组件处于高负载状态时使用。 如果未提供,则将使用 https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master/src/diagnostics/archivist/src/constants.rs 中定义的 PER_COMPONENT_ASYNC_TIMEOUT_SECONDS。 注意:可选

SampleDatum

在 fuchsia.diagnostics/sample.fidl 中定义

Added: HEAD

序数字段类型说明
selector SelectorArgument

要检查的选择器。

strategy SampleStrategy

服务器决定通知客户端的策略。

interval_secs zx/DurationMono

此数据的采样间隔。

每个 SampleDatum 都有自己的指定间隔。最好在一个 Sample 连接上发送尽可能多的选择器,以便 Archivist 批量处理请求。不过,Archivist 会以所有间隔的最大公约数作为周期进行查询。因此,请在希望减少 Sample 连接数与保持间隔兼容之间取得平衡。

示例:两个间隔分别为 3 和 4 的数据将每秒检查一次工作。如果两个批次都未准备就绪,Archivist 实际上不会进行采样,但会进行检查。

示例:两个数据的时间间隔分别为 10 秒和 5 秒,则系统只会每 5 秒检查一次工作。

(在实践中,计算出的采样周期必须有效。请参阅上文中的 MINIMUM_SAMPLE_PERIOD_SECONDS。)

SampleParameters

在 fuchsia.diagnostics/sample.fidl 中定义

一个 Sample 服务器的数据。

Added: HEAD

序数字段类型说明
data vector<SampleDatum>:100

要抽样的数据集。

这些样本将按每个 SampleDatum 中的间隔进行批处理。 您应使用 MAX_SAMPLE_PARAMETERS_PER_SET 对输入进行分页;对于大多数选择器,它通常应该具有合适的大小。

SampleReady 资源

在 fuchsia.diagnostics/sample.fidl 中定义

SampleReady 包含可供使用的样本的数据。

Added: HEAD

序数字段类型说明
batch_iter client_end:BatchIterator

batch_iter 是数据集的BatchIterator。

seconds_since_start zx/DurationMono

seconds_since_start 是当前轮询周期的 ticks * interval_secs。

这可用于检查批处理中的值是否对应于 SampleDatum,前提是您没有为不同的 SampleStrategy 类型注册相同的选择器。具体流程如下:

  1. 将 batch_iter 解析为一组 Inspect 层次结构。
  2. 使用谓词 seconds_since_start % datum.interval_secs == 0 过滤提交到此服务器的 SampleDatum 集。
  3. 经过滤的 SampleDatum 中与已解析的 Inspect 层次结构中的数据匹配的任何选择器都是有效的。

如果您确实有一个选择器使用不同的策略注册了两次,则必须维护本地缓存并自行检查值。

选择器

在 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

序数字段类型说明
component_selector ComponentSelector

用于定义要匹配的组件名字对象模式的选择器。

tree_selector TreeSelector

选择器,用于定义要在 component_selector 匹配的组件所拥有的数据层次结构中匹配的数据层次结构属性。

tree_names TreeNames

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

省略名称过滤器等同于 TreeNames::some(["root"])。 请注意,“root”是默认树名称。

新增:22

StreamParameters

在 fuchsia.diagnostics/reader.fidl 中定义

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

序数字段类型说明
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

配置,用于指定等待单个组件“泵送”其诊断数据的最长秒数。此值可用于测试,或者在您知道感兴趣的组件处于高负载状态时使用。 如果未提供,则将使用 https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master/src/diagnostics/archivist/src/constants.rs 中定义的 PER_COMPONENT_ASYNC_TIMEOUT_SECONDS。 注意:可选

performance_configuration PerformanceConfiguration

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

UNIONS

ArchiveAccessor_StreamDiagnosticsToSocket_Result strict

在 fuchsia.diagnostics/reader.fidl 中定义

序数变体类型说明
response ArchiveAccessor_StreamDiagnosticsToSocket_Response
framework_err internal

ArchiveAccessor_WaitForReady_Result strict

在 fuchsia.diagnostics/reader.fidl 中定义

序数变体类型说明
response ArchiveAccessor_WaitForReady_Response
framework_err internal

BatchIterator_GetNext_Result strict resource

在 fuchsia.diagnostics/reader.fidl 中定义

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

BatchIterator_WaitForReady_Result strict

在 fuchsia.diagnostics/reader.fidl 中定义

序数变体类型说明
response BatchIterator_WaitForReady_Response
framework_err internal

ClientSelectorConfiguration flexible

在 fuchsia.diagnostics/reader.fidl 中定义

序数变体类型说明
selectors vector<SelectorArgument>

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

select_all bool

select_all 必须为 true(如果已设置),并指定客户端希望检索其连接能够公开的所有数据。

FormattedContent 灵活 资源

在 fuchsia.diagnostics/reader.fidl 中定义

一个 fidl 联合,其中包含结构化诊断数据的完整层次结构,以便内容可以自行解析为文件。

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

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

cbor handle<vmo>

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

Added: HEAD
fxt handle<vmo>

编码为 FXT 的诊断架构。 这仅对日志数据有效。 VMO 最多可包含 PerformanceConfiguration/max_aggregate_content_size_bytes 的诊断数据,如果未指定,则为 1MB。 大小将位于 ZX_PROP_VMO_CONTENT_SIZE 中。

Added: HEAD

LogFlusher_WaitUntilFlushed_Result strict

在 fuchsia.diagnostics/log_flush.fidl 中定义

序数变体类型说明
response LogFlusher_WaitUntilFlushed_Response
framework_err internal

SampleSinkResult 灵活 资源

在 fuchsia.diagnostics/sample.fidl 中定义

Added: HEAD
序数变体类型说明
ready SampleReady

SampleReady 为客户端提供一个包含所有就绪样本的 BatchIterator。

这将包括所有 SampleStrategy::ALWAYS 样本以及值发生变化的所有 SampleStrategy::ON_DIFF。

error RuntimeError

error 提供了一个接口,用于接收来自示例服务器的运行时错误。

Sample_Commit_Result strict

在 fuchsia.diagnostics/sample.fidl 中定义

序数变体类型说明
response Sample_Commit_Response
err ConfigurationError
framework_err internal

SelectorArgument flexible

在 fuchsia.diagnostics/reader.fidl 中定义

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

序数变体类型说明
structured_selector Selector

一个 Selector,用于定义一个模式匹配器,该匹配器用于选择层次结构中的组件以及按组件命名空间的数据层次结构中的属性。

raw_selector string:1024

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

StringSelector flexible

在 fuchsia.diagnostics/selector.fidl 中定义

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

序数变体类型说明
string_pattern string:1024

这是提供的字符串,用于定义要匹配的模式。解析器会将星号 (*)、冒号 (:) 和反斜杠 (\) 视为特殊字符。

如果您希望与字面量星号 (*) 匹配,则必须对其进行转义。 如果您想匹配字面意义的反斜杠 (\),则必须对其进行转义。 如果您希望匹配字面量冒号 (:),则必须对其进行转义。

例如:abc 将匹配名称完全为“abc”的任何字符串。 例如:a* 将匹配名称完全为“a*”的任何字符串。 例如:a&#42; 将匹配名称完全以“a”开头的任何字符串。 例如:a* 将匹配以“a”开头的任何字符串。 例如:ab 将匹配以 a 开头并以 b 结尾的任何字符串。 例如:ab*c 将匹配以 a 开头、以 c 结尾且中间包含 b 的任何字符串。

此外,“**”字面量会被视为特殊序列,可能仅与组件选择器中的多个级别匹配。如需了解详情,请参阅 |ComponentSelector|。

exact_match string:1024

SystemActivityEvent flexible

在 fuchsia.diagnostics/system_activity_monitor.fidl 中定义

Added: HEAD
序数变体类型说明
power_event PowerEvent

SystemActivityMonitor_GetNextEvent_Result strict

在 fuchsia.diagnostics/system_activity_monitor.fidl 中定义

序数变体类型说明
response SystemActivityMonitor_GetNextEvent_Response
framework_err internal

TreeNames flexible

在 fuchsia.diagnostics/selector.fidl 中定义

TreeNames 是从选择器中解析出的组件的 fuchsia.inspect.Trees 名称集。层次结构和属性选择器部分将仅应用于与此集匹配的树。

新增:22
序数变体类型说明
some vector<string:1024>

树名称的指定子集。

all All

所有可用的树。相当于列出树的所有名称。

TreeSelector flexible

在 fuchsia.diagnostics/selector.fidl 中定义

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

序数变体类型说明
subtree_selector SubtreeSelector

一个选择器,用于定义要匹配的一组节点,系统会选择包含这些节点的整个子树。

property_selector PropertySelector

一个选择器,用于定义要匹配的一组节点,以及在这些匹配的节点上要匹配的一组命名属性。

常量

名称值类型说明
COMPONENT_URL_ARG_NAME $__url String
Added: HEAD
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_SAMPLE_PARAMETERS_PER_SET 100 uint64

一次 Set 调用中可发送的参数数量上限。

Added: HEAD
MAX_STRING_SELECTOR_LENGTH 1024 uint16
新增:27
MONIKER_ARG_NAME $__moniker String
Added: HEAD
ROLLED_OUT_ARG_NAME $__rolled_out String
Added: HEAD