Skip to content

Commit ac31e51

Browse files
committed
Fix session flood issue after prometheus metrics are implemented.
Root cause: - prometheus metrics '/metrics/codimd' exported by 3ca0341 are still in 'routes need sessions' section. - prometheus scrapes metrics repeatedly. - new session created every time while prometheus scrapes metrics '/metrics/codimd'. Solution: - move /metrics/codimd from lib/routes.js to lib/metrics.js. - move /metrics/codimd from section 'routes need sessions' of app.js to 'routes without sessions'. Signed-off-by: tarlety <[email protected]>
1 parent 6c4fd14 commit ac31e51

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

app.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ app.use('/', express.static(path.join(__dirname, '/public'), { maxAge: config.st
138138
app.use('/docs', express.static(path.resolve(__dirname, config.docsPath), { maxAge: config.staticCacheTime }))
139139
app.use('/uploads', express.static(path.resolve(__dirname, config.uploadsPath), { maxAge: config.staticCacheTime }))
140140
app.use('/default.md', express.static(path.resolve(__dirname, config.defaultNotePath), { maxAge: config.staticCacheTime }))
141+
app.use(require('./lib/metrics').router)
141142

142143
// session
143144
app.use(session({

lib/metrics.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
'use strict'
2+
3+
const { Router } = require('express')
4+
5+
const { wrap } = require('./utils')
6+
7+
// load controller
8+
const statusController = require('./status')
9+
const appRouter = Router()
10+
11+
// register route
12+
appRouter.get('/status', wrap(statusController.getStatus))
13+
appRouter.get('/metrics/codimd', wrap(statusController.getMetrics))
14+
15+
exports.router = appRouter

lib/routes.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ appRouter.get('/404', errorPageController.errorNotFound)
2727
// get 500 internal error
2828
appRouter.get('/500', errorPageController.errorInternalError)
2929

30-
appRouter.get('/status', wrap(statusController.getStatus))
31-
appRouter.get('/metrics/codimd', wrap(statusController.getMetrics))
3230
appRouter.get('/config', statusController.getConfig)
3331

3432
// register auth module

0 commit comments

Comments
 (0)