Servidor de Métricas
Transmita métricas do dispositivo em tempo real para dispositivos próximos via Bluetooth LE.
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
- Cartão de Status do Servidor de Métricas
- Nome do Servidor e Predefinições
- Controles do Servidor
- Clientes Conectados
- Métricas Atuais
- Dados Transmitidos
- Como Usar com o Cliente de Métricas
- Detalhes Técnicos
- Notas e Limitações
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çã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 | iPhone 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:
| Campo | Descrição |
|---|---|
| Uso da CPU | A porcentagem atual de uso geral da CPU deste dispositivo (ex.: 30,0%). |
| Contagem de Núcleos | O número de núcleos da CPU neste dispositivo (ex.: 6). |
| Dispositivo | O 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:
| Campo | Tipo | Descrição |
|---|---|---|
| Nome do Servidor | String (até 32 caracteres) | O nome configurável mostrado no cartão de status. |
| 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 usuário nas Configurações do iOS. |
| Uso da CPU | Float (32 bits) | Uso geral da CPU como porcentagem (0–100). |
| Contagem de Núcleos | UInt16 | Número de núcleos da CPU. |
| Carimbo de Data/Hora | 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). |
| Uso dos Núcleos | Float[] | Um float de 32 bits por núcleo, representando a porcentagem de uso daquele núcleo. |
| Carimbo de Data/Hora | UInt64 | Milissegundos desde a época Unix. |
Como Usar com o Cliente de Métricas
- No dispositivo que você deseja observar, abra Ferramentas > Servidor de Métricas e toque em Iniciar Servidor.
- Em outro dispositivo, abra Ferramentas > Cliente de Métricas.
- Na aba Descoberta, encontre o servidor na lista e toque em Conectar.
- 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
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 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.