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

[clsi] upgrade logger and metrics module

GitOrigin-RevId: 85c346b5eed683672a77d86d6a434dc313b7824b
This commit is contained in:
Jakob Ackermann
2022-03-02 09:02:50 +00:00
committed by Copybot
parent bc4be9ddad
commit 958216d578
29 changed files with 61 additions and 92 deletions
+23 -15
View File
@@ -1,6 +1,5 @@
const Stream = require('stream') const Stream = require('stream')
const bunyan = require('bunyan') const bunyan = require('bunyan')
const yn = require('yn')
const GCPManager = require('./gcp-manager') const GCPManager = require('./gcp-manager')
const SentryManager = require('./sentry-manager') const SentryManager = require('./sentry-manager')
const Serializers = require('./serializers') const Serializers = require('./serializers')
@@ -74,20 +73,29 @@ const LoggingManager = {
}, },
_getOutputStreamConfig() { _getOutputStreamConfig() {
const gcpEnabled = yn(process.env.GCP_LOGGING) switch (process.env.LOGGING_FORMAT) {
if (gcpEnabled) { case 'gke': {
const stream = new Stream.Writable({ const stream = new Stream.Writable({
objectMode: true, objectMode: true,
write(entry, encoding, callback) { write(entry, encoding, callback) {
const gcpEntry = GCPManager.convertLogEntry(entry) const gcpEntry = GCPManager.convertLogEntry(entry)
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.log(JSON.stringify(gcpEntry, bunyan.safeCycles())) console.log(JSON.stringify(gcpEntry, bunyan.safeCycles()))
setImmediate(callback) setImmediate(callback)
}, },
}) })
return { level: this.defaultLevel, type: 'raw', stream } return { level: this.defaultLevel, type: 'raw', stream }
} else { }
return { level: this.defaultLevel, stream: process.stdout } 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
View File
@@ -17,11 +17,11 @@
"test:ci": "npm run test" "test:ci": "npm run test"
}, },
"dependencies": { "dependencies": {
"@google-cloud/logging-bunyan": "^3.2.0",
"@overleaf/o-error": "^3.4.0", "@overleaf/o-error": "^3.4.0",
"@sentry/node": "^6.13.2", "@sentry/node": "^6.13.2",
"bunyan": "^1.8.14", "bunyan": "^1.8.14",
"node-fetch": "^2.6.7", "node-fetch": "^2.6.7"
"yn": "^4.0.0"
}, },
"devDependencies": { "devDependencies": {
"chai": "^4.3.6", "chai": "^4.3.6",
+8 -47
View File
@@ -79,11 +79,11 @@
"version": "3.1.1", "version": "3.1.1",
"license": "AGPL-3.0-only", "license": "AGPL-3.0-only",
"dependencies": { "dependencies": {
"@google-cloud/logging-bunyan": "^3.2.0",
"@overleaf/o-error": "^3.4.0", "@overleaf/o-error": "^3.4.0",
"@sentry/node": "^6.13.2", "@sentry/node": "^6.13.2",
"bunyan": "^1.8.14", "bunyan": "^1.8.14",
"node-fetch": "^2.6.7", "node-fetch": "^2.6.7"
"yn": "^4.0.0"
}, },
"devDependencies": { "devDependencies": {
"chai": "^4.3.6", "chai": "^4.3.6",
@@ -41326,7 +41326,8 @@
"services/clsi": { "services/clsi": {
"name": "@overleaf/clsi", "name": "@overleaf/clsi",
"dependencies": { "dependencies": {
"@overleaf/metrics": "^3.5.1", "@overleaf/logger": "^3.1.0",
"@overleaf/metrics": "^4.0.0",
"@overleaf/o-error": "^3.4.0", "@overleaf/o-error": "^3.4.0",
"@overleaf/settings": "^3.0.0", "@overleaf/settings": "^3.0.0",
"async": "3.2.0", "async": "3.2.0",
@@ -41338,7 +41339,6 @@
"fs-extra": "^10.0.0", "fs-extra": "^10.0.0",
"lockfile": "^1.0.4", "lockfile": "^1.0.4",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"logger-sharelatex": "^2.2.0",
"p-limit": "^3.1.0", "p-limit": "^3.1.0",
"pdfjs-dist": "~2.7.570", "pdfjs-dist": "~2.7.570",
"request": "^2.88.2", "request": "^2.88.2",
@@ -41386,19 +41386,6 @@
"node": ">= 0.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": { "services/clsi/node_modules/diff": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
@@ -41439,14 +41426,6 @@
"node": ">=8" "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": { "services/contacts": {
"name": "@overleaf/contacts", "name": "@overleaf/contacts",
"dependencies": { "dependencies": {
@@ -48946,7 +48925,8 @@
"@overleaf/clsi": { "@overleaf/clsi": {
"version": "file:services/clsi", "version": "file:services/clsi",
"requires": { "requires": {
"@overleaf/metrics": "^3.5.1", "@overleaf/logger": "^3.1.0",
"@overleaf/metrics": "^4.0.0",
"@overleaf/o-error": "^3.4.0", "@overleaf/o-error": "^3.4.0",
"@overleaf/settings": "^3.0.0", "@overleaf/settings": "^3.0.0",
"async": "3.2.0", "async": "3.2.0",
@@ -48960,7 +48940,6 @@
"fs-extra": "^10.0.0", "fs-extra": "^10.0.0",
"lockfile": "^1.0.4", "lockfile": "^1.0.4",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"logger-sharelatex": "^2.2.0",
"mocha": "^8.4.0", "mocha": "^8.4.0",
"nodemon": "^2.0.7", "nodemon": "^2.0.7",
"p-limit": "^3.1.0", "p-limit": "^3.1.0",
@@ -48974,19 +48953,6 @@
"workerpool": "^6.1.5" "workerpool": "^6.1.5"
}, },
"dependencies": { "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": { "diff": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
@@ -49016,11 +48982,6 @@
"requires": { "requires": {
"has-flag": "^4.0.0" "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": { "@overleaf/logger": {
"version": "file:libraries/logger", "version": "file:libraries/logger",
"requires": { "requires": {
"@google-cloud/logging-bunyan": "^3.2.0",
"@overleaf/o-error": "^3.4.0", "@overleaf/o-error": "^3.4.0",
"@sentry/node": "^6.13.2", "@sentry/node": "^6.13.2",
"bunyan": "^1.8.14", "bunyan": "^1.8.14",
@@ -49714,8 +49676,7 @@
"node-fetch": "^2.6.7", "node-fetch": "^2.6.7",
"sandboxed-module": "^2.0.4", "sandboxed-module": "^2.0.4",
"sinon": "^9.2.4", "sinon": "^9.2.4",
"sinon-chai": "^3.7.0", "sinon-chai": "^3.7.0"
"yn": "^4.0.0"
} }
}, },
"@overleaf/metrics": { "@overleaf/metrics": {
+1 -1
View File
@@ -11,7 +11,7 @@ Metrics.initialize('clsi')
const CompileController = require('./app/js/CompileController') const CompileController = require('./app/js/CompileController')
const ContentController = require('./app/js/ContentController') const ContentController = require('./app/js/ContentController')
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
logger.initialize('clsi') logger.initialize('clsi')
if ((Settings.sentry != null ? Settings.sentry.dsn : undefined) != null) { if ((Settings.sentry != null ? Settings.sentry.dsn : undefined) != null) {
logger.initializeErrorReporting(Settings.sentry.dsn) logger.initializeErrorReporting(Settings.sentry.dsn)
+1 -1
View File
@@ -7,7 +7,7 @@
*/ */
let commandRunnerPath let commandRunnerPath
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
if ((Settings.clsi != null ? Settings.clsi.dockerRunner : undefined) === true) { if ((Settings.clsi != null ? Settings.clsi.dockerRunner : undefined) === true) {
commandRunnerPath = './DockerRunner' commandRunnerPath = './DockerRunner'
+1 -1
View File
@@ -17,7 +17,7 @@ const CompileManager = require('./CompileManager')
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const Metrics = require('./Metrics') const Metrics = require('./Metrics')
const ProjectPersistenceManager = require('./ProjectPersistenceManager') const ProjectPersistenceManager = require('./ProjectPersistenceManager')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const Errors = require('./Errors') const Errors = require('./Errors')
function isImageNameAllowed(imageName) { function isImageNameAllowed(imageName) {
+1 -1
View File
@@ -4,7 +4,7 @@ const OutputFileFinder = require('./OutputFileFinder')
const OutputCacheManager = require('./OutputCacheManager') const OutputCacheManager = require('./OutputCacheManager')
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const Path = require('path') const Path = require('path')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const Metrics = require('./Metrics') const Metrics = require('./Metrics')
const childProcess = require('child_process') const childProcess = require('child_process')
const DraftModeManager = require('./DraftModeManager') const DraftModeManager = require('./DraftModeManager')
+1 -1
View File
@@ -1,4 +1,4 @@
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const Metrics = require('./Metrics') const Metrics = require('./Metrics')
const os = require('os') const os = require('os')
+1 -1
View File
@@ -7,7 +7,7 @@
*/ */
const async = require('async') const async = require('async')
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const queue = async.queue( const queue = async.queue(
(task, cb) => task(cb), (task, cb) => task(cb),
Settings.parallelSqlQueryLimit Settings.parallelSqlQueryLimit
+1 -1
View File
@@ -8,7 +8,7 @@
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/ */
let LockManager let LockManager
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const LockState = {} // locks for docker container operations, by container name const LockState = {} // locks for docker container operations, by container name
+1 -1
View File
@@ -1,5 +1,5 @@
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const Docker = require('dockerode') const Docker = require('dockerode')
const dockerode = new Docker() const dockerode = new Docker()
const crypto = require('crypto') const crypto = require('crypto')
+1 -1
View File
@@ -12,7 +12,7 @@
*/ */
let DraftModeManager let DraftModeManager
const fs = require('fs') const fs = require('fs')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
module.exports = DraftModeManager = { module.exports = DraftModeManager = {
injectDraftMode(filename, callback) { injectDraftMode(filename, callback) {
+1 -1
View File
@@ -15,7 +15,7 @@
let LatexRunner let LatexRunner
const Path = require('path') const Path = require('path')
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const Metrics = require('./Metrics') const Metrics = require('./Metrics')
const CommandRunner = require('./CommandRunner') const CommandRunner = require('./CommandRunner')
const fs = require('fs') const fs = require('fs')
+1 -1
View File
@@ -15,7 +15,7 @@
let CommandRunner let CommandRunner
const { spawn } = require('child_process') const { spawn } = require('child_process')
const _ = require('lodash') const _ = require('lodash')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
logger.info('using standard command runner') logger.info('using standard command runner')
+1 -1
View File
@@ -12,7 +12,7 @@
*/ */
let LockManager let LockManager
const Settings = require('@overleaf/settings') 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 Lockfile = require('lockfile') // from https://github.com/npm/lockfile
const Errors = require('./Errors') const Errors = require('./Errors')
const fs = require('fs') const fs = require('fs')
+1 -1
View File
@@ -16,7 +16,7 @@ const async = require('async')
const fs = require('fs') const fs = require('fs')
const fse = require('fs-extra') const fse = require('fs-extra')
const Path = require('path') const Path = require('path')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const _ = require('lodash') const _ = require('lodash')
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const crypto = require('crypto') const crypto = require('crypto')
+1 -1
View File
@@ -2,7 +2,7 @@ let OutputFileFinder
const Path = require('path') const Path = require('path')
const _ = require('lodash') const _ = require('lodash')
const { spawn } = require('child_process') const { spawn } = require('child_process')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
module.exports = OutputFileFinder = { module.exports = OutputFileFinder = {
findOutputFiles(resources, directory, callback) { findOutputFiles(resources, directory, callback) {
+1 -1
View File
@@ -16,7 +16,7 @@ let OutputFileOptimiser
const fs = require('fs') const fs = require('fs')
const Path = require('path') const Path = require('path')
const { spawn } = require('child_process') const { spawn } = require('child_process')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const Metrics = require('./Metrics') const Metrics = require('./Metrics')
const _ = require('lodash') const _ = require('lodash')
@@ -14,7 +14,7 @@ let ProjectPersistenceManager
const UrlCache = require('./UrlCache') const UrlCache = require('./UrlCache')
const CompileManager = require('./CompileManager') const CompileManager = require('./CompileManager')
const async = require('async') const async = require('async')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const oneDay = 24 * 60 * 60 * 1000 const oneDay = 24 * 60 * 60 * 1000
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const diskusage = require('diskusage') const diskusage = require('diskusage')
+1 -1
View File
@@ -1,6 +1,6 @@
const Path = require('path') const Path = require('path')
const fs = require('fs') const fs = require('fs')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const Errors = require('./Errors') const Errors = require('./Errors')
const SafeReader = require('./SafeReader') const SafeReader = require('./SafeReader')
+1 -1
View File
@@ -21,7 +21,7 @@ const async = require('async')
const OutputFileFinder = require('./OutputFileFinder') const OutputFileFinder = require('./OutputFileFinder')
const ResourceStateManager = require('./ResourceStateManager') const ResourceStateManager = require('./ResourceStateManager')
const Metrics = require('./Metrics') const Metrics = require('./Metrics')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const settings = require('@overleaf/settings') const settings = require('@overleaf/settings')
const parallelFileDownloads = settings.parallelFileDownloads || 1 const parallelFileDownloads = settings.parallelFileDownloads || 1
+1 -1
View File
@@ -13,7 +13,7 @@
*/ */
let SafeReader let SafeReader
const fs = require('fs') const fs = require('fs')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
module.exports = SafeReader = { module.exports = SafeReader = {
// safely read up to size bytes from a file and return result as a // safely read up to size bytes from a file and return result as a
@@ -18,7 +18,7 @@ let ForbidSymlinks
const Path = require('path') const Path = require('path')
const fs = require('fs') const fs = require('fs')
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
module.exports = ForbidSymlinks = function (staticFn, root, options) { module.exports = ForbidSymlinks = function (staticFn, root, options) {
const expressStatic = staticFn(root, options) const expressStatic = staticFn(root, options)
+1 -1
View File
@@ -15,7 +15,7 @@ const fs = require('fs')
const Path = require('path') const Path = require('path')
const ResourceWriter = require('./ResourceWriter') const ResourceWriter = require('./ResourceWriter')
const SafeReader = require('./SafeReader') 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 // 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 // jobname. Since we set the -jobname to output, we have to create a
+1 -1
View File
@@ -14,7 +14,7 @@
let UrlFetcher let UrlFetcher
const request = require('request').defaults({ jar: false }) const request = require('request').defaults({ jar: false })
const fs = require('fs') const fs = require('fs')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const settings = require('@overleaf/settings') const settings = require('@overleaf/settings')
const async = require('async') const async = require('async')
const { URL } = require('url') const { URL } = require('url')
+2 -2
View File
@@ -16,7 +16,8 @@
"lint:fix": "eslint --fix ." "lint:fix": "eslint --fix ."
}, },
"dependencies": { "dependencies": {
"@overleaf/metrics": "^3.5.1", "@overleaf/logger": "^3.1.0",
"@overleaf/metrics": "^4.0.0",
"@overleaf/o-error": "^3.4.0", "@overleaf/o-error": "^3.4.0",
"@overleaf/settings": "^3.0.0", "@overleaf/settings": "^3.0.0",
"async": "3.2.0", "async": "3.2.0",
@@ -28,7 +29,6 @@
"fs-extra": "^10.0.0", "fs-extra": "^10.0.0",
"lockfile": "^1.0.4", "lockfile": "^1.0.4",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"logger-sharelatex": "^2.2.0",
"p-limit": "^3.1.0", "p-limit": "^3.1.0",
"pdfjs-dist": "~2.7.570", "pdfjs-dist": "~2.7.570",
"request": "^2.88.2", "request": "^2.88.2",
@@ -19,7 +19,7 @@ const fs = require('fs')
const fsExtra = require('fs-extra') const fsExtra = require('fs-extra')
const ChildProcess = require('child_process') const ChildProcess = require('child_process')
const ClsiApp = require('./helpers/ClsiApp') const ClsiApp = require('./helpers/ClsiApp')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const Path = require('path') const Path = require('path')
const fixturePath = path => { const fixturePath = path => {
if (path.slice(0, 3) === 'tmp') { if (path.slice(0, 3) === 'tmp') {
@@ -10,8 +10,8 @@
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/ */
const app = require('../../../../app') const app = require('../../../../app')
require('logger-sharelatex').logger.level('info') require('@overleaf/logger').logger.level('info')
const logger = require('logger-sharelatex') const logger = require('@overleaf/logger')
const Settings = require('@overleaf/settings') const Settings = require('@overleaf/settings')
module.exports = { module.exports = {
+1 -1
View File
@@ -9,7 +9,7 @@ chai.use(sinonChai)
// Global SandboxedModule settings // Global SandboxedModule settings
SandboxedModule.configure({ SandboxedModule.configure({
requires: { requires: {
'logger-sharelatex': { '@overleaf/logger': {
debug() {}, debug() {},
log() {}, log() {},
info() {}, info() {},