From c0bb9dfdcee14870a6a8ae3336a0dde75eb41b7b Mon Sep 17 00:00:00 2001 From: Mathias Jakobsen Date: Thu, 3 Nov 2022 12:46:06 +0000 Subject: [PATCH] Merge pull request #10279 from overleaf/jpa-tracing-optimizations [misc] do not load the tracing module unless enabled GitOrigin-RevId: 8a3b9da3e9451e3060b852dd44e078c99cf43cfa --- libraries/metrics/tracing.js | 34 +++++++++++------------ services/web/app/views/project/editor.pug | 2 ++ services/web/frontend/js/ide.js | 1 - services/web/frontend/{ => js}/tracing.js | 2 +- services/web/webpack.config.js | 1 + 5 files changed, 21 insertions(+), 19 deletions(-) rename services/web/frontend/{ => js}/tracing.js (97%) diff --git a/libraries/metrics/tracing.js b/libraries/metrics/tracing.js index 17b12e9cf3..90f348d28e 100644 --- a/libraries/metrics/tracing.js +++ b/libraries/metrics/tracing.js @@ -1,20 +1,3 @@ -const opentelemetry = require('@opentelemetry/sdk-node') -const { - getNodeAutoInstrumentations, -} = require('@opentelemetry/auto-instrumentations-node') -const { - diag, - DiagConsoleLogger, - DiagLogLevel, - trace, -} = require('@opentelemetry/api') -const { JaegerExporter } = require('@opentelemetry/exporter-jaeger') -const { Resource } = require('@opentelemetry/resources') -const { - SemanticResourceAttributes, -} = require('@opentelemetry/semantic-conventions') -const GCP = require('@google-cloud/opentelemetry-cloud-trace-exporter') - let tracer function tracingEnabled() { @@ -22,6 +5,23 @@ function tracingEnabled() { } function initialize(appName) { + const opentelemetry = require('@opentelemetry/sdk-node') + const { + getNodeAutoInstrumentations, + } = require('@opentelemetry/auto-instrumentations-node') + const { + diag, + DiagConsoleLogger, + DiagLogLevel, + trace, + } = require('@opentelemetry/api') + const { JaegerExporter } = require('@opentelemetry/exporter-jaeger') + const { Resource } = require('@opentelemetry/resources') + const { + SemanticResourceAttributes, + } = require('@opentelemetry/semantic-conventions') + const GCP = require('@google-cloud/opentelemetry-cloud-trace-exporter') + diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.INFO) const resource = new Resource({ diff --git a/services/web/app/views/project/editor.pug b/services/web/app/views/project/editor.pug index fb3f16c394..7f648aba3b 100644 --- a/services/web/app/views/project/editor.pug +++ b/services/web/app/views/project/editor.pug @@ -115,6 +115,8 @@ block append meta include ./editor/meta block foot-scripts + each file in (useOpenTelemetry ? entrypointScripts("tracing") : []) + script(type="text/javascript", nonce=scriptNonce, src=file) script(type="text/javascript", nonce=scriptNonce, src=(wsUrl || '/socket.io') + '/socket.io.js') script(type="text/javascript", nonce=scriptNonce, src=mathJaxPath) each file in entrypointScripts("ide") diff --git a/services/web/frontend/js/ide.js b/services/web/frontend/js/ide.js index d1556af0bb..8b3b84c9f1 100644 --- a/services/web/frontend/js/ide.js +++ b/services/web/frontend/js/ide.js @@ -16,7 +16,6 @@ * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -import '../tracing' import App from './base' import FileTreeManager from './ide/file-tree/FileTreeManager' import LoadingManager from './ide/LoadingManager' diff --git a/services/web/frontend/tracing.js b/services/web/frontend/js/tracing.js similarity index 97% rename from services/web/frontend/tracing.js rename to services/web/frontend/js/tracing.js index 3283b0aec7..fed6d5c91b 100644 --- a/services/web/frontend/tracing.js +++ b/services/web/frontend/js/tracing.js @@ -7,7 +7,7 @@ import { ZoneContextManager } from '@opentelemetry/context-zone' import { registerInstrumentations } from '@opentelemetry/instrumentation' import { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web' -import getMeta from './js/utils/meta' +import getMeta from './utils/meta' if (getMeta('ol-useOpenTelemetry')) { const resource = new Resource({ diff --git a/services/web/webpack.config.js b/services/web/webpack.config.js index 2fcd9c4de0..fb95131688 100644 --- a/services/web/webpack.config.js +++ b/services/web/webpack.config.js @@ -12,6 +12,7 @@ const PackageVersions = require('./app/src/infrastructure/PackageVersions') // Generate a hash of entry points, including modules const entryPoints = { + tracing: './frontend/js/tracing.js', main: './frontend/js/main.js', ide: './frontend/js/ide.js', 'ide-detached': './frontend/js/ide-detached.js',