From f5c0aadbe4d10a905057cdfc90880b746c0d45d8 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Thu, 27 Aug 2020 16:36:12 +0200 Subject: [PATCH] feat(backend-common): make metrics configurable --- .../backend-common/src/service/lib/ServiceBuilderImpl.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts index e3d48bbabc..df69387e40 100644 --- a/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts +++ b/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts @@ -49,6 +49,7 @@ export class ServiceBuilderImpl implements ServiceBuilder { private logger: Logger | undefined; private corsOptions: cors.CorsOptions | undefined; private httpsSettings: HttpsSettings | undefined; + private enableMetrics: boolean = true; private routers: [string, Router][]; // Reference to the module where builder is created - needed for hot module // reloading @@ -83,6 +84,9 @@ export class ServiceBuilderImpl implements ServiceBuilder { this.httpsSettings = httpsSettings; } + // For now, configuration of metrics is a simple boolean and active by default + this.enableMetrics = backendConfig.getOptionalBoolean('metrics') !== false; + return this; } @@ -132,7 +136,9 @@ export class ServiceBuilderImpl implements ServiceBuilder { } app.use(compression()); app.use(express.json()); - app.use(metricsHandler()); + if (this.enableMetrics) { + app.use(metricsHandler()); + } app.use(requestLoggingHandler()); for (const [root, route] of this.routers) { app.use(root, route);