Skip to content

SDK Node.js

This content is not available in your language yet.

Le SDK Pionne pour Node.js. Auto-capture les uncaughtException et unhandledRejection, enrichit chaque event avec le contexte runtime (Node version, OS, hostname, PID, mémoire).

Version actuelle : 0.1.0

Fenêtre de terminal
npm install @pionne/node
index.ts
import { Pionne } from '@pionne/node';
Pionne.init({
token: 'pio_live_…',
release: '1.0.0',
environment: 'production',
});
  • process.on('uncaughtException') — exceptions sync non capturées
  • process.on('unhandledRejection') — promises rejetées sans .catch()
  • process.version — version Node
  • os.platform(), os.release() — OS et release
  • os.hostname() — nom de la machine
  • process.pid — PID
  • process.memoryUsage() — RSS, heap used, heap total
  • console.log / console.warn / console.error
  • Requêtes HTTP sortantes via http/https (instrumentation de request)
Pionne.init(options);
Pionne.captureException(error, { tags, contexts });
Pionne.captureMessage('Cache miss', { level: 'info' });
Pionne.setUser({ id: 'user_42' });
Pionne.setTags({ region: 'eu-west-1' });
Pionne.setEnabled(false);
Pionne.addBreadcrumb({ category: 'db', message: 'SELECT * FROM users' });
import express from 'express';
import { Pionne } from '@pionne/node';
Pionne.init({ token: 'pio_live_…' });
const app = express();
// ... tes routes ...
// Le middleware d'erreur DOIT être enregistré en dernier
app.use(Pionne.expressErrorHandler());
app.listen(3000);

Pour BullMQ, Bee-Queue, Agenda, Worker Threads ou tout job runner, wrap chaque handler dans un try/catch :

worker.on('failed', (job, err) => {
Pionne.captureException(err, {
tags: { job: job.name },
contexts: { job: { id: job.id, data: job.data } },
});
});

Le hostname (os.hostname()) est auto-pinné côté serveur au premier event. Si ton token fuite et qu’il est utilisé depuis un autre serveur, les events sont rejetés.