Skip to content

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

  1. Observabilidade Técnica: Monitorar erros de API, latência de rede, falhas de injeção de estado e crash de componentes.
  2. Rastreabilidade Clínica: Auditar quem acessou qual prontuário e quais transições de estado ocorreram durante um atendimento.
  3. 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.

typescript
// 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.