feat: WordPress Monitor API + Site Availability Checker

- Add POST /api/wp-monitor endpoint for WP plugin data
- Add GET /api/wp-monitor for listing monitored sites
- Add checkSiteAvailability() function for HTTP health checks
- Add checkAllSitesAvailability() for batch checking
- Add /api/scripts/check-sites.ts for cron execution
- Add POST /api/monitor/check-sites for manual trigger

DeskCRM Task: #1556

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-04 23:12:32 +00:00
parent 853b2f526e
commit 13608a69bf
10 changed files with 840 additions and 1 deletions

View File

@@ -2,6 +2,56 @@
Todas as alterações notáveis neste projecto serão documentadas neste ficheiro.
## [2.2.0] - 2026-02-04
### Added
-**WordPress Monitor API** - Endpoint para receber dados do plugin WP
- Rota `POST /api/wp-monitor` - Recebe dados de sites WordPress
- Rota `GET /api/wp-monitor` - Lista sites monitorizados
- Rota `GET /api/wp-monitor?test` - Testar conexão
- Autenticação via header `X-API-Key`
-**Site Availability Checker** - Verificação de disponibilidade HTTP
- Função `checkSiteAvailability()` em `/api/services/monitoring.ts`
- Função `checkAllSitesAvailability()` para verificar todos os sites
- Script cron `/api/scripts/check-sites.ts` para verificação periódica
- Rota `POST /api/monitor/check-sites` para trigger manual
### Changed
-`/api/routes/monitor.ts` - Adicionada rota POST para check manual
### Technical Notes
- Script de cron: `npx tsx api/scripts/check-sites.ts`
- Recomendado: executar a cada 10 minutos via cron
- Sites down são marcados com status `down` na BD
- Plugin WP actualizado para usar `dash.descomplicar.pt/api/wp-monitor`
---
## [2.1.0] - 2026-02-04
### Added
-**Hetzner Cloud Monitoring** - Monitorização de VPS Hetzner
- Tabela `tbl_eal_hetzner_servers` - Inventário de servidores
- Tabela `tbl_eal_hetzner_metrics` - Métricas time-series
- View `v_eal_hetzner_latest` - Últimas métricas por servidor
- Serviço `/api/services/hetzner.ts` - Integração API Hetzner Cloud
- Rotas `/api/hetzner/*` para dashboard e collectors
### Endpoints Hetzner
- `GET /api/hetzner` - Dashboard (servidores + últimas métricas)
- `POST /api/hetzner/sync` - Sincronizar lista de servidores
- `POST /api/hetzner/collect` - Recolher métricas de todos os servidores
- `POST /api/hetzner/collect/:id` - Recolher métricas de um servidor
- `GET /api/hetzner/history/:id` - Histórico de métricas (24h default)
- `POST /api/hetzner/cleanup` - Limpar métricas antigas (7 dias default)
### Technical Notes
- Token Hetzner armazenado em `.env` (HETZNER_TOKEN)
- Métricas: CPU%, disk IOPS/bandwidth, network bandwidth/pps
- Retenção de dados: 7 dias (configurável)
- Collector pode ser executado via cron: `curl -X POST localhost:3001/api/hetzner/collect`
## [2.0.1] - 2026-02-04
### Added