EMRQDATA / NOVO MÓDULO INDEPENDENTE
Capacity Intelligence API.
Serviço separado do Capacity Operations Center: recebe snapshots de múltiplas instâncias SQL Server, persiste histórico em PostgreSQL e disponibiliza indicadores por API, com opção de envio de métricas ao Dynatrace.
01Ingestão autenticada
02Histórico PostgreSQL
03Push Dynatrace
Arquitetura
SQL Server → PowerShell Collector → HTTPS API → PostgreSQL
└→ /v1/summary
└→ Dynatrace Metrics API v2Endpoints
- GET /health — status do serviço e banco.
- POST /v1/snapshots — ingestão; exige x-api-key.
- GET /v1/summary?days=30 — resumo; exige x-api-key.
- POST /v1/dynatrace/push — envia uso, espaço livre e capacidade; exige x-api-key e token Dynatrace no servidor.
Deploy independente no Render
- Crie PostgreSQL gerenciado e copie DATABASE_URL.
- Crie Web Service com root directory capacity-intelligence-api ou use render.yaml.
- Configure DATABASE_URL, EMRQ_API_KEY, DYNATRACE_ENVIRONMENT_URL e DYNATRACE_API_TOKEN como segredos.
- Use token Dynatrace com escopo metrics.ingest. Nunca exponha o token no navegador ou PowerShell.
- Agende o coletor PowerShell por instância usando conta de menor privilégio.
Coletor
Use collector/Collect-CapacitySnapshot.ps1. Requer módulo SqlServer e permissões de leitura em sys.master_files e sys.dm_os_volume_stats.
Segurança e limites
- API key em header, comparação em tempo constante, limite de payload, validação e CORS restrito.
- Use HTTPS, rotacione chaves, restrinja rede e faça backup/retention do PostgreSQL.
- O coletor envia tamanho provisionado e filesystem; espaço usado internamente no arquivo não é coletado nesta versão.
- O push publica métricas, mas não cria automaticamente regras de alerting no Dynatrace.