通訊協定
ArchiveAccessor
在 fuchsia.diagnostics/reader.fidl 中定義
用於與不同診斷資料來源互動的外部通訊協定。
StreamDiagnostics
建立系統中診斷資料的疊代器。
- 以 SNAPSHOT 模式串流時,疊代器可能會受限,但只會 系統目前的診斷資料狀態。
- 採用 SNAPSHOT_THEN_SUBSCRIBE 的串流方式可能會使疊代器無限 或「訂閱」模式;第一個值會針對 然後持續對新的到的診斷資訊進行反覆測試 資料。
- 
要求 result stream用來診斷的 [fuchsia.diagnostics/BatchIterator] 則會公開給用戶端- 八爪族:
- INVALID_ARGS: StreamParameters 結構中缺少必要引數。
- WRONG_TYPE: StreamParameters 結構體提供的選取器不正確 格式化。
 
 
- 八爪族:
- 
要求 stream_parameters是 [fuchsia.diagnostics/StreamParameter] 會指定如何設定串流。
要求
| 名稱 | 類型 | 
|---|---|
| stream_parameters | StreamParameters | 
| result_stream | server_end<BatchIterator> | 
BatchIterator
在 fuchsia.diagnostics/reader.fidl 中定義
從概念上說,目錄疊代器,疊代器中的每個元素都是一個 完整檔案,可以與其他結果串連起來。
GetNext
傳回 [fuchsia.diagnostics/FormattedContent] 結構的向量 格式,可由提供給閱讀器通訊協定的 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] | 做為模式比對器的 StringSelectors 向量 ,透過具名節點的階層結構取得路徑向量中的每個項目 是資料階層中單一已命名節點的選取器。向量 會定義具名節點的選取器,然後定義透過 資料階層結構 節點路徑支援萬用字元,也就是將 glob 的單一層級 節點階層架構例如: root/a/b//d 會比對所有名為 d 的節點,這些節點低於節點 b 的部分子項。 root/a/b/c 會比對 b 下方所有開頭為「c」的節點。 | 無預設 | 
| target_properties | StringSelector | 可做為 資料階層中節點上以字串命名的屬性。 target_properties 支援萬用字元,可比對所有屬性 依據 node_path 的任一節點 | 無預設 | 
SubtreeSelector
定義於 fuchsia.diagnostics/selector.fidl
用來定義一組要比對的節點的選取器,其中整個子樹狀結構包含 這些節點是已選取的
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| node_path | vector<StringSelector>[100] | 做為模式比對器的 StringSelectors 向量 ,透過具名節點的階層結構取得路徑向量中的每個項目 是資料階層中單一已命名節點的選取器。向量 會定義具名節點的選取器,然後定義透過 資料階層結構 節點路徑支援萬用字元,也就是將 glob 的單一層級 節點階層架構例如: root/a/b//d 會比對所有名為 d 的節點,這些節點低於節點 b 的部分子項。 root/a/b/c 會比對 b 下方所有開頭為「c」的節點。 | 無預設 | 
ENUMS
資料類型嚴格
類型:uint8
在 fuchsia.diagnostics/reader.fidl 中定義
| 名稱 | 值 | 說明 | 
|---|---|---|
| 檢查 | 1 | 完成系統上的檢查階層。 | 
| 記錄檔 | 3 | 系統中記錄串流。 | 
格式嚴格
類型:uint32
定義於 fuchsia.diagnostics/format.fidl
列舉用來指定 讀者搜尋結果。
| 名稱 | 值 | 說明 | 
|---|---|---|
| JSON | 1 | 根據 Diagnostics Json 傾印讀取結果 結構定義規格。 | 
| 文字 | 2 | 根據 Iquery 文字規格傾印讀取結果。 | 
| CBOR | 3 | 根據診斷 CBOR 傾印讀取結果 結構定義規格。 新增時間:HEAD | 
ReaderError 嚴格
類型:uint32
在 fuchsia.diagnostics/reader.fidl 中定義
列舉說明提供結果時,串流通訊協定的潛在失敗狀態 並傳送給用戶端
| 名稱 | 值 | 說明 | 
|---|---|---|
| IO | 1 | 
嚴重性嚴格
類型:uint8
定義於 fuchsia.diagnostics/severity.fidl
指定記錄的嚴重性。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 追蹤 | 16 | 追蹤記錄包含關於程式執行的詳細資訊。 | 
| 偵錯 | 32 | 偵錯記錄包含與程式執行有關的資訊。 | 
| 資訊 | 48 | 資訊記錄包含關於程式執行的一般資訊。(預設) | 
| 警告 | 64 | 警告記錄包含疑似發生問題的作業相關資訊, | 
| 錯誤 | 80 | 錯誤記錄包含失敗作業的相關資訊。 | 
| 嚴重 | 96 | 嚴重記錄將傳達有關導致程式終止的操作資訊。 | 
StreamMode 嚴格
類型:uint8
在 fuchsia.diagnostics/reader.fidl 中定義
列舉:指定使用者可以連線的模式和串流診斷指標。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 快照 | 1 | 串流會提供當時診斷資料的數據匯報 連線,並在連線後結束。 | 
| SNAPSHOT_THEN_SUBSCRIBE | 2 | 串流會提供當時診斷資料的數據匯報 然後,持續對串流發出的呼叫才會一直停止,直到 新的診斷資料可供使用。 | 
| 訂閱 | 3 | 系統會持續呼叫串流,直到取得新的診斷資料為止。通話期間: 串流時,新到達的資料也會經過緩衝處理。 | 
資料表
ComponentSelector
定義於 fuchsia.diagnostics/selector.fidl
指定元件的模式 識別要挑選的元件
元件選取器支援萬用字元,其將 glob 單一「level」/ 分解路徑名稱例如: 核心//echo 只會在核心下直接運作的所有 echo 執行個體 巢狀結構中
元件選取器也支援遞迴萬用字元,會 glob 多個 「levels」組成路徑名稱例如: 核心/* 會比對核心/ 所有子系下執行的所有元件執行個體。 請注意,萬用字元不會選取核心本身。需要選用 包含根的子樹狀結構應傳遞兩個選取器,例如: 核心肌群 核心/** 遞迴萬用字元只能做為選取器的最終區段使用。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | moniker_segments | vector<StringSelector>[25] | 向量將設為所選元件的 monikers 模式編碼。 這些怪獸與「根」相對的童話階層式結構 一切都知道 至少必須提供一個 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],用於指定傳回的 3 格式 診斷資料 注意:必填 | 
| 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 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | BatchIterator_GetNext_Response | |
| 2 | err | ReaderError | |
| 3 | framework_err | internal | 
BatchIterator_WaitForReady_Result 的嚴格
在 fuchsia.diagnostics/reader.fidl 中定義
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | BatchIterator_WaitForReady_Response | |
| 3 | framework_err | internal | 
ClientSelectorConfiguration 彈性
在 fuchsia.diagnostics/reader.fidl 中定義
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | selectors | vector<SelectorArgument> | [fuchsia.diagnostics/SelectorArgument] 的向量 提供額外的篩選器,以限定資料串流的範圍。並將空白向量視為 設定錯誤並導致錯誤信號表示參數不正確。 | 
| 2 | select_all | bool | 如果已設定,則 select_all 必須為 true,並且指定用戶端要擷取 保持連線狀態 | 
FormattedContent 彈性 資源
在 fuchsia.diagnostics/reader.fidl 中定義
包含結構化診斷完整階層的 fidl Union 進而將內容單獨剖析為檔案。
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | json | fuchsia.mem/Buffer | 編碼為 JSON 的診斷結構定義。 VMO 會包含最多 1 MB 的診斷資料。 | 
| 2 | text | fuchsia.mem/Buffer | 以文字編碼的診斷結構定義。 VMO 會包含最多 1 MB 的診斷資料。 | 
| 3 | cbor | handle<vmo> | 以 cbor 格式編碼的診斷結構定義。 VMO 會包含最多 1 MB 的診斷資料。 大小將是 ZX_PROP_VMO_CONTENT_SIZE。 新增時間:HEAD | 
SelectorArgument 彈性
在 fuchsia.diagnostics/reader.fidl 中定義
封存選取器使用的引數,可以是預先剖析 fidl struct 或字串表示法。
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | structured_selector | Selector | 定義模式比對器,可選取階層內元件的選取器 物件階層和屬性 | 
| 2 | raw_selector | string[1024] | 代表 [fuchsia.diagnostics/Selector] 的原始字串。 選取器會定義模式比對工具,以便選取階層中的元件 物件階層和屬性 注意:從 raw_selector 剖析的所有 StringSelectors 都會解讀為 string_pattern 模式來代表特殊字元。 詳情請參閱 https://fuchsia.dev/fuchsia-src/reference/diagnostics/selectors | 
StringSelector 彈性
定義於 fuchsia.diagnostics/selector.fidl
StringSelector 是一項聯集,可定義不同方式描述要比對的模式 產生的分數
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | string_pattern | string[100] | 這是提供的字串,用來定義要接收的模式 比對。剖析器會處理星號 ()、冒號 (:) 和反斜線 () 做為特殊字元。 如果您想要與常值星號 () 進行比對,則必須逸出這些星號。 如果您希望與常值反斜線 () 進行比對,則必須逸出這些反斜線。 如果您想與常值冒號 (:) 進行比對,則必須逸出這些半形冒號。 舉例來說,abc 會比對所有名稱與「abc」完全相符的字串。
例如:a* 可比對任何名稱完全相符的字串「a」。
例如:* 可比對開頭為「a」的任何字元。
例如: 會比對任何以「a」開頭的字串。
例如:b 會比對任何以 b 開頭並以 b 結尾的字串。
例如:bc 會比對以  此外,"*"常值會視為可能比對的特殊序列 多個層級。請參閱 |ComponentSelector|的 詳細資料。 | 
| 2 | exact_match | string[100] | 這是提供的字串,可定義要比對的確切字串。否 字元視為特殊字元或包含特殊語法 | 
TreeNames 彈性
定義於 fuchsia.diagnostics/selector.fidl
TreeNames 是 fuchsia.inspect.Trees 的一組名稱元件名稱 已從選取器中剖析。階層與屬性選取器部分 將只會套用至符合此組合的樹狀結構。
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | some | vector<string> | 指定樹狀結構的名稱子集。 | 
| 2 | all | All | 所有可用的樹狀結構。等同於列出 樹木 | 
樹狀選取器彈性
定義於 fuchsia.diagnostics/selector.fidl
TreeSelector 代表已命名節點階層的選取要求, 節點上的命名屬性
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | subtree_selector | SubtreeSelector | 用來定義一組要比對的節點的選取器,其中整個子樹狀結構包含 這些節點是已選取的 | 
| 2 | property_selector | PropertySelector | 用來定義一組相符節點的選取器,並在這些相符的節點上定義一組名為 要比對的 Proxy | 
觀測站
| 名稱 | 值 | 類型 | 說明 | 
|---|---|---|---|
| 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 |