]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Handle redis disconnection gracefully (#5599)
authorkontrollanten <6680299+kontrollanten@users.noreply.github.com>
Tue, 14 Mar 2023 07:50:44 +0000 (08:50 +0100)
committerGitHub <noreply@github.com>
Tue, 14 Mar 2023 07:50:44 +0000 (08:50 +0100)
* feat(server/api/contact): handle redis disconnection

* feat(server/api/metrics): handle metrics disabled

server/controllers/api/metrics.ts
server/controllers/api/server/contact.ts

index 578b023a1d4ef3fe7c0ea24819f6fad9a84d099e..f66173875ffac2629af3680b5af0ba4761fe1466 100644 (file)
@@ -2,6 +2,7 @@ import express from 'express'
 import { OpenTelemetryMetrics } from '@server/lib/opentelemetry/metrics'
 import { HttpStatusCode, PlaybackMetricCreate } from '@shared/models'
 import { addPlaybackMetricValidator, asyncMiddleware } from '../../middlewares'
+import { CONFIG } from '@server/initializers/config'
 
 const metricsRouter = express.Router()
 
@@ -19,6 +20,10 @@ export {
 // ---------------------------------------------------------------------------
 
 function addPlaybackMetric (req: express.Request, res: express.Response) {
+  if (!CONFIG.OPEN_TELEMETRY.METRICS.ENABLED) {
+    return res.sendStatus(HttpStatusCode.FORBIDDEN_403)
+  }
+
   const body: PlaybackMetricCreate = req.body
 
   OpenTelemetryMetrics.Instance.observePlaybackMetric(res.locals.onlyImmutableVideo, body)
index 09ff50f694e41260d83b08145ddfb22c615be03f..56596bea5ea3b504f32976c476e05e7a91683c86 100644 (file)
@@ -1,3 +1,4 @@
+import { logger } from '@server/helpers/logger'
 import express from 'express'
 import { HttpStatusCode } from '../../../../shared/models/http/http-error-codes'
 import { ContactForm } from '../../../../shared/models/server'
@@ -17,7 +18,11 @@ async function contactAdministrator (req: express.Request, res: express.Response
 
   Emailer.Instance.addContactFormJob(data.fromEmail, data.fromName, data.subject, data.body)
 
-  await Redis.Instance.setContactFormIp(req.ip)
+  try {
+    await Redis.Instance.setContactFormIp(req.ip)
+  } catch (err) {
+    logger.error(err)
+  }
 
   return res.status(HttpStatusCode.NO_CONTENT_204).end()
 }