]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/controllers/api/metrics.ts
Set actor preferred name case insensitive
[github/Chocobozzz/PeerTube.git] / server / controllers / api / metrics.ts
1 import express from 'express'
2 import { OpenTelemetryMetrics } from '@server/lib/opentelemetry/metrics'
3 import { HttpStatusCode, PlaybackMetricCreate } from '@shared/models'
4 import { addPlaybackMetricValidator, asyncMiddleware } from '../../middlewares'
5 import { CONFIG } from '@server/initializers/config'
6
7 const metricsRouter = express.Router()
8
9 metricsRouter.post('/playback',
10 asyncMiddleware(addPlaybackMetricValidator),
11 addPlaybackMetric
12 )
13
14 // ---------------------------------------------------------------------------
15
16 export {
17 metricsRouter
18 }
19
20 // ---------------------------------------------------------------------------
21
22 function addPlaybackMetric (req: express.Request, res: express.Response) {
23 if (!CONFIG.OPEN_TELEMETRY.METRICS.ENABLED) {
24 return res.sendStatus(HttpStatusCode.FORBIDDEN_403)
25 }
26
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 }