O Projeto Atlas evolui para o Grafana. Com a camada Silver estabilizada e os modelos Gold expostos, a LogiTrack precisa transformar dados em decisões operacionais. A diretoria exige um painel único que responda a três perguntas: “onde estão os caminhões agora?”, “qual carga corre risco térmico?” e “qual rota está comprometendo a integridade da mercadoria?”. O estudo desta semana aborda o desenho do primeiro dashboard no Grafana, do levantamento de requisitos à validação com usuários reais.

A sessão de descoberta reúne Juliana (dados), Carlos (operações), Renata (qualidade) e Mauro (manutenção). Carlos pede um mapa em tempo real com status por veículo e semáforo de risco: verde, amarelo e vermelho. Renata solicita métricas térmicas em janelas de 5 minutos — temp_max, tempo_acima_limite e histórico clicável. Mauro quer um painel de vibração p95 por trecho, para detectar trechos que aceleram desgaste. Marina (software) define restrições: dados devem vir da camada Gold, refresh de 60 segundos e controle de acesso por papel.

Juliana projeta as fontes de dados no Grafana:

Regras visuais: vermelho se temp_max > 8°C por mais de 10 minutos, amarelo entre 2–8°C com tendência de alta, verde fora de risco. Vibração crítica quando p95 do trecho excede 2 desvios do histórico.

No Grafana, Pedro provisiona a fonte ClickHouse e cria folders por área: Operações, Qualidade, Manutenção e Diretoria. Permissões são aplicadas no nível de pasta. Juliana constrói o dashboard Operacional com:

  1. Mapa da Frota via plugin Geomap, tooltip com device_id, rota e tempo da leitura.

  2. Painel Térmico com cartões de temp_max e tempo_acima_limite coloridos dinamicamente via thresholds.

  3. Integridade de Trechos com gráfico de barras de vibracao_p95 e marcadores de evento.

    Filtros globais controlam período, rota e tipo de carga. Um clique em card vermelho abre a Ficha do Veículo, um dashboard drilldown com consultas SQL parametrizadas listando leituras normalizadas, origem (MQTT/HTTP-backfill) e flags de qualidade (suspect, late_data).

O primeiro teste identifica falhas. Três veículos aparecem sem dados. A causa: join incorreto na visão de localização. Marina aplica ROW_NUMBER() OVER (PARTITION BY device_id ORDER BY event_time DESC) = 1 e o mapa estabiliza. Outro erro: filtro usava created_at em vez de event_time. Após correção, o tempo de referência se alinha. A atualização de 15 s sobrecarregava o servidor; a cadência é ajustada para 60 s no operacional e 5 min no executivo, com query caching configurado no Grafana e TTL coerente.

Durante a validação, surgem refinamentos. Carlos quer alertas rastreáveis — cada mudança de estado deve mostrar o instante e a causa. Juliana adiciona um panel repeat com timeline de leituras e gatilhos. Renata pede selo visível “Dados de Gold — atualização hh:mm:ss” para transparência. Mauro solicita campo de anotações nos gráficos de vibração para registrar trocas e manutenções; é criada a tabela dim_evento_operacional integrada ao painel.

Critérios de aceite do dashboard:

  1. Mudança de estado térmico refletida em ≤60 s (p95).
  2. Drilldown exibe todas as leituras do intervalo.
  3. Nenhuma consulta acessa Silver.
  4. Painel executivo carrega em ≤3 s p95 para 30 dias de dados.
  5. Nenhum ponto fantasma (última leitura <2 min).

Métricas de observabilidade são incluídas: latência de query, acerto de cache, taxa de erro SQL e discrepância Gold vs Silver monitoradas pelo Grafana Loki + Prometheus.