Passa al contenuto principale

Metrics Server

Trasmetti in tempo reale le metriche del dispositivo ai dispositivi vicini tramite Bluetooth LE.

Metrics Server: scheda di stato con nome server configurabile, controlli server, conteggio client connessi e metriche correnti.
Imposta un nome server personalizzato o scegli tra i preset come nome commerciale, identificatore modello o nome dispositivo.
Scheda Metriche Correnti che mostra utilizzo CPU, numero di core, nome dispositivo e un grafico storico in tempo reale.

Panoramica

Metrics Server trasforma il tuo dispositivo in un periferico Bluetooth Low Energy (BLE) che trasmette metriche in tempo reale ai dispositivi vicini che eseguono Metrics Client. I client connessi ricevono un flusso continuo di dati che include utilizzo CPU, attività per singolo core, informazioni di identità del dispositivo e timestamp — tutto trasmesso una volta al secondo tramite caratteristiche BLE notify.

Questo è utile per monitorare le prestazioni di un dispositivo da un altro in tempo reale, senza necessità di una rete Wi-Fi o di infrastrutture aggiuntive.

Indice

Sezioni principali

Metrics Server è una singola schermata scorrevole composta da quattro schede:

  • Metrics Server — stato e configurazione del nome server
  • Controlli server — avvio/arresto della trasmissione BLE
  • Client connessi — conteggio dei dispositivi sottoscritti
  • Metriche correnti — anteprima in tempo reale dei dati trasmessi

Scheda di stato di Metrics Server

La scheda superiore mostra:

  • Un indicatore di stato — un punto colorato con etichetta:
    • In esecuzione (verde) — il server sta trasmettendo e pubblicizzando attivamente.
    • Arrestato (rosso) — il server non sta pubblicizzando.
  • Campo Nome server — campo di testo modificabile che determina il nome visualizzato dagli altri dispositivi durante la scoperta BLE. Vedi Nome server e preset per dettagli.
  • Stato — Attivo o Inattivo.
  • Stato Bluetooth — stato attuale della radio Bluetooth (Acceso, Spento, Non autorizzato, Non supportato, In ripristino, Sconosciuto).
  • Connessi — numero di dispositivi client attualmente sottoscritti al flusso di metriche.
  • Errore — eventuale messaggio di errore dallo stack BLE (mostrato solo in caso di errore).

Nome server e preset

Il nome server determina come questo dispositivo appare agli utenti di Metrics Client durante la scoperta. Puoi inserire un nome personalizzato oppure utilizzare il menu a discesa Preset per applicare rapidamente una delle opzioni predefinite:

PresetEsempio
Nome commerciale + identificatore modelloiPhone 16 Pro Max (iPhone17,2)
Solo nome commercialeiPhone 16 Pro Max
Solo identificatore modelloiPhone17,2
Nome dispositivoiPhone 16ProMax di Rogerio

L'impostazione predefinita è Nome commerciale (Identificatore modello) quando disponibile.

Modificare il nome mentre il server è in esecuzione riavvia automaticamente la pubblicizzazione BLE affinché il nuovo nome abbia effetto immediato.

Controlli server

La scheda Controlli server contiene un unico pulsante Avvia server / Arresta server:

  • Avvia server (verde) — avvia la pubblicizzazione BLE e inizia la raccolta delle metriche CPU. Il server inizierà a trasmettere dati non appena un client si sottoscrive.
  • Arresta server (rosso) — interrompe la pubblicizzazione BLE e ferma la raccolta delle metriche.

Una descrizione sotto il pulsante spiega che il server trasmette le metriche ai client connessi tramite Bluetooth LE.

Client connessi

La scheda Client connessi mostra:

  • Il numero di dispositivi client attualmente sottoscritti (visualizzato in grande).
  • Quando nessun client è connesso: un segnaposto con icona e messaggio per avviare il server e usare Metrics Client su un altro dispositivo.
  • Quando ci sono client connessi: un messaggio di conferma con il conteggio (es. "1 client sta ricevendo le metriche").

