歸因 LogSink 連線

當 Fuchsia 元件想要寫入記錄時,必須連線至 fuchsia.logger.LogSink 的環境,通常為 Archivist 的執行個體。

一般的 Fuchsia 服務連線是匿名的,因此伺服器和用戶端都沒有 用於識別彼此的身分資訊用戶端只會在命名空間中看到該服務,例如 /svc/fuchsia.logger.LogSink,而伺服器對傳入Open()要求者顯示匿名要求 命名空間

同時,您也必須瞭解記錄來源,這樣的來源值得信賴 中繼資料可讓您更有效地監控、儲存、查詢及呈現記錄檔。系統會解決 這項功能內建「歸因記錄」功能,識別傳入 LogSink 的來源 以獲得最佳效能和最安全的連線

元件管理服務:CapabilityRequested 事件

Archivist 的資訊清單 expose fuchsia.logger.LogSink 與其他服務功能相同,但 它也會 use 從架構中的事件,並將其繫結至其命名空間中的服務:

{
    event: "capability_requested",
    from: "framework",
    filter: { name: "fuchsia.logger.LogSink" },
},
{
    event_stream: "EventStream",
    subscriptions: [
        {
            event: "capability_requested",
            mode: "async",
        }
    ],
},

這會導致元件管理服務重新導向來自預設 fuchsia.io 命名空間的傳入要求 通訊協定套用至 fuchsia.sys2.EventStream 通訊協定。阿奇在收到事件 這個通訊協定與 LogConnectionListener 類似,是從 ComponentDescriptor 由元件管理服務傳送,以及 LogSink 管道的控點。 系統會在功能轉送期間建構描述元中包含的路徑名稱。

LogSink 設定 capability_requested 事件並不會影響能力 轉送路徑本身,那麼只有將管道以「活動」的形式傳送給 Archivist,而不是 Open()。也就是說,傳遞歸因 LogSink 的 CML 將保持不變 加入所有元件拓撲

詳情請參閱開放通訊協定的生命週期事件說明文件