feat(metrics): add MetricsService, HttpMetricsInterceptor, and metric constants

- Extract metric names into constants with goodgo_ prefix for business metrics
- Add MetricsService for type-safe metric recording
- Add HttpMetricsInterceptor for automatic request duration/count tracking
- Register interceptor globally via APP_INTERCEPTOR
- Include linter auto-fixes for test files

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-08 22:38:55 +07:00
parent 238c27c47a
commit 944d6262e7
7 changed files with 175 additions and 14 deletions

View File

@@ -0,0 +1,12 @@
// ── Business Metrics (goodgo_ prefix) ──
export const GOODGO_LISTINGS_CREATED_TOTAL = 'goodgo_listings_created_total';
export const GOODGO_PAYMENTS_PROCESSED_TOTAL = 'goodgo_payments_processed_total';
export const GOODGO_ACTIVE_SUBSCRIPTIONS = 'goodgo_active_subscriptions';
export const GOODGO_SEARCH_QUERIES_TOTAL = 'goodgo_search_queries_total';
export const GOODGO_API_REQUEST_DURATION = 'goodgo_api_request_duration_seconds';
// ── Infrastructure Metrics ──
export const HTTP_REQUESTS_TOTAL = 'http_requests_total';
export const DB_QUERY_DURATION = 'db_query_duration_seconds';
export const DB_POOL_ACTIVE_CONNECTIONS = 'db_pool_active_connections';
export const SEARCH_QUERY_DURATION = 'search_query_duration_seconds';