Database¶
Diagrama ER¶
erDiagram
CLIENTE ||--o{ AMBIENTE : possui
AMBIENTE ||--o{ COLETA : recebe
COLETA ||--|| METRICA_VPS : detalha
COLETA ||--o{ CONTAINER : lista
COLETA ||--o{ METRICA_APP : lista
COLETA ||--o{ METRICA_BANCO : lista
COLETA ||--o{ EVENTO_DDL : registra
COLETA ||--o{ ERRO_BANCO : registra
COLETA ||--o{ SLOW_QUERY : registra
COLETA ||--o{ METRICA_PORTAL : verifica
AMBIENTE ||--o{ DEPLOY : recebe
AMBIENTE ||--o{ ALERTA : gera
COLETA o|--o{ ALERTA : origina
USER o|--o{ ALERTA : reconhece
AMBIENTE o|--o{ URL_MONITOR : monitora
URL_MONITOR ||--o{ UPTIME_CHECK : possui
URL_MONITOR ||--o| SSL_CERTIFICATE : possui
AMBIENTE ||--o{ RELATORIO : consolida
Dicionário de dados¶
| Entidade | Campos persistidos | Relacionamentos e restrições |
|---|---|---|
| Cliente | id bigint; nome varchar(100); contato/e-mail; ativo=true; envio de alertas, tipo/horário; Telegram opcional; status page e slug UNIQUE; criado | raiz dos ambientes |
| Ambiente | id; cliente FK CASCADE; nome; identificador Slug UNIQUE; token UNIQUE gerado automaticamente; ativo; modo_coleta=pull; destinatário; último envio; configuração JSON; status_geral=ok; criado | pertence a Cliente |
| Coleta | id; ambiente FK CASCADE; timestamp; período; recebido_em; payload_raw jsonb | raiz das métricas |
| MetricaVPS | coleta OneToOne CASCADE; disco/RAM/swap/CPU/processos/rede/serviços/erros/alertas JSON; percentuais, load, uptime | detalhe da coleta |
| Container | coleta FK; nome, imagem, status, portas; rodando | lista de containers |
| MetricaApp | coleta FK; nome da app, container, status, porta; total e lista de erros | lista por coleta |
| MetricaBanco | coleta FK; nome, proprietário, tamanho textual e bytes; conexões | lista por coleta |
| EventoDDL, ErroBanco, SlowQuery | coleta FK; operação/objeto/banco/hora ou nível/mensagem ou duração/query | históricos operacionais |
| MetricaPortal | coleta FK; portal; total/método de URLs; total e lista de erros | verificação de portais |
| Deploy | ambiente FK CASCADE; app/versão/descrição; realizado_em; registrado_em | histórico de deploy |
| Alerta | ambiente FK CASCADE; coleta SET_NULL; nível/mensagem; geração; reconhecimento e usuário SET_NULL; notificação | ordenado por geração |
| URLMonitor | ambiente SET_NULL; nome/URL; intervalo 5 min; timeout 10 s; ativo; criado | monitoramento independente |
| UptimeCheck | monitor FK CASCADE; timestamp; status HTTP; resposta; is_up; erro | histórico de uptime |
| SSLCertificate | monitor OneToOne CASCADE; domínio; expiração; dias restantes; emissor; última verificação; alerta | certificado do monitor |
| Relatorio | ambiente FK CASCADE; período; geração; arquivo/envio; contadores | UNIQUE ambiente + período |
| Log | usuário SET_NULL; ação; descrição; criado_em | auditoria do sistema |
O schema não usa um BaseModel comum. Campos opcionais aceitam NULL somente quando explicitamente modelados assim; textos com blank=True normalmente permanecem NOT NULL.