@owujib/express-observe
v0.0.3
Published
A database-agnostic Observability SDK for Express, with adapters for Mongo, Sequelize, TypeORM, Prisma, and REST.
Downloads
4
Readme
Express Observe
A framework-agnostic observability SDK for Node.js/Express apps that:
Features
# in your project
npm install @observability/sdk express express-handlebars
# plus your ORM packages
npm install mongoose sequelize typeorm @prisma/client
import express from 'express';
import { ObservabilitySDK } from '@owujib/express-observe';
import { mountObservabilityDashboard } from '@owujib/express-observe/sdk/dist/dashboard';
import { PrismaAdapter } from '@owujib/sdk/dist/adapters/prisma';
import { PrismaClient } from '@prisma/client';
const app = express();
app.use(express.json());
// Create DB client (host manages connection)
const prisma = new PrismaClient();
// Create adapter
const adapter = new PrismaAdapter(prisma);
// Create SDK instance
const sdk = new ObservabilitySDK({
appName: 'my-app',
adapter,
ignoreRoutes: ['/health'],
});
// Mount middleware
app.use(sdk.middleware());
app.use(sdk.errorHandler());
// Mount Handlebars dashboard
mountObservabilityDashboard(app, adapter);
// Normal app routes
app.get('/', (req, res) => res.send('Hello World'));
app.get('/error', () => {
throw new Error('Test Error');
});
app.listen(3000, () => console.log('Server running on http://localhost:3000'));