跳到主要內容

Metrics Server

透過藍牙低功耗(Bluetooth LE)即時廣播裝置指標數據到附近裝置。

Metrics Server:狀態卡可設定伺服器名稱、伺服器控制、已連接客戶端數量及即時指標。
可自訂伺服器名稱,或從預設選項如行銷名稱、型號識別碼或裝置名稱中選擇。
即時指標卡顯示 CPU 使用率、核心數、裝置名稱及即時使用歷史圖表。

概覽

Metrics Server 會將你嘅裝置變成一個藍牙低功耗(BLE)外圍裝置,實時廣播裝置指標數據到運行緊 Metrics Client 嘅附近裝置。已連接嘅客戶端會持續收到數據流,包括 CPU 使用率、每個核心嘅 CPU 活動、裝置身份資訊同時間戳記——全部都會透過 BLE notify characteristic 每秒傳送一次。

呢個功能適合用嚟即時監控另一部裝置嘅效能,無需 Wi-Fi 網絡或其他基礎設施。

目錄

主要部分

Metrics Server 係一個單一可捲動畫面,包含四張卡片:

  • Metrics Server — 狀態及伺服器名稱設定
  • 伺服器控制 — 開始/停止 BLE 廣播
  • 已連接客戶端 — 已訂閱裝置數量
  • 即時指標 — 廣播中數據嘅即時預覽

Metrics Server 狀態卡

頂部卡片會顯示:

  • 運行指示器 — 有顏色嘅圓點同標籤:
    • 運行中(綠色)— 伺服器正廣播及傳送數據。
    • 已停止(紅色)— 伺服器未廣播。
  • 伺服器名稱欄位 — 可編輯文字欄,決定其他裝置喺 BLE 探索時見到嘅名稱。詳情請參閱伺服器名稱與預設值
  • 狀態 — 啟用或未啟用。
  • 藍牙狀態 — 藍牙無線電目前狀態(已開啟、已關閉、未授權、不支援、重設中、未知)。
  • 已連接 — 目前已訂閱指標數據流嘅客戶端裝置數量。
  • 錯誤 — 來自 BLE 堆疊嘅錯誤訊息(只會喺發生錯誤時顯示)。

伺服器名稱與預設值

伺服器名稱決定咗呢部裝置喺 Metrics Client 用戶探索時點樣顯示。你可以輸入自訂名稱,或者用 預設值 下拉選單快速套用內建選項之一:

預設值範例
行銷名稱 + 型號識別碼iPhone 16 Pro Max (iPhone17,2)
只用行銷名稱iPhone 16 Pro Max
只用型號識別碼iPhone17,2
裝置名稱Rogerio's iPhone 16ProMax

預設會用 行銷名稱(型號識別碼)(如有)。

當伺服器運行期間更改名稱,BLE 廣播會自動重啟,令新名稱即時生效。

伺服器控制

伺服器控制卡片只包含一個 啟動伺服器停止伺服器按鈕:

  • 啟動伺服器(綠色)— 開始 BLE 廣播並開始收集 CPU 指標。只要有客戶端訂閱,伺服器就會開始傳送數據。
  • 停止伺服器(紅色)— 停止 BLE 廣播並暫停指標收集。

按鈕下方會有說明,解釋伺服器會透過藍牙 LE 廣播指標數據到已連接客戶端。

已連接客戶端

已連接客戶端卡片會顯示:

  • 目前已訂閱客戶端裝置數量(以大字顯示)。
  • 無客戶端連接時:會顯示一個圖示同提示訊息,指示用戶啟動伺服器並喺另一部裝置用 Metrics Client。
  • 有客戶端連接時:會顯示確認訊息及數量(例如「1 個客戶端正接收指標」)。

只有最少有一個客戶端訂閱時,伺服器先會傳送數據。無客戶端連接時,內部計時器會暫停以節省資源。

即時指標

即時指標卡片會即時預覽廣播中嘅數據:

欄位說明
CPU 使用率呢部裝置目前整體 CPU 使用百分比(例如 30.0%)。
核心數呢部裝置嘅 CPU 核心數量(例如 6)。
裝置用戶自訂嘅裝置名稱(例如「Rogerio's iPhone 16ProMax」)。

呢啲欄位下方會有一個 使用歷史 線圖,顯示 CPU 使用率隨時間變化,方便視覺化工作負載波動。

傳送數據

伺服器每秒會向所有已訂閱客戶端廣播兩個 BLE notify characteristic:

摘要 characteristic

以精簡二進位格式包含以下欄位:

欄位類型說明
伺服器名稱字串(最多 32 字元)狀態卡顯示嘅可設定名稱。
裝置型號字串(最多 32 字元)裝置行銷名稱(例如「iPhone 16 Pro Max」)。
裝置名稱字串(最多 32 字元)來自 iOS 設定嘅用戶自訂裝置名稱。
CPU 使用率Float(32-bit)整體 CPU 使用百分比(0–100)。
核心數UInt16CPU 核心數量。
時間戳記UInt64Unix epoch 起計嘅毫秒數。

每核心 characteristic

包含每個核心嘅 CPU 使用數據:

欄位類型說明
核心數UInt8核心數量(最多 32)。
核心使用率Float[]每個核心一個 32-bit float,代表該核心使用百分比。
時間戳記UInt64Unix epoch 起計嘅毫秒數。

配合 Metrics Client 使用方法

  1. 喺你想觀察嘅裝置打開 工具 > Metrics Server,然後點擊 啟動伺服器
  2. 喺另一部裝置打開 工具 > Metrics Client
  3. 探索 分頁搵到伺服器,然後點擊 連接
  4. 客戶端會自動切換到 指標 分頁,顯示即時數據。

技術細節

  • 伺服器以 BLE 外圍裝置 角色運作,使用 CBPeripheralManager。會廣播一個自訂 GATT 服務,包含兩個只讀(notify-only)characteristic(摘要及每核心)。
  • 只要有最少一個客戶端訂閱,數據就會每秒傳送一次。無客戶端連接時,計時器會暫停。
  • 所有 payload 入面多字節數值都係 little-endian,同 Swift 喺 Apple 平台原生產生嘅格式一致。
  • 伺服器支援 CoreBluetooth 狀態回復,即使 app 被系統重新啟動都可以回復廣播狀態。
  • BLE 背壓會妥善處理——如果傳送佇列滿咗,更新會排隊,等系統透過 peripheralManagerIsReady(toUpdateSubscribers:) 訊號通知時再傳送。
  • CPU 指標數據來自同 CPU 監控工具用嘅 ToolCPUViewModel,確保讀數一致。

注意事項與限制

  • 呢個工具用 藍牙 LE,唔係 Wi-Fi 網絡。裝置必須喺 BLE 範圍內(室內一般約 10–30 米)。
  • BLE 可用性、背景行為同連線穩定性會因裝置及作業系統版本而異。
  • visionOS,Metrics Server 唔支援,因為唔支援 BLE 外圍裝置角色。
  • 伺服器名稱因 BLE payload 大小限制,只可用最多 32 個字元。
  • 目前只會傳送 CPU 相關指標。其他裝置指標(記憶體、溫度等)暫未包含喺 BLE 數據流內。