- Add Legal Office of the Master seal (SVG design with Maltese Cross, scales of justice, legal scroll) - Create legal-office-manifest-template.json for Legal Office credentials - Update SEAL_MAPPING.md and DESIGN_GUIDE.md with Legal Office seal documentation - Complete Azure CDN infrastructure deployment: - Resource group, storage account, and container created - 17 PNG seal files uploaded to Azure Blob Storage - All manifest templates updated with Azure URLs - Configuration files generated (azure-cdn-config.env) - Add comprehensive Azure CDN setup scripts and documentation - Fix manifest URL generation to prevent double slashes - Verify all seals accessible via HTTPS
52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
/**
|
|
* 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<string> {
|
|
return register.metrics();
|
|
}
|
|
|