]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server.ts
Translated using Weblate (Croatian)
[github/Chocobozzz/PeerTube.git] / server.ts
index 559327f164b7fc5986b0830510e853c31d91b4bc..7ab20643b9e287bc0c8cbc1a87807907dcb439a9 100644 (file)
--- a/server.ts
+++ b/server.ts
@@ -1,4 +1,7 @@
 // ----------- Node modules -----------
+import { registerOpentelemetryTracing } from './server/lib/opentelemetry/tracing'
+registerOpentelemetryTracing()
+
 import express from 'express'
 import morgan, { token } from 'morgan'
 import cors from 'cors'
@@ -47,6 +50,12 @@ checkConfig()
 // Trust our proxy (IP forwarding...)
 app.set('trust proxy', CONFIG.TRUST_PROXY)
 
+app.use((_req, res, next) => {
+  res.locals.requestStart = Date.now()
+
+  return next()
+})
+
 // Security middleware
 import { baseCSP } from './server/middlewares/csp'
 
@@ -125,7 +134,8 @@ import { HttpStatusCode } from './shared/models/http/http-error-codes'
 import { VideosTorrentCache } from '@server/lib/files-cache/videos-torrent-cache'
 import { ServerConfigManager } from '@server/lib/server-config-manager'
 import { VideoViewsManager } from '@server/lib/views/video-views-manager'
-import { isTestInstance } from './server/helpers/core-utils'
+import { isTestOrDevInstance } from './server/helpers/core-utils'
+import { OpenTelemetryMetrics } from '@server/lib/opentelemetry/metrics'
 
 // ----------- Command line -----------
 
@@ -138,7 +148,7 @@ cli
 // ----------- App -----------
 
 // Enable CORS for develop
-if (isTestInstance()) {
+if (isTestOrDevInstance()) {
   app.use(cors({
     origin: '*',
     exposedHeaders: 'Retry-After',
@@ -194,6 +204,10 @@ app.use(cookieParser())
 // W3C DNT Tracking Status
 app.use(advertiseDoNotTrack)
 
+// ----------- Open Telemetry -----------
+
+OpenTelemetryMetrics.Instance.init(app)
+
 // ----------- Views, routes and static files -----------
 
 // API
@@ -297,6 +311,7 @@ async function startApplication () {
   RemoveDanglingResumableUploadsScheduler.Instance.enable()
   VideoViewsBufferScheduler.Instance.enable()
   GeoIPUpdateScheduler.Instance.enable()
+  OpenTelemetryMetrics.Instance.registerMetrics()
 
   Redis.Instance.init()
   PeerTubeSocket.Instance.init(server)