Telemetria e Observabilidade
Em sistemas de saúde críticos, a telemetria vai além do monitoramento de performance; ela é uma ferramenta de segurança do paciente e conformidade regulatória. Nossa arquitetura integra telemetria em todas as camadas para garantir visibilidade total sobre o que ocorre no ecossistema.
Objetivos da Telemetria
- Observabilidade Técnica: Monitorar erros de API, latência de rede, falhas de injeção de estado e crash de componentes.
- Rastreabilidade Clínica: Auditar quem acessou qual prontuário e quais transições de estado ocorreram durante um atendimento.
- Monitoramento de Experiência (RUM): Entender gargalos de interface em dispositivos médicos ou conexões instáveis.
Camadas de Captura
1. Telemetria de Estado (Redux/Middleware)
Capturamos ações críticas disparadas pelos usuários. Nem todas as ações são enviadas para o servidor de telemetria, apenas as marcadas como meta: { telemetry: true }.
- Exemplo: Gravar quando um médico clica em "Assinar Receita", incluindo o tempo de resposta do processo.
2. Telemetria de Processo (State Machines)
Cada transição de estado no XState pode ser enviada para um serviço de observabilidade. Isso permite reconstruir a jornada exata em caso de erro crítico.
- Mecanismo: Uso de listeners no
service.subscribe()para capturar transições e mudanças de contexto.
3. Telemetria de Erros (Sagas & Error Boundaries)
Centralizamos a captura de exceções. Sagas utilizam um wrapper de try/catch que notifica automaticamente o serviço de telemetria (ex: Sentry, Datadog ou Elastic).
Estratégia de Implementação: Telemetry Collector
Localizado em packages/core/telemetry, o coletor é agnóstico à ferramenta externa.
// Exemplo de uso em um Saga de Domínio
function* handleSaveRecord() {
const telemetry = yield getContext('telemetry');
try {
telemetry.trackEvent('RECORD_SAVE_START', { patientId: '...' });
yield call(api.save, data);
telemetry.trackEvent('RECORD_SAVE_SUCCESS');
} catch (error) {
telemetry.trackError(error, { severity: 'CRITICAL' });
throw error;
}
}Ética e Privacidade (LGPD/HIPAA)
A telemetria nunca deve capturar Dados Sensíveis (PHI - Protected Health Information).
- Regra: Capturamos IDs de entidades e nomes de eventos, mas nunca o conteúdo de textos de prontuário, nomes de pacientes ou valores de exames.
- Sanitização: Todos os payloads passam por um filtro de limpeza antes de saírem do cliente.
A telemetria transforma o "caos" do front-end em dados acionáveis, permitindo que o time de engenharia antecipe falhas antes que elas impactem o atendimento médico.