mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #7165 from overleaf/jpa-web-load-shedding-probe
[misc] differentiate between load-shedding and VM cycling events GitOrigin-RevId: a22478bf7f96ac4c73f908777307d4c2b6fb25c2
This commit is contained in:
parent
ac3eb878d6
commit
5a25e6aa1a
1 changed files with 24 additions and 1 deletions
|
@ -100,6 +100,29 @@ module.exports = function (backendGroup) {
|
|||
return cookies != null ? cookies[Settings.clsiCookie.key] : undefined
|
||||
},
|
||||
|
||||
checkIsLoadSheddingEvent(clsiserverid) {
|
||||
request.get(
|
||||
{
|
||||
url: `${Settings.apis.clsi.url}/instance-state`,
|
||||
qs: { clsiserverid },
|
||||
},
|
||||
(err, res, body) => {
|
||||
if (err) {
|
||||
Metrics.inc('clsi-lb-switch-backend', 1, {
|
||||
status: 'error',
|
||||
})
|
||||
logger.warn({ err, clsiserverid }, 'cannot probe clsi VM')
|
||||
return
|
||||
}
|
||||
const isStillRunning =
|
||||
res.statusCode === 200 && body === `${clsiserverid},UP\n`
|
||||
Metrics.inc('clsi-lb-switch-backend', 1, {
|
||||
status: isStillRunning ? 'load-shedding' : 'cycle',
|
||||
})
|
||||
}
|
||||
)
|
||||
},
|
||||
|
||||
setServerId(project_id, user_id, response, previous, callback) {
|
||||
if (callback == null) {
|
||||
callback = function () {}
|
||||
|
@ -120,7 +143,7 @@ module.exports = function (backendGroup) {
|
|||
// Initial assignment of a user+project or after clearing cache.
|
||||
Metrics.inc('clsi-lb-assign-initial-backend')
|
||||
} else {
|
||||
Metrics.inc('clsi-lb-switch-backend')
|
||||
this.checkIsLoadSheddingEvent(previous)
|
||||
}
|
||||
if (rclient_secondary != null) {
|
||||
this._setServerIdInRedis(
|
||||
|
|
Loading…
Reference in a new issue