Re-instate metadata request as fallback for CLSI

This commit is contained in:
Christopher Hoskin
2020-07-24 09:12:59 +01:00
parent 7630128857
commit 50d2856841
4 changed files with 418 additions and 14 deletions
+32 -1
View File
@@ -1,4 +1,5 @@
const bunyan = require('bunyan')
const request = require('request')
const fs = require('fs')
const yn = require('yn')
const OError = require('@overleaf/o-error')
@@ -41,7 +42,7 @@ const Logger = (module.exports = {
return this
},
checkLogLevel() {
checkLogLevelFile() {
fs.readFile('/logging/tracingEndTime', (error, end) => {
if (error || !end) {
this.logger.level(this.defaultLevel)
@@ -55,6 +56,36 @@ const Logger = (module.exports = {
})
},
checkLogLevelMetadata() {
const options = {
headers: {
'Metadata-Flavor': 'Google'
},
uri: `http://metadata.google.internal/computeMetadata/v1/project/attributes/${this.loggerName}-setLogLevelEndTime`
}
request(options, (err, response, body) => {
if (err) {
this.logger.level(this.defaultLevel)
return
}
if (parseInt(body) > Date.now()) {
this.logger.level('trace')
} else {
this.logger.level(this.defaultLevel)
}
})
},
checkLogLevel() {
fs.access('/logging', (err) => {
if (err) {
this.checkLogLevelMetadata()
} else {
this.checkLogLevelFile()
}
})
},
initializeErrorReporting(sentryDsn, options) {
const raven = require('raven')
this.raven = new raven.Client(sentryDsn, options)