Pular para o conteúdo principal

Servidor de Métricas

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

Servidor de Métricas: cartão de status com nome do servidor configurável, controles do servidor, contagem de clientes conectados e métricas atuais.
Defina um nome personalizado para o servidor 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 Servidor de Métricas transforma seu dispositivo em um periférico Bluetooth Low Energy (BLE) que transmite métricas do dispositivo em tempo real para dispositivos próximos executando o Cliente de Métricas. Os clientes conectados recebem um fluxo contínuo de dados incluindo uso da CPU, atividade da CPU por núcleo, informações de identidade do dispositivo e carimbos de data/hora — todos transmitidos uma vez por segundo através de características de notificação BLE.

Isso é útil para monitorar o desempenho de um dispositivo a partir de outro em tempo real, sem necessidade de uma rede Wi-Fi ou qualquer infraestrutura.

Sumário

Seções Principais

O Servidor de Métricas é uma tela única com rolagem contendo quatro cartões:

  • Servidor de Métricas — status e configuração do nome do servidor
  • Controles do Servidor — iniciar/parar a transmissão BLE
  • Clientes Conectados — contagem de dispositivos inscritos
  • Métricas Atuais — visualização em tempo real dos dados sendo transmitidos

Cartão de Status do Servidor de Métricas

O cartão superior exibe:

  • Um indicador de execução — um ponto colorido com um rótulo:
    • Em execução (verde) — o servidor está ativamente anunciando e transmitindo.
    • Parado (vermelho) — o servidor não está anunciando.
  • Campo Nome do Servidor — um campo de texto editável que determina o nome que outros dispositivos verão durante a descoberta BLE. Veja Nome do Servidor e Predefinições para detalhes.
  • Status — Ativo ou Inativo.
  • Status do Bluetooth — o estado atual do rádio Bluetooth (Ligado, Desligado, Não Autorizado, Não Suportado, Reiniciando, Desconhecido).
  • Conectados — o número de dispositivos clientes atualmente inscritos no fluxo de métricas.
  • Erro — qualquer mensagem de erro da pilha BLE (exibido apenas quando ocorre um erro).

Nome do Servidor e Predefinições

O nome do servidor determina como este dispositivo aparece para usuários do Cliente de Métricas durante a descoberta. Você pode digitar qualquer nome personalizado ou usar o menu suspenso Predefinições para aplicar rapidamente uma das opções integradas:

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 dispositivoiPhone 16ProMax do Rogerio

O padrão é Nome comercial (Identificador do modelo) quando disponível.

Alterar o nome enquanto o servidor está em execução reinicia automaticamente o anúncio BLE para que o novo nome entre em vigor imediatamente.

Controles do Servidor

O cartão de Controles do Servidor contém um único botão Iniciar Servidor / Parar Servidor:

  • Iniciar Servidor (verde) — inicia o anúncio BLE e começa a coletar métricas da CPU. O servidor começará a transmitir dados assim que um cliente se inscrever.
  • Parar Servidor (vermelho) — para o anúncio BLE e interrompe a coleta de métricas.

Uma descrição abaixo do botão explica que o servidor transmite métricas para clientes conectados via Bluetooth LE.

Clientes Conectados

O cartão de Clientes Conectados mostra:

  • O número de dispositivos clientes atualmente inscritos (exibido em destaque como um número grande).
  • Quando nenhum cliente está conectado: um espaço reservado com um ícone e uma mensagem para iniciar o servidor e usar o Cliente de Métricas em outro dispositivo.
  • Quando há clientes conectados: uma mensagem de confirmação mostrando a contagem (ex.: "1 cliente está recebendo métricas").

O servidor só transmite dados quando pelo menos um cliente está inscrito. Quando nenhum cliente está conectado, o temporizador interno é pausado para conservar recursos.

Métricas Atuais

O cartão de Métricas Atuais mostra uma visualização em tempo real dos dados sendo transmitidos:

CampoDescrição
Uso da CPUA porcentagem atual de uso geral da CPU deste dispositivo (ex.: 30,0%).
Contagem de NúcleosO número de núcleos da CPU neste dispositivo (ex.: 6).
DispositivoO nome do dispositivo atribuído pelo usuário (ex.: "iPhone 16ProMax do Rogerio").

Abaixo desses campos, um gráfico de linha de Histórico de Uso mostra o uso da CPU ao longo do tempo, dando uma noção visual de como a carga de trabalho flutua.

Dados Transmitidos

O servidor transmite duas características de notificação BLE uma vez por segundo para todos os clientes inscritos:

Característica de Resumo

Contém os seguintes campos em uma carga binária compacta:

CampoTipoDescrição
Nome do ServidorString (até 32 caracteres)O nome configurável mostrado no cartão de status.
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 usuário nas Configurações do iOS.
Uso da CPUFloat (32 bits)Uso geral da CPU como porcentagem (0–100).
Contagem de NúcleosUInt16Número de núcleos da CPU.
Carimbo de Data/HoraUInt64Milissegundos 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).
Uso dos NúcleosFloat[]Um float de 32 bits por núcleo, representando a porcentagem de uso daquele núcleo.
Carimbo de Data/HoraUInt64Milissegundos desde a época Unix.

Como Usar com o Cliente de Métricas

  1. No dispositivo que você deseja observar, abra Ferramentas > Servidor de Métricas e toque em Iniciar Servidor.
  2. Em outro dispositivo, abra Ferramentas > Cliente de Métricas.
  3. Na aba Descoberta, encontre o servidor na lista e toque em Conectar.
  4. O cliente muda automaticamente para a aba Métricas para exibir os dados em tempo real.

Detalhes Técnicos

  • O servidor atua como um Periférico BLE usando CBPeripheralManager. Ele anuncia um serviço GATT personalizado com duas características somente de notificação (resumo e por núcleo).
  • Os dados são transmitidos uma vez por segundo quando pelo menos um cliente está inscrito. O temporizador é pausado quando nenhum cliente está conectado.
  • Todos os valores numéricos de múltiplos bytes na carga são little-endian, conforme produzidos nativamente pelo Swift nas plataformas Apple.
  • O servidor usa restauração de estado CoreBluetooth, permitindo recuperar o estado de anúncio se o aplicativo for relançado pelo sistema.
  • A contrapressão BLE é tratada graciosamente — se a fila de transmissão estiver cheia, as atualizações são enfileiradas e drenadas quando o sistema sinaliza prontidão via peripheralManagerIsReady(toUpdateSubscribers:).
  • As métricas da CPU são amostradas 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 ambientes internos).
  • A disponibilidade do BLE, comportamento em segundo plano e estabilidade de conexão variam de acordo com o dispositivo e versão do sistema operacional.
  • No visionOS, o Servidor de Métricas não está disponível porque o papel de periférico BLE não é suportado.
  • O nome do servidor é limitado a 32 caracteres devido às restrições de tamanho da carga BLE.
  • Apenas métricas relacionadas à CPU são transmitidas atualmente. Outras métricas do dispositivo (memória, temperatura, etc.) não estão incluídas no fluxo BLE.