Saltar para o conteúdo principal

Metrics Server

Transmita métricas do dispositivo em tempo real para dispositivos próximos via Bluetooth LE.

Metrics Server: cartão de estado com nome do servidor configurável, controlos do servidor, contagem de clientes ligados e métricas atuais.
Defina um nome de servidor personalizado ou escolha entre predefinições como nome comercial, identificador do modelo ou nome do dispositivo.
Cartão de Métricas Atuais mostrando uso da CPU, contagem de núcleos, nome do dispositivo e um gráfico de histórico de uso em tempo real.

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

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çãoExemplo
Nome comercial + identificador do modeloiPhone 16 Pro Max (iPhone17,2)
Apenas nome comercialiPhone 16 Pro Max
Apenas identificador do modeloiPhone17,2
Nome do dispositivoRogerio'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:

CampoDescrição
Uso da CPUPercentagem atual de uso global da CPU deste dispositivo (ex. 30,0%).
Contagem de núcleosNúmero de núcleos da CPU neste dispositivo (ex. 6).
DispositivoNome 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:

CampoTipoDescrição
Nome do servidorString (até 32 caracteres)O nome configurável mostrado no cartão de estado.
Modelo do dispositivoString (até 32 caracteres)O nome comercial do dispositivo (ex. "iPhone 16 Pro Max").
Nome do dispositivoString (até 32 caracteres)O nome do dispositivo atribuído pelo utilizador nas Definições iOS.
Uso da CPUFloat (32-bit)Uso global da CPU em percentagem (0–100).
Contagem de núcleosUInt16Número de núcleos da CPU.
Carimbo temporalUInt64Milissegundos desde a época Unix.

Característica por núcleo

Contém dados de uso da CPU por núcleo:

CampoTipoDescrição
Contagem de núcleosUInt8Número de núcleos (até 32).
Usos por núcleoFloat[]Um float de 32-bit por núcleo, representando a percentagem de uso desse núcleo.
Carimbo temporalUInt64Milissegundos desde a época Unix.

Como usar com Metrics Client

  1. No dispositivo que pretende observar, abra Ferramentas > Metrics Server e toque em Iniciar servidor.
  2. Noutro dispositivo, abra Ferramentas > Metrics Client.
  3. No separador Descoberta, encontre o servidor na lista e toque em Ligar.
  4. 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 ToolCPUViewModel usado 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.