跳到主要内容

指标服务器

通过 Bluetooth LE 向附近设备广播实时设备指标。

指标服务器:状态卡片,包含可配置的服务器名称、服务器控制按钮、已连接客户端数量和当前指标。
设置自定义服务器名称,或从预设中选择,如营销名称、型号标识符或设备名称。
当前指标卡片,显示 CPU 使用率、核心数量、设备名称和实时使用历史图表。

概览

指标服务器将您的设备转变为 Bluetooth Low Energy (BLE) 外围设备,向附近运行 指标客户端 的设备广播实时设备指标。已连接的客户端会收到持续的数据流,包括 CPU 使用率、每核心 CPU 活动、设备身份信息和时间戳——所有数据均通过 BLE 通知特征每秒传输一次。

这对于从另一台设备实时监控一台设备的性能非常有用,无需 Wi-Fi 网络或任何基础设施。

目录

主要部分

指标服务器是一个可滚动的单屏界面,包含四张卡片:

  • 指标服务器 — 状态和服务器名称配置
  • 服务器控制 — 启动/停止 BLE 广播
  • 已连接客户端 — 已订阅设备的数量
  • 当前指标 — 正在广播的数据的实时预览

指标服务器状态卡片

顶部卡片显示:

  • 运行指示器 — 带有标签的彩色圆点:
    • 运行中(绿色)— 服务器正在活跃地广告和传输。
    • 已停止(红色)— 服务器未在广告。
  • 服务器名称字段 — 可编辑的文本字段,决定其他设备在 BLE 发现过程中看到的名称。详见服务器名称和预设
  • 状态 — 活跃或未活跃。
  • 蓝牙状态 — 当前蓝牙无线电状态(已开启、已关闭、未授权、不支持、重置中、未知)。
  • 已连接 — 当前订阅指标流的客户端设备数量。
  • 错误 — 来自 BLE 堆栈的任何错误消息(仅在发生错误时显示)。

服务器名称和预设

服务器名称决定了此设备在指标客户端用户发现过程中的显示方式。您可以输入任何自定义名称,或使用预设下拉菜单快速应用内置选项之一:

预设示例
营销名称 + 型号标识符iPhone 16 Pro Max (iPhone17,2)
仅营销名称iPhone 16 Pro Max
仅型号标识符iPhone17,2
设备名称Rogerio's iPhone 16ProMax

默认为营销名称(型号标识符)(如可用)。

在服务器运行时更改名称会自动重启 BLE 广告,以便新名称立即生效。

服务器控制

服务器控制卡片包含一个启动服务器 / 停止服务器按钮:

  • 启动服务器(绿色)— 开始 BLE 广告并开始收集 CPU 指标。一旦有客户端订阅,服务器将开始传输数据。
  • 停止服务器(红色)— 停止 BLE 广告并停止指标收集。

按钮下方的说明解释了服务器通过 Bluetooth LE 向已连接客户端广播指标。

已连接客户端

已连接客户端卡片显示:

  • 当前订阅的客户端设备数量(以大数字醒目显示)。
  • 无客户端连接时:显示带有图标和消息的占位符,提示启动服务器并在另一台设备上使用指标客户端。
  • 有客户端连接时:显示确认消息,显示数量(例如"1 个客户端正在接收指标")。

服务器仅在至少有一个客户端订阅时才传输数据。当没有客户端连接时,内部计时器会暂停以节省资源。

当前指标

当前指标卡片显示正在广播的数据的实时预览:

字段描述
CPU 使用率此设备当前的整体 CPU 使用率百分比(例如 30.0%)。
核心数量此设备的 CPU 核心数量(例如 6)。
设备用户指定的设备名称(例如"Rogerio's iPhone 16ProMax")。

在这些字段下方,使用历史折线图显示了 CPU 使用率随时间的变化,直观地展示工作负载的波动情况。

传输的数据

服务器每秒向所有订阅的客户端广播两个 BLE 通知特征:

摘要特征

在紧凑的二进制载荷中包含以下字段:

字段类型描述
服务器名称字符串(最多 32 个字符)状态卡片中显示的可配置名称。
设备型号字符串(最多 32 个字符)设备的营销名称(例如"iPhone 16 Pro Max")。
设备名称字符串(最多 32 个字符)用户在 iOS 设置中指定的设备名称。
CPU 使用率Float(32 位)整体 CPU 使用率百分比(0–100)。
核心数量UInt16CPU 核心数量。
时间戳UInt64自 Unix 纪元以来的毫秒数。

每核心特征

包含每核心的 CPU 使用率数据:

字段类型描述
核心数量UInt8核心数量(最多 32 个)。
核心使用率Float[]每个核心一个 32 位浮点数,表示该核心的使用率百分比。
时间戳UInt64自 Unix 纪元以来的毫秒数。

如何与指标客户端配合使用

  1. 在您想要观察的设备上,打开工具 > 指标服务器,然后点击启动服务器
  2. 在另一台设备上,打开工具 > 指标客户端
  3. 发现选项卡中,在列表中找到服务器并点击连接
  4. 客户端会自动切换到指标选项卡以显示实时数据。

技术细节

  • 服务器使用 CBPeripheralManager 作为 BLE 外围设备。它广告一个自定义 GATT 服务,包含两个仅通知特征(摘要和每核心)。
  • 当至少有一个客户端订阅时,数据每秒传输一次。当没有客户端连接时,计时器会暂停。
  • 载荷中的所有多字节数值均为小端序,这是 Swift 在 Apple 平台上的原生格式。
  • 服务器使用 CoreBluetooth 状态恢复,允许在应用被系统重新启动时恢复广告状态。
  • BLE 反压得到优雅处理——如果传输队列已满,更新会被排队,并在系统通过 peripheralManagerIsReady(toUpdateSubscribers:) 发出就绪信号时进行排空。
  • CPU 指标采样自 CPU 监视器工具使用的同一个 ToolCPUViewModel,确保读数一致。

注意事项与限制

  • 此工具使用 Bluetooth LE,而非 Wi-Fi 网络。设备必须在 BLE 范围内(室内通常为 10–30 米)。
  • BLE 可用性、后台行为和连接稳定性因设备和操作系统版本而异。
  • visionOS 上,指标服务器不可用,因为不支持 BLE 外围设备角色。
  • 由于 BLE 载荷大小限制,服务器名称限制为 32 个字符。
  • 目前仅传输 CPU 相关指标。其他设备指标(内存、温度等)不包含在 BLE 流中。