Metrics Server
Diffusez en direct les métriques de l'appareil vers les appareils à proximité via Bluetooth LE.
Vue d'ensemble
Metrics Server transforme votre appareil en un périphérique Bluetooth Low Energy (BLE) qui diffuse en direct les métriques de l'appareil vers les appareils à proximité exécutant Metrics Client. Les clients connectés reçoivent un flux continu de données incluant l'utilisation CPU, l'activité CPU par cœur, les informations d'identité de l'appareil et les horodatages — le tout transmis une fois par seconde via des caractéristiques BLE en notification.
Cela est utile pour surveiller les performances d’un appareil depuis un autre en temps réel, sans nécessiter de réseau Wi-Fi ni d’infrastructure.
Table des matières
- Sections principales
- Carte de statut Metrics Server
- Nom du serveur et préréglages
- Contrôles du serveur
- Clients connectés
- Métriques actuelles
- Données transmises
- Comment utiliser avec Metrics Client
- Détails techniques
- Notes et limitations
Sections principales
Metrics Server est un écran unique d éfilant avec quatre cartes :
- Metrics Server — statut et configuration du nom du serveur
- Contrôles du serveur — démarrer/arrêter la diffusion BLE
- Clients connectés — nombre d’appareils abonnés
- Métriques actuelles — aperçu en direct des données diffusées
Carte de statut Metrics Server
La carte supérieure affiche :
- Un indicateur d’exécution — un point coloré avec une étiquette :
- En cours (vert) — le serveur fait de la publicité et transmet activement.
- Arrêté (rouge) — le serveur ne fait pas de publicité.
- Champ Nom du serveur — un champ texte modifiable qui détermine le nom visible par les autres appareils lors de la découverte BLE. Voir Nom du serveur et préréglages pour plus de détails.
- Statut — Actif ou Inactif.
- État Bluetooth — état actuel de la radio Bluetooth (Activé, Désactivé, Non autorisé, Non supporté, Réinitialisation, Inconnu).
- Connectés — nombre d’appareils clients actuellement abonnés au flux de métriques.
- Erreur — tout message d’erreur provenant de la pile BLE (affiché uniquement en cas d’erreur).
Nom du serveur et préréglages
Le nom du serveur détermine comment cet appareil apparaît aux utilisateurs de Metrics Client lors de la découverte. Vous pouvez saisir un nom personnalisé ou utiliser le menu déroulant Préréglages pour appliquer rapidement l’une des options intégrées :
| Préréglage | Exemple |
|---|---|
| Nom marketing + identifiant du modèle | iPhone 16 Pro Max (iPhone17,2) |
| Nom marketing uniquement | iPhone 16 Pro Max |
| Identifiant du modèle uniquement | iPhone17,2 |
| Nom de l’appareil | iPhone 16ProMax de Rogerio |
Le réglage par défaut est Nom marketing (Identifiant du modèle) lorsque disponible.
Modifier le nom pendant que le serveur fonctionne redémarre automatiquement la publicité BLE pour que le nouveau nom prenne effet immédiatement.
Contrôles du serveur
La carte Contrôles du serveur contient un seul bouton Démarrer le serveur / Arrêter le serveur :
- Démarrer le serveur (vert) — lance la publicité BLE et commence la collecte des métriques CPU. Le serveur commence à transmettre les données dès qu’un client s’abonne.
- Arrêter le serveur (rouge) — arrête la publicité BLE et suspend la collecte des métriques.
Une description sous le bouton explique que le serveur diffuse les métriques aux clients connectés via Bluetooth LE.
Clients connectés
La carte Clients connectés affiche :
- Le nombre d’appareils clients actuellement abonnés (affiché en grand).
- Lorsqu’aucun client n’est connecté : un espace réservé avec une icône et un message invitant à démarrer le serveur et utiliser Metrics Client sur un autre appareil.
- Lorsque des clients sont connectés : un message de confirmation indiquant le nombre (ex. « 1 client reçoit les métriques »).
Le serveur ne transmet des données que lorsqu’au moins un client est abonné. Lorsqu’aucun client n’est connecté, le minuteur interne est mis en pause pour économiser les ressources.
Métriques actuelles
La carte Métriques actuelles affiche un aperçu en direct des données diffusées :
| Champ | Description |
|---|---|
| Utilisation CPU | Pourcentage actuel d’utilisation globale du CPU de cet appareil (ex. 30,0%). |
| Nombre de cœurs | Nombre de cœurs CPU sur cet appareil (ex. 6). |
| Appareil | Nom de l’appareil attribué par l’utilisateur (ex. « iPhone 16ProMax de Rogerio »). |
Sous ces champs, un graphique linéaire Historique d’utilisation montre l’évolution de l’utilisation CPU dans le temps, offrant une vue visuelle des fluctuations de la charge.
Données transmises
Le serveur diffuse deux caractéristiques BLE en notification une fois par seconde à tous les clients abonnés :
Caractéristique Résumé
Contient les champs suivants dans une charge binaire compacte :
| Champ | Type | Description |
|---|---|---|
| Nom du serveur | Chaîne (jusqu’à 32 caractères) | Le nom configurable affiché dans la carte de statut. |
| Modèle de l’appareil | Chaîne (jusqu’à 32 caractères) | Nom marketing de l’appareil (ex. « iPhone 16 Pro Max »). |
| Nom de l’appareil | Chaîne (jusqu’à 32 caractères) | Nom de l’appareil attribué par l’utilisateur dans les Réglages iOS. |
| Utilisation CPU | Float (32 bits) | Utilisation globale du CPU en pourcentage (0–100). |
| Nombre de cœurs | UInt16 | Nombre de cœurs CPU. |
| Horodatage | UInt64 | Millisecondes depuis l’époque Unix. |
Caractéristique par cœur
Contient les données d’utilisation CPU par cœur :
| Champ | Type | Description |
|---|---|---|
| Nombre de cœurs | UInt8 | Nombre de cœurs (jusqu’à 32). |
| Utilisations par cœur | Float[] | Un float 32 bits par cœur, représentant le pourcentage d’utilisation de ce cœur. |
| Horodatage | UInt64 | Millisecondes depuis l’époque Unix. |
Comment utiliser avec Metrics Client
- Sur l’appareil que vous souhaitez observer, ouvrez Outils > Metrics Server et appuyez sur Démarrer le serveur.
- Sur un autre appareil, ouvrez Outils > Metrics Client.
- Dans l’onglet Découverte, trouvez le serveur dans la liste et appuyez sur Connecter.
- Le client bascule automatiquement vers l’onglet Métriques pour afficher les données en direct.
Détails techniques
- Le serveur agit en tant que périphérique BLE utilisant
CBPeripheralManager. Il fait de la publicité d’un service GATT personnalisé avec deux caractéristiques en notification uniquement (résumé et par cœur). - Les données sont transmises une fois par seconde lorsqu’au moins un client est abonné. Le minuteur est mis en pause lorsqu’aucun client n’est connecté.
- Toutes les valeurs numériques multi-octets dans la charge utile sont en little-endian, telles que produites nativement par Swift sur les plateformes Apple.
- Le serveur utilise la restauration d’état CoreBluetooth, ce qui lui permet de récupérer l’état de la publicité si l’application est relancée par le système.
- La gestion de la pression sur le canal BLE est effectuée de manière fluide — si la file d’attente de transmission est pleine, les mises à jour sont mises en file d’attente et envoyées lorsque le système signale sa disponibilité via
peripheralManagerIsReady(toUpdateSubscribers:). - Les métriques CPU sont échantillonnées à partir du même
ToolCPUViewModelutilisé par l’outil Moniteur CPU, garantissant des lectures cohérentes.
Notes et limitations
- Cet outil utilise Bluetooth LE, pas le réseau Wi-Fi. Les appareils doivent être à portée BLE (typiquement 10–30 mètres en intérieur).
- La disponibilité du BLE, le comportement en arrière-plan et la stabilité de la connexion varient selon l’appareil et la version du système d’exploitation.
- Sur visionOS, Metrics Server n’est pas disponible car le rôle de périphérique BLE n’est pas supporté.
- Le nom du serveur est limité à 32 caractères en raison des contraintes de taille de la charge BLE.
- Seules les métriques liées au CPU sont actuellement transmises. Les autres métriques de l’appareil (mémoire, thermique, etc.) ne sont pas incluses dans le flux BLE.