# FG Tracker > APM (Application Performance Monitoring) da FortGround/Stread para backends Node.js: latência p50/p95/p99 por endpoint, traces distribuídos em waterfall, detecção automática de N+1 e loops, issues agrupadas por causa com impacto por usuário, releases com commits suspeitos, monitores de uptime e jobs, provedores externos, logs centralizados, alertas por e-mail e WhatsApp, IA Insights e servidor MCP para agentes de código. Instrumentação em três linhas com o pacote `fg-tracker-sdk`. ## Páginas - [Início](https://track-site.fortground.com.br/): o que é, como funciona, vídeos, recursos, integração, MCP e FAQ. - [Privacidade](https://track-site.fortground.com.br/privacidade/): o que é coletado, retenção e acesso. - [Painel](https://track.fortground.com.br/): login do produto. ## Fatos - SDK: `fg-tracker-sdk`, Node >= 20. Suporta Express, NestJS (platform-express), Next.js App Router (runtime Node), `pg.Pool`, `fetch` (com propagação `traceparent`), spans manuais, `setUser`, `captureException`, check-ins de jobs (`tracker.checkIn`) e registro de releases (`fg-tracker-release`). Logs via pino, winston e Nest logger. - Integração Express: `const tracker = createTracker({ apiKey, serviceName, release }); app.use(tracker.express());`. Para pg: `tracker.instrumentPg(pool)`. Para Next.js: `export const GET = tracker.wrapNextRoute(handler)`. - Ingestão: `POST /v1/ingest` com header `x-fg-tracker-key: stk_...`, lotes a cada 2 s ou 200 spans. Qualquer linguagem pode enviar o JSON do contrato. - Detectores por trace: N+1 (>= 10 spans db.query iguais sob o mesmo pai), LOOP (http.client/custom repetidos), SLOW_ENDPOINT (> 1000 ms), ERROR (5xx ou exceção, inclusive em spans filhos tratados). Issues têm fingerprint por assinatura do erro (nome + mensagem normalizada + arquivo culpado), contagem, usuários afetados, primeira/última release e regressões. - Releases: `POST /v1/releases` registra deploys com commits e arquivos alterados; o painel compara erro/p95 por endpoint entre versões e aponta commits/PRs suspeitos cruzando o stack trace com o diff. - Monitores: uptime HTTP checado a cada minuto e check-ins de jobs (`GET /v1/monitors/:slug/ping?status=ok`); alerta `monitor_down` quando cai ou não roda. - Alertas: request_spike, error_rate, status_5xx_burst, p95_regression, slow_query_onset, timeouts, critical_issue, monitor_down. Canais e-mail (Resend) e WhatsApp (Cloud API), cooldown 30 min por fingerprint. - Logs: `POST /v1/logs`, busca por texto, frase, `key=value` e `~trigram`, filtros por serviço/ambiente/trace/request e intervalo absoluto, retenção 7 dias, tail ao vivo. - Histórico por rota: rollups horários guardados por até 400 dias para comparar média/p95 entre janelas e releases. - IA Insights: responde perguntas, diagnostica traces e explica issues usando só metadados de spans via tools. - MCP: `npx -y fg-tracker-mcp` com tools track_status, track_list_projects, track_create_project, track_get_overview, track_list_endpoints, track_list_issues, track_get_issue, track_get_trace, track_search_logs, track_list_releases, track_register_release, track_endpoint_history, track_list_providers, track_list_monitors, track_instrumentation_guide, track_verify_ingest e o prompt `instrument-project`. - Uso: ferramenta interna da FortGround/Stread, sem plano público. Retenção padrão: spans 14 dias, logs 7 dias, rollups 400 dias.