api-stats-logger
v2.3.9
Published
SDK completo de logging e monitoramento de APIs com nova estrutura de logs organizada, auto-instrumentação, dashboard em tempo real e CLI para configuração automática. Suporta logs estruturados por contexto (HTTP, business, security, system) com campos op
Maintainers
Readme
API Stats Logger
SDK profissional para logging e monitoramento de APIs em Node.js com instrumentação automática.
🚀 Instalação
npm install api-stats-logger⚡ Início Rápido
🔐 Login Persistente (Novo!)
O SDK agora mantém você logado automaticamente entre sessões:
npx api-stats-logger
# Primeira vez: faça login (Google OAuth ou email/senha)
# Próximas vezes: login automático! 🎉Funcionalidades do Login Persistente:
- ✅ Armazenamento seguro no keychain do sistema
- ✅ Modo offline com cache inteligente
- ✅ Sincronização automática quando voltar online
- ✅ Validação contínua de credenciais
- ✅ Migração automática de configurações antigas
Configuração Automática (Recomendado)
npx api-stats-initEste comando irá:
- ✅ Configurar automaticamente o projeto
- ✅ Gerar API key
- ✅ Criar arquivos de configuração
- ✅ Detectar seu framework automaticamente
- ✅ Salvar credenciais para próximas execuções
Configuração Manual
const ApiStatsLogger = require('api-stats-logger');
const logger = new ApiStatsLogger({
apiKey: process.env.API_STATS_API_KEY,
service: 'minha-api',
environment: 'production'
});
// Logging manual
logger.info('Usuário logado', { userId: 123 });
logger.error('Erro no banco', { error: 'timeout' });🔧 Frameworks Suportados
Express.js
const express = require('express');
const ApiStatsLogger = require('api-stats-logger');
const app = express();
const logger = new ApiStatsLogger();
// Middleware automático
app.use(ApiStatsLogger.expressMiddleware({ logger }));
app.listen(3000);NestJS
// Adicione no main.ts
import { ApiStatsLogger } from 'api-stats-logger';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const logger = new ApiStatsLogger();
app.use(ApiStatsLogger.nestMiddleware({ logger }));
await app.listen(3000);
}Fastify & Koa
// Fastify
fastify.register(ApiStatsLogger.fastifyPlugin());
// Koa
app.use(ApiStatsLogger.koaMiddleware());📊 Recursos
- 🚀 Auto-instrumentação - Captura automática de requests/responses
- 📈 Métricas de Performance - Response time, throughput, error rate
- 🔍 Rastreamento Distribuído - Trace IDs para debugging
- 🛡️ Segurança - Headers sensíveis automaticamente filtrados
- 📦 Zero Configuração - Funciona out-of-the-box
- 🔄 Retry Logic - Resiliente a falhas de rede
- 📱 Dashboard - Interface web para visualização
⚙️ Configuração Avançada
const logger = new ApiStatsLogger({
apiKey: process.env.API_STATS_API_KEY,
service: 'minha-api',
environment: 'production',
// Performance
batchSize: 50,
flushInterval: 5000,
maxRetries: 3,
// Recursos
captureErrors: true,
capturePerformance: true,
// Segurança
captureBody: false,
captureHeaders: false
});🔒 Segurança
O SDK automaticamente filtra headers sensíveis:
authorizationcookiex-api-keyx-auth-token
📚 Exemplos
Logging de Operações
async function processPayment(paymentData) {
const operationId = `payment_${Date.now()}`;
logger.info('Payment started', { operationId, amount: paymentData.amount });
try {
const result = await paymentGateway.process(paymentData);
logger.info('Payment completed', { operationId, paymentId: result.id });
return result;
} catch (error) {
logger.error('Payment failed', { operationId, error: error.message });
throw error;
}
}Middlewares Customizados
// Express middleware customizado
app.use(ApiStatsLogger.expressMiddleware({
logger,
captureBody: false,
captureHeaders: false,
skipPaths: ['/health', '/metrics']
}));🔧 Variáveis de Ambiente
# Obrigatório
API_STATS_API_KEY=sua-api-key-aqui
# Opcionais
API_STATS_SERVICE=minha-api
API_STATS_ENVIRONMENT=production
API_STATS_URL=https://api.exemplo.com/logs
API_STATS_ENABLED=true
API_STATS_BATCH_SIZE=20
API_STATS_FLUSH_INTERVAL=5000📈 Métricas Coletadas
- HTTP Requests: Response time, status codes, throughput
- Erros: Stack traces, frequência, categorização
- Performance: Uso de recursos, uptime
- Operações de Negócio: Transações, conversões
🔐 Sistema de Login Persistente
Funcionalidades Avançadas
O SDK v2.3.7+ inclui um sistema robusto de login persistente:
# Primeira execução - fazer login
npx api-stats-logger
# Escolha: Google OAuth, Email/Senha ou API Key
# Próximas execuções - login automático!
npx api-stats-logger
# ✅ Logado automaticamenteArmazenamento Seguro
- 🔐 Keychain do Sistema: Windows Credential Manager, macOS Keychain, Linux Keyring
- 📁 Arquivo Local Seguro: Fallback com permissões restritas (0600)
- 🧹 Limpeza Automática: Credenciais inválidas são removidas automaticamente
Modo Offline
# Trabalhe offline com dados em cache
npx api-stats-logger
# 📦 Usando dados em cache (modo offline)Funcionalidades Offline:
- ✅ Visualizar projetos em cache
- ✅ Configurar projetos existentes
- ✅ Gerar arquivos de configuração
- ❌ Criar novos projetos (requer conexão)
Comandos Úteis
# Demonstrar funcionalidades de login persistente
npm run demo:login
# Teste completo do sistema
npm run demo:full
# Ver estatísticas de cache
npm run demo:stats
# Limpar cache e credenciais
npm run clear:cacheGerenciamento de Credenciais
const SecureStorage = require('api-stats-logger/secure-storage');
const storage = new SecureStorage();
// Verificar se está logado
const credentials = await storage.getCredentials();
console.log('Logado:', !!credentials);
// Limpar credenciais
await storage.clearCredentials();Segurança
- 🔒 Criptografia: Dados sensíveis protegidos pelo keychain do SO
- ⏰ Expiração: Tokens validados automaticamente
- 🚫 Isolamento: Cada usuário tem seus próprios dados
- 🔄 Migração: Credenciais antigas migradas automaticamente
📖 Documentação completa: PERSISTENT_LOGIN.md
🆘 Suporte
- Documentação: GitHub
- Issues: GitHub Issues
- Email: [email protected]
📜 Licença
MIT License - veja LICENSE para detalhes.
Desenvolvido com ❤️ para desenvolvedores Node.js