Il server trasmette dati solo quando almeno un client è sottoscritto. Quando nessun client è connesso, il timer interno viene messo in pausa per risparmiare risorse.

Metriche correnti

La scheda Metriche correnti mostra un'anteprima in tempo reale dei dati trasmessi:

CampoDescrizione
Utilizzo CPUPercentuale attuale di utilizzo complessivo della CPU di questo dispositivo (es. 30,0%).
Numero coreNumero di core CPU presenti su questo dispositivo (es. 6).
DispositivoNome del dispositivo assegnato dall'utente (es. "iPhone 16ProMax di Rogerio").

Sotto questi campi, un grafico Storico utilizzo mostra l'andamento dell'utilizzo CPU nel tempo, offrendo una rappresentazione visiva delle variazioni di carico.

Dati trasmessi

Il server trasmette due caratteristiche BLE notify una volta al secondo a tutti i client sottoscritti:

Caratteristica di riepilogo

Contiene i seguenti campi in un payload binario compatto:

CampoTipoDescrizione
Nome serverStringa (fino a 32 caratteri)Il nome configurabile mostrato nella scheda di stato.
Modello dispositivoStringa (fino a 32 caratteri)Nome commerciale del dispositivo (es. "iPhone 16 Pro Max").
Nome dispositivoStringa (fino a 32 caratteri)Nome del dispositivo assegnato dall'utente nelle Impostazioni iOS.
Utilizzo CPUFloat (32 bit)Utilizzo complessivo della CPU in percentuale (0–100).
Numero coreUInt16Numero di core CPU.
TimestampUInt64Millisecondi dall'epoca Unix.

Caratteristica per-core

Contiene i dati di utilizzo CPU per singolo core:

CampoTipoDescrizione
Numero coreUInt8Numero di core (fino a 32).
Utilizzo coreFloat[]Un float 32 bit per core, che rappresenta la percentuale di utilizzo di ciascun core.
TimestampUInt64Millisecondi dall'epoca Unix.

Come usare con Metrics Client

  1. Sul dispositivo che vuoi monitorare, apri Strumenti > Metrics Server e tocca Avvia server.
  2. Su un altro dispositivo, apri Strumenti > Metrics Client.
  3. Nella scheda Scoperta, trova il server nell'elenco e tocca Connetti.
  4. Il client passa automaticamente alla scheda Metriche per mostrare i dati in tempo reale.

Dettagli tecnici

  • Il server agisce come BLE Peripheral utilizzando CBPeripheralManager. Pubblicizza un servizio GATT personalizzato con due caratteristiche notify (riepilogo e per-core).
  • I dati vengono trasmessi una volta al secondo quando almeno un client è sottoscritto. Il timer viene messo in pausa quando nessun client è connesso.
  • Tutti i valori numerici multi-byte nel payload sono in little-endian, come prodotto nativamente da Swift sulle piattaforme Apple.
  • Il server utilizza il ripristino stato CoreBluetooth, permettendo di recuperare lo stato di pubblicizzazione se l'app viene riavviata dal sistema.
  • La pressione sul canale BLE viene gestita in modo efficiente — se la coda di trasmissione è piena, gli aggiornamenti vengono accodati e inviati quando il sistema segnala la disponibilità tramite peripheralManagerIsReady(toUpdateSubscribers:).
  • Le metriche CPU sono campionate dallo stesso ToolCPUViewModel utilizzato dallo strumento Monitor CPU, garantendo letture coerenti.

Note e limitazioni

  • Questo strumento utilizza Bluetooth LE, non la rete Wi-Fi. I dispositivi devono essere nel raggio BLE (tipicamente 10–30 metri in ambienti interni).
  • Disponibilità BLE, comportamento in background e stabilità della connessione variano in base al dispositivo e alla versione del sistema operativo.
  • Su visionOS, Metrics Server non è disponibile perché il ruolo BLE peripheral non è supportato.
  • Il nome server è limitato a 32 caratteri a causa dei vincoli di dimensione del payload BLE.
  • Attualmente vengono trasmesse solo metriche relative alla CPU. Altre metriche del dispositivo (memoria, termiche, ecc.) non sono incluse nel flusso BLE.