Elite NetworkElite SaaS · Docsv0.1
GitHubPainel

Metrics & Health

Endpoints de telemetria — players online, TPS, CPU/RAM, economia agregada e probes de saúde.

GET/elite-saas/health🔒 auth

Healthcheck super rápido. Não toca em adapters nem em DB — só responde para confirmar que o resource está vivo e responde com o tenant correto.

json
{
  "ok": true,
  "tenantId": "elite-city",
  "serverTime": 1716587411,
  "gameTimerMs": 32483004
}

GET/elite-saas/system🔒 auth

Metadados estáticos do servidor: nome configurado, ID interno, lista de resources iniciados, runtime do FX.

json
{
  "tenantId": "elite-city",
  "serverName": "Elite City RP",
  "saasTenantId": "ckxxx",
  "runtime": { "fxVersion": "cerulean", "hostname": "fx-br-01" },
  "resourcesStarted": ["oxmysql", "vrp", "mtg_inventory", "elite_saas_api", "..."]
}

GET/elite-saas/metrics🔒 auth

Snapshot ao vivo. Consultado pelo painel a cada 15s no Overview e KPIs.

200 OK

json
{
  "available": true,
  "tenantId": "elite-city",
  "syncedAt": 1716587411,
  "playersOnline": 42,
  "tpsApprox": 58.4,
  "eventsPerMinute": 1240,
  "cpuPercent": 31.2,
  "ramUsedPercent": 64.0,
  "ramUsedMb": 5120,
  "ramTotalMb": 8000,
  "loadAvg1": null,
  "hostSampleSource": "windows_sidecar",
  "hostError": null,
  "players": [
    { "serverId": 7, "userId": 4823, "name": "João", "ping": 42 },
    { "serverId": 9, "userId": 9012, "name": "Maria", "ping": 87 }
  ],
  "peakPlayersRecord": 64,
  "peakPlayers24h": 58,
  "economyTotalMoney": 184500000,
  "economyDailyPeaks7d": [
    { "day": "2026-05-18", "peak": 180000000 },
    { "day": "2026-05-19", "peak": 181500000 },
    { "day": "2026-05-24", "peak": 184500000 }
  ],
  "httpRequestsPerSecond": 3.2,
  "httpErrorRateLastHour": 0.04
}

Campos-chave

players[].userId
number | nulloptional
ID interno do banco resolvido via vRP.getUserId(source). Pode ser null em momentos onde o source ainda não foi mapeado (early boot do player). Use para abrir perfil direto.
tpsApprox
numberoptional
TPS estimado pelo scheduler interno (não é o tick real do FX — é uma aproximação por amostragem de loops).
hostSampleSource
stringoptional
Origem da amostra de CPU/RAM: linux_proc, windows_wmic, windows_sidecar ou none.
economyDailyPeaks7d
arrayoptional
Picos diários gravados na tabela Config.EconomyDailyPeakTableName. Mais antigo primeiro; até Config.EconomyGraphMaxDays entradas.
Picos vs total agora
economyTotalMoney é o valor atual (SUM de wallet + bank + paypal). economyDailyPeaks7d são os máximos diários gravados periodicamente — bom para tendência.

Como o painel usa

O backend Nest combina /metrics com latência das probes (/health, /system, oxmysql) e gera o snapshot ServerHealth que o frontend consome em React Query com refetch de 15s. As páginas Overview e KPIs usam exatamente o mesmo payload.

Métricas internas (HTTP)

O resource conta requests e erros (status >= 400) para reportar httpRequestsPerSecond e httpErrorRateLastHour. Outros resources podem incrementar o contador de eventos:

lua
exports['elite_saas_api']:RecordEvent(1)  -- soma 1 evento para o EPM
Elite Network — Command Center