Docs · Node.js

Logs en Node.js con alertas, en 5 minutos

Tus console.log, pino o winston con búsqueda, los errores con su stack, el viaje de cada petición y el aviso al teléfono cuando un pedido no termina. Sin cambiar cómo escribes.

  1. 1

    Instala

    npm i @estiaje/sdk
  2. 2

    Tu llave

    Crea tu cuenta y pon la llave en ESTIAJE_TOKEN. O pídele a tu IA «conecta este repo a Estiaje» (el conector). Sin la llave no sale nada por la red: puedes instrumentar hoy.

  3. 3

    Tus logs, tus errores y el hilo de cada petición, al arrancar

    ● Probado en CI
    import { estiajeFromEnv } from '@estiaje/sdk';
    
    export const estiaje = estiajeFromEnv({ service: 'tienda' });
    estiaje.capturarConsola();          // tus console.log, tal cual
    estiaje.capturarErrores();          // los que nadie atrapó
    
    app.use(estiaje.middleware());      // el hilo de cada petición
    // … tus rutas …
    app.use(estiaje.errores());         // al final: los 5xx, con su stack
    // main.ts
    import { estiajeFromEnv } from '@estiaje/sdk';
    
    export const estiaje = estiajeFromEnv({ service: 'tienda' });
    estiaje.capturarConsola();
    estiaje.capturarErrores();
    
    const app = await NestFactory.create(AppModule);
    app.use(estiaje.middleware());      // el hilo de cada petición
    import { estiajeFromEnv } from '@estiaje/sdk';
    
    export const estiaje = estiajeFromEnv({ service: 'tienda' });
    estiaje.capturarConsola();
    estiaje.capturarErrores();
    
    fastify.addHook('onRequest', (req, _reply, done) => {
      estiaje.conHilo(req.headers.traceparent as string | undefined, done);
    });
    // un worker, un cron o una cola
    import { estiajeFromEnv } from '@estiaje/sdk';
    
    export const estiaje = estiajeFromEnv({ service: 'cobros' });
    estiaje.capturarConsola();
    estiaje.capturarErrores();
    
    // con el traceparent del mensaje sigue ese hilo; sin él, empieza uno
    await estiaje.conHilo(mensaje.traceparent, () => procesar(mensaje));
  4. 4

    El proceso que debe terminar

    estiaje.event('pedido.pagado', { order_id, monto });
    // … cuando se surte …
    estiaje.outcome('pedido.surtido', { order_id });
  5. 5

    El aviso

    En el panel, en Procesos: «todo pedido.pagado espera su pedido.surtido, por order_id, en 30 minutos». Si no llega, te avisa al teléfono, por correo o en Slack, con el dinero en riesgo.

Y si quieres más
  • Tus logs de pino o winston: estiaje.destino() como un stream más.
  • Tus servidores: medirServidor() de @estiaje/sdk/servidor: CPU, memoria y disco, con aviso antes de que se llene.
  • Tu base de datos lenta: estiaje.medirConsultas() mide pg y mysql2.
  • Tus despliegues: npx @estiaje/sdk desplegado en tu CI.

Todo lo demás está en la documentación completa.

La guía larga: Logs en Node.js en producción: pino o winston

Crear cuenta, 14 días de Pro Sin tarjeta. En pesos.