メインコンテンツまでスキップ

Metrics Server

Bluetooth LEを介して近くのデバイスにライブのデバイス情報をブロードキャストします。

Metrics Server:設定可能なサーバー名、サーバーコントロール、接続クライアント数、現在のメトリクスを表示するステータスカード。
カスタムサーバー名を設定するか、マーケティング名、モデル識別子、デバイス名などのプリセットから選択します。
CPU使用率、コア数、デバイス名、ライブの使用履歴グラフを表示する現在のメトリクスカード。

概要

Metrics Serverは、デバイスをBluetooth Low Energy(BLE)ペリフェラルに変え、Metrics Client を実行している近くのデバイスにライブのデバイス情報をブロードキャストします。接続されたクライアントは、CPU使用率、コアごとのCPUアクティビティ、デバイス識別情報、タイムスタンプなどのデータを1秒ごとにBLEの通知キャラクタリスティックを通じて連続的に受信します。

Wi-Fiネットワークやインフラを必要とせず、別のデバイスからリアルタイムで1台のデバイスのパフォーマンスを監視するのに便利です。

目次

主なセクション

Metrics Serverは4つのカードを持つ単一のスクロール画面です:

  • Metrics Server — ステータスとサーバー名の設定
  • サーバーコントロール — BLEブロードキャストの開始/停止
  • 接続クライアント — 購読中のデバイス数
  • 現在のメトリクス — ブロードキャスト中のデータのライブプレビュー

Metrics Serverステータスカード

最上部のカードには以下が表示されます:

  • 稼働インジケーター — ラベル付きの色付きドット:
    • Running(緑)— サーバーがアクティブに広告および送信中。
    • Stopped(赤)— サーバーが広告していない。
  • サーバー名フィールド — BLE探索時に他のデバイスに表示される名前を編集可能。詳細はサーバー名とプリセットを参照してください。
  • ステータス — アクティブまたは非アクティブ。
  • Bluetoothステータス — 現在のBluetoothラジオ状態(Powered On、Powered Off、Unauthorized、Unsupported、Resetting、Unknown)。
  • 接続数 — 現在メトリクスストリームに購読しているクライアントデバイスの数。
  • エラー — BLEスタックからのエラーメッセージ(エラー発生時のみ表示)。

サーバー名とプリセット

サーバー名は、Metrics Clientユーザーが探索時にこのデバイスをどのように認識するかを決定します。任意のカスタム名を入力するか、プリセットドロップダウンから組み込みのオプションを素早く適用できます:

プリセット
マーケティング名 + モデル識別子iPhone 16 Pro Max (iPhone17,2)
マーケティング名のみiPhone 16 Pro Max
モデル識別子のみiPhone17,2
デバイス名Rogerio's iPhone 16ProMax

デフォルトは利用可能な場合、**マーケティング名(モデル識別子)**です。

サーバー稼働中に名前を変更すると、BLE広告が自動的に再起動され、新しい名前が即座に反映されます。

サーバーコントロール

サーバーコントロールカードには単一のStart Server / Stop Serverボタンがあります:

  • Start Server(緑)— BLE広告を開始し、CPUメトリクスの収集を開始します。クライアントが購読するとすぐにデータ送信を開始します。
  • Stop Server(赤)— BLE広告を停止し、メトリクス収集を中止します。

ボタンの下には、サーバーがBluetooth LEを介して接続クライアントにメトリクスをブロードキャストする旨の説明があります。

接続クライアント

接続クライアントカードには以下が表示されます:

  • 現在購読中のクライアントデバイス数(大きな数字で目立つように表示)。
  • クライアントが接続されていない場合:アイコンとメッセージのプレースホルダーが表示され、サーバーを開始して別のデバイスでMetrics Clientを使用するよう促します。
  • クライアントが接続されている場合:購読数を示す確認メッセージ(例:「1クライアントがメトリクスを受信中」)。

サーバーは少なくとも1台のクライアントが購読している場合のみデータを送信します。クライアントがいない場合は内部タイマーが一時停止され、リソースを節約します。

現在のメトリクス

現在のメトリクスカードはブロードキャスト中のデータのライブプレビューを表示します:

フィールド説明
CPU使用率このデバイスの現在の全体CPU使用率(例:30.0%)。
コア数このデバイスのCPUコア数(例:6)。
デバイスユーザーが割り当てたデバイス名(例:「Rogerio's iPhone 16ProMax」)。

これらのフィールドの下には、CPU使用率の時間推移を示す使用履歴の折れ線グラフがあり、負荷の変動を視覚的に把握できます。

送信データ

サーバーは1秒ごとに2つのBLE通知キャラクタリスティックをすべての購読クライアントにブロードキャストします:

サマリーキャラクタリスティック

コンパクトなバイナリペイロードに以下のフィールドを含みます:

フィールド説明
サーバー名文字列(最大32文字)ステータスカードに表示される設定可能な名前。
デバイスモデル文字列(最大32文字)デバイスのマーケティング名(例:「iPhone 16 Pro Max」)。
デバイス名文字列(最大32文字)iOS設定からのユーザー割り当てデバイス名。
CPU使用率浮動小数点数(32ビット)全体のCPU使用率(0〜100%)。
コア数UInt16CPUコア数。
タイムスタンプUInt64Unixエポックからのミリ秒。

コア別キャラクタリスティック

コアごとのCPU使用率データを含みます:

フィールド説明
コア数UInt8コア数(最大32)。
コア使用率浮動小数点数配列各コアの使用率を表す32ビット浮動小数点数。
タイムスタンプUInt64Unixエポックからのミリ秒。

Metrics Clientとの使い方

  1. 監視したいデバイスで、ツール > Metrics Serverを開き、Start Serverをタップします。
  2. 別のデバイスで、ツール > Metrics Clientを開きます。
  3. Discoveryタブでサーバーをリストから見つけてConnectをタップします。
  4. クライアントは自動的にMetricsタブに切り替わり、ライブデータを表示します。

技術的詳細

  • サーバーはCBPeripheralManagerを使用するBLEペリフェラルとして動作します。2つの通知専用キャラクタリスティック(サマリーとコア別)を持つカスタムGATTサービスを広告します。
  • 少なくとも1台のクライアントが購読している場合に1秒ごとにデータを送信します。クライアントがいない場合はタイマーが一時停止されます。
  • ペイロード内のすべてのマルチバイト数値は、AppleプラットフォームのSwiftがネイティブに生成するリトルエンディアン形式です。
  • サーバーはCoreBluetooth状態復元を使用し、システムによるアプリ再起動時に広告状態を回復可能です。
  • BLEのバックプレッシャーは適切に処理されます。送信キューが満杯の場合、更新はキューに入れられ、peripheralManagerIsReady(toUpdateSubscribers:)でシステムが準備完了を通知した際に排出されます。
  • CPUメトリクスはCPU Monitorツールで使用される同じToolCPUViewModelからサンプリングされ、一貫した読み取りを保証します。

注意事項と制限

  • このツールはBluetooth LEを使用し、Wi-Fiネットワークは使用しません。デバイスはBLEの範囲内(通常は屋内で10〜30メートル)にある必要があります。
  • BLEの利用可能性、バックグラウンド動作、接続の安定性はデバイスおよびOSバージョンによって異なります。
  • visionOSではBLEペリフェラルロールがサポートされていないため、Metrics Serverは利用できません。
  • サーバー名はBLEペイロードサイズの制約により32文字までに制限されています。
  • 現在送信されるのはCPU関連のメトリクスのみで、メモリや温度など他のデバイス情報はBLEストリームに含まれていません。