]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/controllers/api/metrics.ts
Handle redis disconnection gracefully (#5599)
[github/Chocobozzz/PeerTube.git] / server / controllers / api / metrics.ts
CommitLineData
fd3c2e87
C
1import express from 'express'
2import { OpenTelemetryMetrics } from '@server/lib/opentelemetry/metrics'
3import { HttpStatusCode, PlaybackMetricCreate } from '@shared/models'
4import { addPlaybackMetricValidator, asyncMiddleware } from '../../middlewares'
e72ace5a 5import { CONFIG } from '@server/initializers/config'
fd3c2e87
C
6
7const metricsRouter = express.Router()
8
9metricsRouter.post('/playback',
10 asyncMiddleware(addPlaybackMetricValidator),
11 addPlaybackMetric
12)
13
14// ---------------------------------------------------------------------------
15
16export {
17 metricsRouter
18}
19
20// ---------------------------------------------------------------------------
21
22function addPlaybackMetric (req: express.Request, res: express.Response) {
e72ace5a 23 if (!CONFIG.OPEN_TELEMETRY.METRICS.ENABLED) {
24 return res.sendStatus(HttpStatusCode.FORBIDDEN_403)
25 }
26
fd3c2e87
C
27 const body: PlaybackMetricCreate = req.body
28
29 OpenTelemetryMetrics.Instance.observePlaybackMetric(res.locals.onlyImmutableVideo, body)
30
31 return res.sendStatus(HttpStatusCode.NO_CONTENT_204)
32}