Metrics Server
Transmita métricas do dispositivo em tempo real para dispositivos próximos via Bluetooth LE.
Visão geral
O Metrics Server transforma o seu dispositivo num periférico Bluetooth Low Energy (BLE) que transmite métricas do dispositivo em tempo real para dispositivos próximos que executam o Metrics Client. Os clientes ligados recebem um fluxo contínuo de dados incluindo uso da CPU, atividade por núcleo, informações de identidade do dispositivo e carimbos temporais — tudo transmitido uma vez por segundo através de características BLE de notificação.
Isto é útil para monitorizar o desempenho de um dispositivo a partir de outro em tempo real, sem necessidade de rede Wi-Fi ou qualquer infraestrutura.
Índice
- Secções principais
- Cartão de estado do Metrics Server
- Nome do servidor e predefinições
- Controlos do servidor
- Clientes ligados
- Métricas atuais
- Dados transmitidos
- Como usar com Metrics Client
- Detalhes técnicos
- Notas e limitações
Secções principais
O Metrics Server é um ecrã único com scroll contendo quatro cartões:
- Metrics Server — estado e configuração do nome do servidor
- Controlos do servidor — iniciar/parar a transmissão BLE
- Clientes ligados — contagem de dispositivos subscritos
- Métricas atuais — pré-visualização em tempo real dos dados transmitidos
Cartão de estado do Metrics Server
O cartão superior apresenta:
- Um indicador de funcionamento — um ponto colorido com uma etiqueta:
- A funcionar (verde) — o servidor está a anunciar e a transmitir ativamente.
- Parado (vermelho) — o servidor não está a anunciar.
- Campo Nome do servidor — um campo de texto editável que determina o nome que outros dispositivos verão durante a descoberta BLE. Consulte Nome do servidor e predefinições para detalhes.
- Estado — Ativo ou Inativo.
- Estado do Bluetooth — o estado atual do rádio Bluetooth (Ligado, Desligado, Não autorizado, Não suportado, A reiniciar, Desconhecido).
- Ligados — o número de dispositivos clientes atualmente subscritos ao fluxo de métricas.
- Erro — qualquer mensagem de erro da pilha BLE (apenas mostrado quando ocorre um erro).
Nome do servidor e predefinições
O nome do servidor determina como este dispositivo aparece para os utilizadores do Metrics Client durante a descoberta. Pode digitar qualquer nome personalizado ou usar o menu Predefinições para aplicar rapidamente uma das opções incorporadas:
| Predefinição | Exemplo |
|---|---|
| Nome comercial + identificador do modelo | iPhone 16 Pro Max (iPhone17,2) |
| Apenas nome comercial | iPhone 16 Pro Max |
| Apenas identificador do modelo | iPhone17,2 |
| Nome do dispositivo | Rogerio's iPhone 16ProMax |
O padrão é Nome comercial (Identificador do modelo) quando disponível.
Alterar o nome enquanto o servidor está a funcionar reinicia automaticamente a publicidade BLE para que o novo nome tenha efeito imediato.
Controlos do servidor
O cartão Controlos do servidor contém um único botão Iniciar servidor / Parar servidor:
- Iniciar servidor (verde) — inicia a publicidade BLE e começa a recolher métricas da CPU. O servidor começará a transmitir dados assim que um cliente se subscrever.
- Parar servidor (vermelho) — para a publicidade BLE e interrompe a recolha de métricas.
Uma descrição abaixo do botão explica que o servidor transmite métricas para clientes ligados via Bluetooth LE.
Clientes ligados
O cartão Clientes ligados mostra:
- O número de dispositivos clientes atualmente subscritos (exibido em destaque como um número grande).
- Quando não há clientes ligados: um espaço reservado com um ícone e uma mensagem para iniciar o servidor e usar o Metrics Client noutro dispositivo.
- Quando há clientes ligados: uma mensagem de confirmação mostrando a contagem (ex. "1 cliente está a receber métricas").
O servidor só transmite dados quando pelo menos um cliente está subscrito. Quando não há clientes ligados, o temporizador interno é pausado para conservar recursos.
Métricas atuais
O cartão Métricas atuais mostra uma pré-visualização em tempo real dos dados transmitidos:
| Campo | Descrição |
|---|---|
| Uso da CPU | Percentagem atual de uso global da CPU deste dispositivo (ex. 30,0%). |
| Contagem de núcleos | Número de núcleos da CPU neste dispositivo (ex. 6). |
| Dispositivo | Nome do dispositivo atribuído pelo utilizador (ex. "Rogerio's iPhone 16ProMax"). |
Abaixo destes campos, um gráfico de linha Histórico de uso mostra o uso da CPU ao longo do tempo, dando uma perceção visual de como a carga varia.
Dados transmitidos
O servidor transmite duas características BLE de notificação uma vez por segundo para todos os clientes subscritos:
Característica resumo
Contém os seguintes campos num payload binário compacto:
| Campo | Tipo | Descrição |
|---|---|---|
| Nome do servidor | String (até 32 caracteres) | O nome configurável mostrado no cartão de estado. |
| Modelo do dispositivo | String (até 32 caracteres) | O nome comercial do dispositivo (ex. "iPhone 16 Pro Max"). |
| Nome do dispositivo | String (até 32 caracteres) | O nome do dispositivo atribuído pelo utilizador nas Definições iOS. |
| Uso da CPU | Float (32-bit) | Uso global da CPU em percentagem (0–100). |
| Contagem de núcleos | UInt16 | Número de núcleos da CPU. |
| Carimbo temporal | UInt64 | Milissegundos desde a época Unix. |
Característica por núcleo
Contém dados de uso da CPU por núcleo:
| Campo | Tipo | Descrição |
|---|---|---|
| Contagem de núcleos | UInt8 | Número de núcleos (até 32). |
| Usos por núcleo | Float[] | Um float de 32-bit por núcleo, representando a percentagem de uso desse núcleo. |
| Carimbo temporal | UInt64 | Milissegundos desde a época Unix. |
Como usar com Metrics Client
- No dispositivo que pretende observar, abra Ferramentas > Metrics Server e toque em Iniciar servidor.
- Noutro dispositivo, abra Ferramentas > Metrics Client.
- No separador Descoberta, encontre o servidor na lista e toque em Ligar.
- O cliente muda automaticamente para o separador Métricas para mostrar os dados em tempo real.
Detalhes técnicos
- O servidor atua como um Periférico BLE usando
CBPeripheralManager. Anuncia um serviço GATT personalizado com duas características apenas de notificação (resumo e por núcleo). - Os dados são transmitidos uma vez por segundo quando pelo menos um cliente está subscrito. O temporizador é pausado quando não há clientes ligados.
- Todos os valores numéricos multi-byte no payload são little-endian, conforme produzido nativamente pelo Swift nas plataformas Apple.
- O servidor usa restauração de estado CoreBluetooth, permitindo recuperar o estado da publicidade se a app for relançada pelo sistema.
- A pressão de transmissão BLE é gerida de forma eficiente — se a fila de transmissão estiver cheia, as atualizações são enfileiradas e enviadas quando o sistema sinaliza prontidão via
peripheralManagerIsReady(toUpdateSubscribers:). - As métricas da CPU são amostradas a partir do mesmo
ToolCPUViewModelusado pela ferramenta Monitor de CPU, garantindo leituras consistentes.
Notas e limitações
- Esta ferramenta usa Bluetooth LE, não rede Wi-Fi. Os dispositivos devem estar dentro do alcance BLE (tipicamente 10–30 metros em interiores).
- A disponibilidade do BLE, comportamento em segundo plano e estabilidade da ligação variam consoante o dispositivo e a versão do sistema operativo.
- No visionOS, o Metrics Server não está disponível porque o papel de periférico BLE não é suportado.
- O nome do servidor está limitado a 32 caracteres devido às restrições do tamanho do payload BLE.
- Apenas métricas relacionadas com a CPU são atualmente transmitidas. Outras métricas do dispositivo (memória, térmicas, etc.) não estão incluídas no fluxo BLE.