Răsfoiți Sursa

Merge pull request #6926 from overleaf/jpa-clsi-bump-logger-metrics

[clsi] upgrade logger and metrics module

GitOrigin-RevId: 85c346b5eed683672a77d86d6a434dc313b7824b
Jakob Ackermann 4 ani în urmă
părinte
comite
958216d578

+ 23 - 15
libraries/logger/logging-manager.js

@@ -1,6 +1,5 @@
 const Stream = require('stream')
 const bunyan = require('bunyan')
-const yn = require('yn')
 const GCPManager = require('./gcp-manager')
 const SentryManager = require('./sentry-manager')
 const Serializers = require('./serializers')
@@ -74,20 +73,29 @@ const LoggingManager = {
   },
 
   _getOutputStreamConfig() {
-    const gcpEnabled = yn(process.env.GCP_LOGGING)
-    if (gcpEnabled) {
-      const stream = new Stream.Writable({
-        objectMode: true,
-        write(entry, encoding, callback) {
-          const gcpEntry = GCPManager.convertLogEntry(entry)
-          // eslint-disable-next-line no-console
-          console.log(JSON.stringify(gcpEntry, bunyan.safeCycles()))
-          setImmediate(callback)
-        },
-      })
-      return { level: this.defaultLevel, type: 'raw', stream }
-    } else {
-      return { level: this.defaultLevel, stream: process.stdout }
+    switch (process.env.LOGGING_FORMAT) {
+      case 'gke': {
+        const stream = new Stream.Writable({
+          objectMode: true,
+          write(entry, encoding, callback) {
+            const gcpEntry = GCPManager.convertLogEntry(entry)
+            // eslint-disable-next-line no-console
+            console.log(JSON.stringify(gcpEntry, bunyan.safeCycles()))
+            setImmediate(callback)
+          },
+        })
+        return { level: this.defaultLevel, type: 'raw', stream }
+      }
+      case 'gce': {
+        const { LoggingBunyan } = require('@google-cloud/logging-bunyan')
+        return new LoggingBunyan({
+          logName: this.loggerName,
+          serviceContext: { service: this.loggerName },
+        }).stream(this.defaultLevel)
+      }
+      default: {
+        return { level: this.defaultLevel, stream: process.stdout }
+      }
     }
   },
 

+ 2 - 2
libraries/logger/package.json

@@ -17,11 +17,11 @@
     "test:ci": "npm run test"
   },
   "dependencies": {
+    "@google-cloud/logging-bunyan": "^3.2.0",
     "@overleaf/o-error": "^3.4.0",
     "@sentry/node": "^6.13.2",
     "bunyan": "^1.8.14",
-    "node-fetch": "^2.6.7",
-    "yn": "^4.0.0"
+    "node-fetch": "^2.6.7"
   },
   "devDependencies": {
     "chai": "^4.3.6",

+ 8 - 47
package-lock.json

@@ -79,11 +79,11 @@
       "version": "3.1.1",
       "license": "AGPL-3.0-only",
       "dependencies": {
+        "@google-cloud/logging-bunyan": "^3.2.0",
         "@overleaf/o-error": "^3.4.0",
         "@sentry/node": "^6.13.2",
         "bunyan": "^1.8.14",
-        "node-fetch": "^2.6.7",
-        "yn": "^4.0.0"
+        "node-fetch": "^2.6.7"
       },
       "devDependencies": {
         "chai": "^4.3.6",
@@ -41326,7 +41326,8 @@
     "services/clsi": {
       "name": "@overleaf/clsi",
       "dependencies": {
-        "@overleaf/metrics": "^3.5.1",
+        "@overleaf/logger": "^3.1.0",
+        "@overleaf/metrics": "^4.0.0",
         "@overleaf/o-error": "^3.4.0",
         "@overleaf/settings": "^3.0.0",
         "async": "3.2.0",
@@ -41338,7 +41339,6 @@
         "fs-extra": "^10.0.0",
         "lockfile": "^1.0.4",
         "lodash": "^4.17.21",
-        "logger-sharelatex": "^2.2.0",
         "p-limit": "^3.1.0",
         "pdfjs-dist": "~2.7.570",
         "request": "^2.88.2",
@@ -41386,19 +41386,6 @@
         "node": ">= 0.6"
       }
     },
-    "services/clsi/node_modules/@overleaf/metrics": {
-      "version": "3.5.2",
-      "resolved": "https://registry.npmjs.org/@overleaf/metrics/-/metrics-3.5.2.tgz",
-      "integrity": "sha512-rzYUb9JqyHcjU5tQfPF8AyDsJ7SbTFn71iHj98oRXsNCk8A6QwLjCI+0LUMpaUdSKZINKbujtuHynqzUawNklQ==",
-      "dependencies": {
-        "@google-cloud/debug-agent": "^5.1.2",
-        "@google-cloud/profiler": "^4.1.3",
-        "@google-cloud/trace-agent": "^5.1.1",
-        "compression": "^1.7.4",
-        "prom-client": "^11.1.3",
-        "yn": "^3.1.1"
-      }
-    },
     "services/clsi/node_modules/diff": {
       "version": "4.0.2",
       "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
@@ -41439,14 +41426,6 @@
         "node": ">=8"
       }
     },
-    "services/clsi/node_modules/yn": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
-      "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
     "services/contacts": {
       "name": "@overleaf/contacts",
       "dependencies": {
@@ -48946,7 +48925,8 @@
     "@overleaf/clsi": {
       "version": "file:services/clsi",
       "requires": {
-        "@overleaf/metrics": "^3.5.1",
+        "@overleaf/logger": "^3.1.0",
+        "@overleaf/metrics": "^4.0.0",
         "@overleaf/o-error": "^3.4.0",
         "@overleaf/settings": "^3.0.0",
         "async": "3.2.0",
@@ -48960,7 +48940,6 @@
         "fs-extra": "^10.0.0",
         "lockfile": "^1.0.4",
         "lodash": "^4.17.21",
-        "logger-sharelatex": "^2.2.0",
         "mocha": "^8.4.0",
         "nodemon": "^2.0.7",
         "p-limit": "^3.1.0",
@@ -48974,19 +48953,6 @@
         "workerpool": "^6.1.5"
       },
       "dependencies": {
-        "@overleaf/metrics": {
-          "version": "3.5.2",
-          "resolved": "https://registry.npmjs.org/@overleaf/metrics/-/metrics-3.5.2.tgz",
-          "integrity": "sha512-rzYUb9JqyHcjU5tQfPF8AyDsJ7SbTFn71iHj98oRXsNCk8A6QwLjCI+0LUMpaUdSKZINKbujtuHynqzUawNklQ==",
-          "requires": {
-            "@google-cloud/debug-agent": "^5.1.2",
-            "@google-cloud/profiler": "^4.1.3",
-            "@google-cloud/trace-agent": "^5.1.1",
-            "compression": "^1.7.4",
-            "prom-client": "^11.1.3",
-            "yn": "^3.1.1"
-          }
-        },
         "diff": {
           "version": "4.0.2",
           "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
@@ -49016,11 +48982,6 @@
           "requires": {
             "has-flag": "^4.0.0"
           }
-        },
-        "yn": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
-          "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
         }
       }
     },
@@ -49706,6 +49667,7 @@
     "@overleaf/logger": {
       "version": "file:libraries/logger",
       "requires": {
+        "@google-cloud/logging-bunyan": "^3.2.0",
         "@overleaf/o-error": "^3.4.0",
         "@sentry/node": "^6.13.2",
         "bunyan": "^1.8.14",
@@ -49714,8 +49676,7 @@
         "node-fetch": "^2.6.7",
         "sandboxed-module": "^2.0.4",
         "sinon": "^9.2.4",
-        "sinon-chai": "^3.7.0",
-        "yn": "^4.0.0"
+        "sinon-chai": "^3.7.0"
       }
     },
     "@overleaf/metrics": {

+ 1 - 1
services/clsi/app.js

@@ -11,7 +11,7 @@ Metrics.initialize('clsi')
 const CompileController = require('./app/js/CompileController')
 const ContentController = require('./app/js/ContentController')
 const Settings = require('@overleaf/settings')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 logger.initialize('clsi')
 if ((Settings.sentry != null ? Settings.sentry.dsn : undefined) != null) {
   logger.initializeErrorReporting(Settings.sentry.dsn)

+ 1 - 1
services/clsi/app/js/CommandRunner.js

@@ -7,7 +7,7 @@
  */
 let commandRunnerPath
 const Settings = require('@overleaf/settings')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 
 if ((Settings.clsi != null ? Settings.clsi.dockerRunner : undefined) === true) {
   commandRunnerPath = './DockerRunner'

+ 1 - 1
services/clsi/app/js/CompileController.js

@@ -17,7 +17,7 @@ const CompileManager = require('./CompileManager')
 const Settings = require('@overleaf/settings')
 const Metrics = require('./Metrics')
 const ProjectPersistenceManager = require('./ProjectPersistenceManager')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const Errors = require('./Errors')
 
 function isImageNameAllowed(imageName) {

+ 1 - 1
services/clsi/app/js/CompileManager.js

@@ -4,7 +4,7 @@ const OutputFileFinder = require('./OutputFileFinder')
 const OutputCacheManager = require('./OutputCacheManager')
 const Settings = require('@overleaf/settings')
 const Path = require('path')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const Metrics = require('./Metrics')
 const childProcess = require('child_process')
 const DraftModeManager = require('./DraftModeManager')

+ 1 - 1
services/clsi/app/js/ContentCacheMetrics.js

@@ -1,4 +1,4 @@
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const Metrics = require('./Metrics')
 const os = require('os')
 

+ 1 - 1
services/clsi/app/js/DbQueue.js

@@ -7,7 +7,7 @@
  */
 const async = require('async')
 const Settings = require('@overleaf/settings')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const queue = async.queue(
   (task, cb) => task(cb),
   Settings.parallelSqlQueryLimit

+ 1 - 1
services/clsi/app/js/DockerLockManager.js

@@ -8,7 +8,7 @@
  * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  */
 let LockManager
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 
 const LockState = {} // locks for docker container operations, by container name
 

+ 1 - 1
services/clsi/app/js/DockerRunner.js

@@ -1,5 +1,5 @@
 const Settings = require('@overleaf/settings')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const Docker = require('dockerode')
 const dockerode = new Docker()
 const crypto = require('crypto')

+ 1 - 1
services/clsi/app/js/DraftModeManager.js

@@ -12,7 +12,7 @@
  */
 let DraftModeManager
 const fs = require('fs')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 
 module.exports = DraftModeManager = {
   injectDraftMode(filename, callback) {

+ 1 - 1
services/clsi/app/js/LatexRunner.js

@@ -15,7 +15,7 @@
 let LatexRunner
 const Path = require('path')
 const Settings = require('@overleaf/settings')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const Metrics = require('./Metrics')
 const CommandRunner = require('./CommandRunner')
 const fs = require('fs')

+ 1 - 1
services/clsi/app/js/LocalCommandRunner.js

@@ -15,7 +15,7 @@
 let CommandRunner
 const { spawn } = require('child_process')
 const _ = require('lodash')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 
 logger.info('using standard command runner')
 

+ 1 - 1
services/clsi/app/js/LockManager.js

@@ -12,7 +12,7 @@
  */
 let LockManager
 const Settings = require('@overleaf/settings')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const Lockfile = require('lockfile') // from https://github.com/npm/lockfile
 const Errors = require('./Errors')
 const fs = require('fs')

+ 1 - 1
services/clsi/app/js/OutputCacheManager.js

@@ -16,7 +16,7 @@ const async = require('async')
 const fs = require('fs')
 const fse = require('fs-extra')
 const Path = require('path')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const _ = require('lodash')
 const Settings = require('@overleaf/settings')
 const crypto = require('crypto')

+ 1 - 1
services/clsi/app/js/OutputFileFinder.js

@@ -2,7 +2,7 @@ let OutputFileFinder
 const Path = require('path')
 const _ = require('lodash')
 const { spawn } = require('child_process')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 
 module.exports = OutputFileFinder = {
   findOutputFiles(resources, directory, callback) {

+ 1 - 1
services/clsi/app/js/OutputFileOptimiser.js

@@ -16,7 +16,7 @@ let OutputFileOptimiser
 const fs = require('fs')
 const Path = require('path')
 const { spawn } = require('child_process')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const Metrics = require('./Metrics')
 const _ = require('lodash')
 

+ 1 - 1
services/clsi/app/js/ProjectPersistenceManager.js

@@ -14,7 +14,7 @@ let ProjectPersistenceManager
 const UrlCache = require('./UrlCache')
 const CompileManager = require('./CompileManager')
 const async = require('async')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const oneDay = 24 * 60 * 60 * 1000
 const Settings = require('@overleaf/settings')
 const diskusage = require('diskusage')

+ 1 - 1
services/clsi/app/js/ResourceStateManager.js

@@ -1,6 +1,6 @@
 const Path = require('path')
 const fs = require('fs')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const Errors = require('./Errors')
 const SafeReader = require('./SafeReader')
 

+ 1 - 1
services/clsi/app/js/ResourceWriter.js

@@ -21,7 +21,7 @@ const async = require('async')
 const OutputFileFinder = require('./OutputFileFinder')
 const ResourceStateManager = require('./ResourceStateManager')
 const Metrics = require('./Metrics')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const settings = require('@overleaf/settings')
 
 const parallelFileDownloads = settings.parallelFileDownloads || 1

+ 1 - 1
services/clsi/app/js/SafeReader.js

@@ -13,7 +13,7 @@
  */
 let SafeReader
 const fs = require('fs')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 
 module.exports = SafeReader = {
   // safely read up to size bytes from a file and return result as a

+ 1 - 1
services/clsi/app/js/StaticServerForbidSymlinks.js

@@ -18,7 +18,7 @@ let ForbidSymlinks
 const Path = require('path')
 const fs = require('fs')
 const Settings = require('@overleaf/settings')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 
 module.exports = ForbidSymlinks = function (staticFn, root, options) {
   const expressStatic = staticFn(root, options)

+ 1 - 1
services/clsi/app/js/TikzManager.js

@@ -15,7 +15,7 @@ const fs = require('fs')
 const Path = require('path')
 const ResourceWriter = require('./ResourceWriter')
 const SafeReader = require('./SafeReader')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 
 // for \tikzexternalize or pstool to work the main file needs to match the
 // jobname.  Since we set the -jobname to output, we have to create a

+ 1 - 1
services/clsi/app/js/UrlFetcher.js

@@ -14,7 +14,7 @@
 let UrlFetcher
 const request = require('request').defaults({ jar: false })
 const fs = require('fs')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const settings = require('@overleaf/settings')
 const async = require('async')
 const { URL } = require('url')

+ 2 - 2
services/clsi/package.json

@@ -16,7 +16,8 @@
     "lint:fix": "eslint --fix ."
   },
   "dependencies": {
-    "@overleaf/metrics": "^3.5.1",
+    "@overleaf/logger": "^3.1.0",
+    "@overleaf/metrics": "^4.0.0",
     "@overleaf/o-error": "^3.4.0",
     "@overleaf/settings": "^3.0.0",
     "async": "3.2.0",
@@ -28,7 +29,6 @@
     "fs-extra": "^10.0.0",
     "lockfile": "^1.0.4",
     "lodash": "^4.17.21",
-    "logger-sharelatex": "^2.2.0",
     "p-limit": "^3.1.0",
     "pdfjs-dist": "~2.7.570",
     "request": "^2.88.2",

+ 1 - 1
services/clsi/test/acceptance/js/ExampleDocumentTests.js

@@ -19,7 +19,7 @@ const fs = require('fs')
 const fsExtra = require('fs-extra')
 const ChildProcess = require('child_process')
 const ClsiApp = require('./helpers/ClsiApp')
-const logger = require('logger-sharelatex')
+const logger = require('@overleaf/logger')
 const Path = require('path')
 const fixturePath = path => {
   if (path.slice(0, 3) === 'tmp') {

+ 2 - 2
services/clsi/test/acceptance/js/helpers/ClsiApp.js

@@ -10,8 +10,8 @@
  * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  */
 const app = require('../../../../app')
-require('logger-sharelatex').logger.level('info')
-const logger = require('logger-sharelatex')
+require('@overleaf/logger').logger.level('info')
+const logger = require('@overleaf/logger')
 const Settings = require('@overleaf/settings')
 
 module.exports = {

+ 1 - 1
services/clsi/test/setup.js

@@ -9,7 +9,7 @@ chai.use(sinonChai)
 // Global SandboxedModule settings
 SandboxedModule.configure({
   requires: {
-    'logger-sharelatex': {
+    '@overleaf/logger': {
       debug() {},
       log() {},
       info() {},