fuchsia.tracing.provider

新增:7

通訊協定

供應商

定義於 fuchsia.tracing.provider/provider.fidl

應用程式必須實作並向 TraceRegistry 註冊的供應器介面,才能參與追蹤。

請參閱 //zircon/system/ulib/trace-provider/,瞭解這個介面的 C++ 實作,應用程式可輕鬆設定。

已移除:31

GetKnownCategories

取得這個供應器可能產生的追蹤類別。

新增:11

要求

<EMPTY>

回應

名稱類型
categories vector<fuchsia.tracing/KnownCategory>:5000

初始化

初始化追蹤記錄,並準備將指定 categories 中事件的追蹤記錄寫入 buffer,並使用 fifo 傳送信號。追蹤尚未開始,仍須呼叫 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 註冊的供應器介面,才能參與追蹤。

新增:31

清除

要求供應商讀取緩衝區,無論緩衝區是否已滿。

一般來說,串流模式只會在資料量足以要求緩衝區交換和資料清除時,才會傳送資料。這會產生較少但較大且突發的資料移轉。

有些客戶可能希望定期進行小規模資料移轉。這些用戶端可能會在準備好接收資料時,手動叫用 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 為基礎的協調通訊協定。

已移除:31

要求

名稱類型
provider client_end:Provider
pid zx/Koid
name string:100

RegisterProviderSynchronously

同步註冊追蹤記錄供應器。在供應商註冊前,呼叫不會傳回。如果註冊成功,傳回的 s 為 ZX_OK。如果追蹤已開始,started 為 true,這會提示供應商在繼續之前等待 Start() 訊息,如果它不希望在收到 Start() 之前刪除追蹤記錄。如要取消註冊,只要關閉供應器管道即可。 pid 是供應商的程序 ID,name 是供應商的名稱。這兩者都會用於記錄和診斷訊息。

淘汰

請改用「RegisterV2Synchronously」,使用以 FIDL 為基礎的協調通訊協定。

已移除:31

要求

名稱類型
provider client_end:Provider
pid zx/Koid
name string:100

回應

名稱類型
s zx/Result
started bool

RegisterV2

使用 V2 通訊協定註冊追蹤記錄供應器。

注意:註冊是非同步作業,只有在傳回後,供應器才會實際註冊。

如要取消註冊,請關閉 provider 連線。

新增:31

要求

名稱類型
provider client_end:ProviderV2
pid zx/Koid
name string:100

RegisterV2Synchronously

使用 V2 通訊協定同步註冊追蹤記錄供應器。

在註冊供應器之前,呼叫不會傳回。除非需要與追蹤系統同步,確保擷取特定事件,否則大多數呼叫端應使用 RegisterV2。

如要取消註冊,請關閉 provider 連線。

新增:31

要求

名稱類型
provider client_end:ProviderV2
pid zx/Koid
name string:100

回應

名稱類型
payload Registry_RegisterV2Synchronously_Result

STRUCTS

ProviderConfig 資源

定義於 fuchsia.tracing.provider/provider.fidl

追蹤記錄提供者設定。

已移除:31

欄位類型說明預設
buffering_mode fuchsia.tracing/BufferingMode

buffering_mode 指定緩衝區填滿時會發生的情況。

新增:11
無預設值
buffer handle<vmo>

要寫入追蹤記錄的緩衝區。

無預設值
fifo handle<fifo>

當追蹤記錄供應器在 fifo 上觀察到 ZX_FIFO_PEER_CLOSED 時,必須假設追蹤記錄管理工具異常終止 (因為未像往常一樣收到 Stop),並自動停止追蹤,捨棄任何傳輸中的追蹤記錄資料。

無預設值
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

要新增至 ProviderConfig 中提供的初始組合的追蹤類別。

新增:11
無預設值

TABLES

ProviderConfigV2 資源

定義於 fuchsia.tracing.provider/provider.fidl

追蹤記錄提供者設定。

新增:31

序數欄位類型說明
buffering_mode fuchsia.tracing/BufferingMode

buffering_mode 指定緩衝區填滿時會發生的情況。

buffer handle<vmo>

要寫入追蹤記錄的緩衝區。

categories vector<string:100>:5000

要收集資料的追蹤類別。

UNIONS

ProviderV2_GetKnownCategories_Result strict

定義於 fuchsia.tracing.provider/provider.fidl

序數Variant類型說明
response ProviderV2_GetKnownCategories_Response
framework_err internal

ProviderV2_Start_Result strict

定義於 fuchsia.tracing.provider/provider.fidl

序數Variant類型說明
response ProviderV2_Start_Response
framework_err internal

ProviderV2_Stop_Result strict

定義於 fuchsia.tracing.provider/provider.fidl

序數Variant類型說明
response ProviderV2_Stop_Response
framework_err internal

ProviderV2_Terminate_Result strict

定義於 fuchsia.tracing.provider/provider.fidl

序數Variant類型說明
response ProviderV2_Terminate_Response
framework_err internal

Registry_RegisterV2Synchronously_Result strict

定義於 fuchsia.tracing.provider/provider.fidl

序數Variant類型說明
response Registry_RegisterV2Synchronously_Response
err zx/Status
framework_err internal

常數

名稱值類型說明
MAX_ALERT_NAME_LENGTH 14 uint32

警告名稱的長度上限。

新增:31