@cyrusk/shared-observability
v1.0.9
Published
Observability module for Node.js microservices: logging, tracing, and metrics
Maintainers
Readme
shared-observability
Module Node.js partagé pour l'observabilité des microservices :
- Tracing (OpenTelemetry)
- Metrics (Prometheus via prom-client)
- Logging (Winston)
Installation
Installer via npm :
npm install @cyrusk/shared-observability
Utilisation
const express = require('express');
const {
initTracing,
initLogger,
metricsMiddleware,
exposeMetricsEndpoint
} = require('@cyrusk/shared-observability');
const app = express();
const serviceName = 'regulatory-compliance-service';
// Initialisation tracing et logging
initTracing(serviceName);
const logger = initLogger(serviceName);
// Middleware Prometheus
app.use(metricsMiddleware());
exposeMetricsEndpoint(app);
// Exemple de route
app.get('/health', (req, res) => {
logger.info('Health check passed');
res.send('OK ✅');
});
app.listen(3000, () => {
logger.info(`${serviceName} is running`);
});📚 API
| Méthode | Description |
|------------------------------- |---------------------------------------------------------|
| initTracing(serviceName) | Configure OpenTelemetry SDK avec nom de service |
| initLogger(serviceName) | Crée un logger Winston enrichi avec le contexte |
| metricsMiddleware() | Middleware Express pour collecter les métriques HTTP |
| exposeMetricsEndpoint(app) | Expose /metrics compatible Prometheus |
| getMetrics() | Accès manuel aux compteurs / histogrammes |
✅ Avantages
🌐 Compatible avec Jaeger, Tempo, Datadog (via OTLP exporter)
🧪 Utilisable en local, staging ou production
📦 Léger, modulaire, versionné (semver) via NPM
📁 Peut être intégré dans des shared modules internes ou en standalone
Licence
MIT — libre d’utilisation dans tous vos projets internes
👤 Auteur
Kossi Gotri Mainteneur principal
- GitLab @kossi.gotri
- Scope NPM @cyrusk