@apisight/node
v1.1.12
Published
Agente oficial do ApiSight para Node.js — monitore erros, requisições e métricas da sua API em tempo real.
Maintainers
Readme
🧠 @apisight/node
Observabilidade e monitoramento de APIs com zero configuração. Capture erros, requisições, métricas e falhas em tempo real. Parte do ecossistema ApiSight.
🚀 Instalação npm install @apisight/node
ou com Yarn:
yarn add @apisight/node
⚙️ Configuração básica
No seu servidor Express, importe e inicialize o agente com a chave JWT gerada no portal ApiSight .
import createAgent from '@apisight/node'; import express from 'express';
const app = express();
// Inicializa o agente const agent = createAgent({ key: 'SEU_JWT_DO_PORTAL' });
// Adiciona o middleware de monitoramento app.use(agent.middleware());
// Adiciona o middleware de captura de erros app.use(agent.errorHandler());
// Exemplo de rota app.get('/ping', (req, res) => { res.send({ message: 'pong' }); });
// Simula um erro app.get('/error', (req, res) => { throw new Error('Falha simulada'); });
app.listen(3000, () => console.log('Servidor rodando na porta 3000 🚀'));
💡 Recursos automáticos
✅ Captura de erros — todos os erros não tratados (exceptions, rejections) ✅ Monitoramento de requests — método, rota, corpo e resposta ✅ Persistência offline — armazena eventos localmente se estiver sem conexão ✅ Retry automático — reenfileira logs quando o servidor estiver offline ✅ Sanitização de dados — remove campos sensíveis (password, token, creditCard) ✅ Métricas embutidas — tempo médio de flush, total de eventos, erros enviados, etc. ✅ Integração transparente — não quebra o fluxo da sua API ✅ Compatível com TypeScript e ESM
🪄 Notificação manual
Você também pode enviar eventos customizados diretamente com agent.notify():
try { // algum código perigoso } catch (err) { agent.notify(err); // envia o erro para o ApiSight }
Se quiser vincular a um request específico:
app.post('/users', async (req, res) => { try { // lógica } catch (err) { agent.notify(err, req); // inclui método, rota e body } });
📊 Métricas em tempo real
Você pode acessar métricas internas do agente para exibir no painel do seu app:
console.log(agent.getMetrics());
Exemplo de retorno:
{ "totalEvents": 42, "errorsSent": 10, "errorsFailed": 2, "avgFlushTimeMs": 120, "flushCount": 5 }
🧱 Estrutura interna
O agente mantém um buffer local (/tmp/agent-buffer.json ou similar), e envia os logs periodicamente para o collector oficial:
https://apisight.vercel.app/api/ingest
Se a API estiver offline, o agente:
salva os eventos em disco;
tenta reenviar automaticamente com exponential backoff;
nunca interrompe o funcionamento da sua aplicação.
🧩 API Método Descrição agent.middleware() Middleware de captura de requisições agent.errorHandler() Middleware de captura de erros agent.notify(error, req?) Envia manualmente um erro agent.getMetrics() Retorna métricas internas agent._flush() Força envio imediato (útil para testes) 🔒 Segurança
A lib não funciona sem chave válida (JWT) gerada no portal ApiSight .
Os dados são enviados apenas para o domínio oficial apisight.vercel.app.
Todos os payloads são sanitizados automaticamente, removendo tokens e informações sensíveis.
🧭 Roadmap
Dashboard de métricas em tempo real
Suporte a gRPC, Fastify e Koa
Integração com React Native e Python SDK
Alertas customizáveis (via e-mail ou webhook)
🧑💻 Autor
Mayko Douglas dos Santos Silva Criador do ApiSight
MIT License © 2025
❤️ Contribuição
Quer contribuir? Envie um PR ou abra uma issue no GitHub oficial (em breve público).
