协议
提供商
在 fuchsia.tracing.provider/provider.fidl 中定义
应用必须实现并向 TraceRegistry 注册的提供程序接口,以便参与跟踪。
如需查看此接口的 C++ 实现(可由应用轻松配置),请参阅 //zircon/system/ulib/trace-provider/。
GetKnownCategories
获取此提供方可能生成的跟踪类别。
请求
<EMPTY>
响应
| 名称 | 类型 |
|---|---|
categories |
vector<fuchsia.tracing/KnownCategory>:5000
|
初始化
初始化跟踪,并准备好使用 fifo 发出信号,将指定 categories 中事件的跟踪记录写入 buffer。
跟踪尚未开始,仍需调用 Start()。
一次最多只能有一个跟踪记录处于活动状态。在 Terminate() 调用之前收到的后续 Initialize() 请求必须被忽略。
请求
| 名称 | 类型 |
|---|---|
config |
ProviderConfig
|
开始
开始跟踪。
如果跟踪已启动,提供程序必须忽略该请求。
没有结果。提供方必须在 fifo 上发送 TRACE_PROVIDER_STARTED 数据包,以指示启动成功/失败。
请求
| 名称 | 类型 |
|---|---|
options |
StartOptions
|
停止
停止跟踪。
如果跟踪已停止,提供程序必须忽略该请求。
提供方将所有最终事件写入跟踪缓冲区后,必须在 fifo 上发送 TRACE_PROVIDER_STOPPED 数据包。请注意,在 Initialize,Terminate 之间可能会收到多个 Start,Stop 请求。
请求
<EMPTY>
终止
终止跟踪。
如果跟踪尚未停止,则会先停止跟踪。
跟踪完全终止后,提供程序必须同时关闭 buffer 和 fifo,以向跟踪管理器指示跟踪已完成。
请求
<EMPTY>
ProviderV2
在 fuchsia.tracing.provider/provider.fidl 中定义
应用必须实现并向 TraceRegistry 注册的提供程序接口,以便参与跟踪。
清空
请求提供方读取其缓冲区,无论缓冲区是否已满。
通常,流式传输模式仅在有足够的数据需要缓冲区交换和数据刷新时才会发送数据。这会产生较少但较大且突发的数据传输。
有些客户可能希望更频繁地进行较小规模的数据传输。这些客户端可以在准备好接收数据时手动调用 Flush。
请求
<EMPTY>
GetKnownCategories
获取此提供方可能生成的跟踪类别。
请求
<EMPTY>
响应
| 名称 | 类型 |
|---|---|
payload |
ProviderV2_GetKnownCategories_Result
|
初始化
初始化跟踪,并准备将指定 categories 中事件的跟踪记录写入 buffer。
跟踪尚未开始,仍需调用 Start()。
一次最多只能有一个跟踪记录处于活动状态。在 Terminate() 调用之前收到的后续 Initialize() 请求必须被忽略。
请求
| 名称 | 类型 |
|---|---|
config |
ProviderConfigV2
|
NotifyBufferSaved
缓冲区已保存(仅限流处理模式)。
请求
| 名称 | 类型 |
|---|---|
wrapped_count |
uint32
|
durable_data_end |
uint64
|
OnAlert
发送提醒。
响应
| 名称 | 类型 |
|---|---|
name |
string:14
|
OnSaveBuffer
缓冲区已满,需要保存(仅限流式传输模式)。
响应
| 名称 | 类型 |
|---|---|
wrapped_count |
uint32
|
durable_data_end |
uint64
|
开始
开始跟踪。
如果跟踪已启动,提供程序必须忽略该请求。
请求
| 名称 | 类型 |
|---|---|
options |
StartOptions
|
响应
| 名称 | 类型 |
|---|---|
payload |
ProviderV2_Start_Result
|
停止
停止跟踪。
如果跟踪已停止,提供程序必须忽略该请求。
提供程序将所有最终事件写入跟踪缓冲区后,必须发送 OnStopped() 事件。请注意,在 Initialize,Terminate 之间可能会收到多个 Start,Stop 请求。
请求
<EMPTY>
响应
| 名称 | 类型 |
|---|---|
payload |
ProviderV2_Stop_Result
|
终止
终止跟踪。
如果跟踪尚未停止,则会先停止跟踪。
请求
<EMPTY>
响应
| 名称 | 类型 |
|---|---|
payload |
ProviderV2_Terminate_Result
|
注册类型
在 fuchsia.tracing.provider/provider.fidl 中定义
跟踪提供程序用于向跟踪系统注册自身的服务。 请注意,此接口的一个属性是,一旦完成注册,提供方就可以断开此连接。
RegisterProvider
注册跟踪记录提供程序。
注意:注册是异步的,只有在此方法返回后的某个时间点,提供程序才会实际注册。
如需取消注册,只需关闭提供程序管道即可。
pid 是提供方的进程 ID,name 是提供方的名称。这两者都用于日志记录和诊断消息。
弃用
请改用“RegisterV2”来使用基于 FIDL 的协调协议。
请求
| 名称 | 类型 |
|---|---|
provider |
client_end:Provider
|
pid |
zx/Koid
|
name |
string:100
|
RegisterProviderSynchronously
同步注册跟踪记录提供程序。在提供程序注册之前,该调用不会返回。
如果注册成功,则返回 s 为 ZX_OK。
如果跟踪已开始,started 为 true,这会提示提供程序在继续之前等待 Start() 消息,前提是它不希望在收到 Start() 之前丢弃跟踪记录。
如需取消注册,只需关闭提供程序管道即可。
pid 是提供方的进程 ID,name 是提供方的名称。这两者都用于日志记录和诊断消息。
弃用
请改用“RegisterV2Synchronously”来使用基于 FIDL 的协调协议。
请求
| 名称 | 类型 |
|---|---|
provider |
client_end:Provider
|
pid |
zx/Koid
|
name |
string:100
|
响应
| 名称 | 类型 |
|---|---|
s |
zx/Result
|
started |
bool
|
RegisterV2
使用 V2 协议注册跟踪提供程序。
注意:注册是异步的,只有在此方法返回后的某个时间点,提供程序才会实际注册。
如需取消注册,请关闭 provider 连接。
请求
| 名称 | 类型 |
|---|---|
provider |
client_end:ProviderV2
|
pid |
zx/Koid
|
name |
string:100
|
RegisterV2Synchronously
使用 V2 协议同步注册跟踪提供程序。
在提供程序注册之前,该调用不会返回。大多数调用方都应使用 RegisterV2,除非他们需要与跟踪系统同步,以确保捕获特定事件。
如需取消注册,请关闭 provider 连接。
请求
| 名称 | 类型 |
|---|---|
provider |
client_end:ProviderV2
|
pid |
zx/Koid
|
name |
string:100
|
响应
| 名称 | 类型 |
|---|---|
payload |
Registry_RegisterV2Synchronously_Result
|
STRUCTS
ProviderConfig 资源
在 fuchsia.tracing.provider/provider.fidl 中定义
跟踪记录提供方配置。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
buffering_mode |
fuchsia.tracing/BufferingMode
|
新增:11
|
无默认应用 |
buffer |
handle<vmo>
|
要将跟踪记录写入其中的缓冲区。 |
无默认应用 |
fifo |
handle<fifo>
|
当跟踪提供程序在 |
无默认应用 |
categories |
vector<string:100>:5000
|
要收集哪些跟踪类别的数据。 新增:11
|
无默认应用 |
ProviderV2_GetKnownCategories_Response
在 fuchsia.tracing.provider/provider.fidl 中定义
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
categories |
vector<fuchsia.tracing/KnownCategory>:5000
|
无默认应用 |
ProviderV2_Start_Response
在 fuchsia.tracing.provider/provider.fidl 中定义
<EMPTY>
ProviderV2_Stop_Response
在 fuchsia.tracing.provider/provider.fidl 中定义
<EMPTY>
ProviderV2_Terminate_Response
在 fuchsia.tracing.provider/provider.fidl 中定义
<EMPTY>
Registry_RegisterV2Synchronously_Response
在 fuchsia.tracing.provider/provider.fidl 中定义
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
started |
bool
|
如果跟踪已开始,则为 true。这会提示提供程序在继续之前等待 Start() 消息,前提是它不希望在收到 Start() 之前丢弃跟踪记录。 |
无默认应用 |
StartOptions
在 fuchsia.tracing.provider/provider.fidl 中定义
用于在启动时控制跟踪的其他选项。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
buffer_disposition |
fuchsia.tracing/BufferDisposition
|
是否在开始数据收集时清除缓冲区,以及如何清除。 例如,这样可以在同一缓冲区中收集多个开始/停止跟踪运行。 新增:11
|
无默认应用 |
additional_categories |
vector<string:100>:5000
|
要添加到 新增:11
|
无默认应用 |
TABLES
ProviderConfigV2 资源
在 fuchsia.tracing.provider/provider.fidl 中定义
跟踪记录提供方配置。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
buffering_mode |
fuchsia.tracing/BufferingMode
|
|
2 |
buffer |
handle<vmo>
|
要将跟踪记录写入其中的缓冲区。 |
3 |
categories |
vector<string:100>:5000
|
要收集哪些跟踪类别的数据。 |
UNIONS
ProviderV2_GetKnownCategories_Result strict
在 fuchsia.tracing.provider/provider.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
ProviderV2_GetKnownCategories_Response
|
|
3 |
framework_err |
internal
|
ProviderV2_Start_Result strict
在 fuchsia.tracing.provider/provider.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
ProviderV2_Start_Response
|
|
3 |
framework_err |
internal
|
ProviderV2_Stop_Result strict
在 fuchsia.tracing.provider/provider.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
ProviderV2_Stop_Response
|
|
3 |
framework_err |
internal
|
ProviderV2_Terminate_Result strict
在 fuchsia.tracing.provider/provider.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
ProviderV2_Terminate_Response
|
|
3 |
framework_err |
internal
|
Registry_RegisterV2Synchronously_Result strict
在 fuchsia.tracing.provider/provider.fidl 中定义
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
response |
Registry_RegisterV2Synchronously_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
常量
| 名称 | 值 | 类型 | 说明 |
|---|---|---|---|
| MAX_ALERT_NAME_LENGTH |
14
|
uint32 |
提醒名称的长度上限。 新增:31
|