/** * Prometheus metrics */ import { Registry, Counter, Histogram, Gauge } from 'prom-client'; export const register = new Registry(); // HTTP request metrics export const httpRequestDuration = new Histogram({ name: 'http_request_duration_seconds', help: 'Duration of HTTP requests in seconds', labelNames: ['method', 'route', 'status_code'], registers: [register], }); export const httpRequestTotal = new Counter({ name: 'http_requests_total', help: 'Total number of HTTP requests', labelNames: ['method', 'route', 'status_code'], registers: [register], }); // Database metrics export const dbQueryDuration = new Histogram({ name: 'db_query_duration_seconds', help: 'Duration of database queries in seconds', labelNames: ['query', 'status'], registers: [register], }); export const dbConnectionsActive = new Gauge({ name: 'db_connections_active', help: 'Number of active database connections', registers: [register], }); // Verifiable credentials metrics export const vcIssued = new Counter({ name: 'verifiable_credentials_issued_total', help: 'Total number of verifiable credentials issued', registers: [register], }); /** * Get metrics in Prometheus format */ export async function getMetrics(): Promise { return register.metrics(); }