]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Add configuration for prometheus exporter hostname
authorChocobozzz <me@florianbigard.com>
Tue, 15 Nov 2022 12:56:04 +0000 (13:56 +0100)
committerChocobozzz <me@florianbigard.com>
Tue, 15 Nov 2022 12:56:04 +0000 (13:56 +0100)
config/default.yaml
config/production.yaml.example
server/initializers/checker-before-init.ts
server/initializers/config.ts
server/lib/opentelemetry/metrics.ts

index a916b1dc3e886f61b91f3e6731fb1e909dc4ffdb..19e2fcf3a9aadf88802494648b19133550fa824f 100644 (file)
@@ -209,13 +209,15 @@ log:
   # Accept warn/error logs coming from the client
   accept_client_log: true
 
-# Highly experimental support of Open Telemetry
+# Support of Open Telemetry metrics and tracing
+# For more information: https://docs.joinpeertube.org/maintain-observability
 open_telemetry:
   metrics:
     enabled: false
 
     # Create a prometheus exporter server on this port so prometheus server can scrape PeerTube metrics
     prometheus_exporter:
+      hostname: '127.0.0.1'
       port: 9091
 
   tracing:
index 100bc79482de6d8a8b6c554075ef21e6c48de429..da067b3b55828ba96369883a0ab1e6d731fc89d8 100644 (file)
@@ -207,13 +207,15 @@ log:
   # Accept warn/error logs coming from the client
   accept_client_log: true
 
-# Highly experimental support of Open Telemetry
+# Support of Open Telemetry metrics and tracing
+# For more information: https://docs.joinpeertube.org/maintain-observability
 open_telemetry:
   metrics:
     enabled: false
 
     # Create a prometheus exporter server on this port so prometheus server can scrape PeerTube metrics
     prometheus_exporter:
+      hostname: '127.0.0.1'
       port: 9091
 
   tracing:
index 42be7ee6e929303f9bbf6014b38d613113a3a865..39713a26678692035b653239dddae1627dfbfd74 100644 (file)
@@ -18,7 +18,10 @@ function checkMissedConfig () {
     'email.body.signature', 'email.subject.prefix',
     'storage.avatars', 'storage.videos', 'storage.logs', 'storage.previews', 'storage.thumbnails', 'storage.torrents', 'storage.cache',
     'storage.redundancy', 'storage.tmp', 'storage.streaming_playlists', 'storage.plugins', 'storage.well_known',
-    'log.level',
+    'log.level', 'log.rotation.enabled', 'log.rotation.max_file_size', 'log.rotation.max_files', 'log.anonymize_ip',
+    'log.log_ping_requests', 'log.log_tracker_unknown_infohash', 'log.prettify_sql', 'log.accept_client_log',
+    'open_telemetry.metrics.enabled', 'open_telemetry.metrics.prometheus_exporter.hostname',
+    'open_telemetry.metrics.prometheus_exporter.port', 'open_telemetry.tracing.enabled', 'open_telemetry.tracing.jaeger_exporter.endpoint',
     'user.video_quota', 'user.video_quota_daily',
     'video_channels.max_per_user',
     'csp.enabled', 'csp.report_only', 'csp.report_uri',
index 3dd1f6971e39dc12e09802aa1680af9d96cf17d4..c2f8b19fd60278cf579e54f5680933f33348e5d2 100644 (file)
@@ -190,6 +190,7 @@ const CONFIG = {
       ENABLED: config.get<boolean>('open_telemetry.metrics.enabled'),
 
       PROMETHEUS_EXPORTER: {
+        HOSTNAME: config.get<string>('open_telemetry.metrics.prometheus_exporter.hostname'),
         PORT: config.get<number>('open_telemetry.metrics.prometheus_exporter.port')
       }
     },
index fc1666604e82bfdb0ad6c9856f0ea4df79b290cd..226d514c0634c468569106d81c0325026717d992 100644 (file)
@@ -1,5 +1,5 @@
 import { Application, Request, Response } from 'express'
-import { Meter, metrics } from '@opentelemetry/api-metrics'
+import { Meter, metrics } from '@opentelemetry/api'
 import { PrometheusExporter } from '@opentelemetry/exporter-prometheus'
 import { MeterProvider } from '@opentelemetry/sdk-metrics'
 import { logger } from '@server/helpers/logger'
@@ -52,7 +52,10 @@ class OpenTelemetryMetrics {
       ]
     })
 
-    provider.addMetricReader(new PrometheusExporter({ port: CONFIG.OPEN_TELEMETRY.METRICS.PROMETHEUS_EXPORTER.PORT }))
+    provider.addMetricReader(new PrometheusExporter({
+      host: CONFIG.OPEN_TELEMETRY.METRICS.PROMETHEUS_EXPORTER.HOSTNAME,
+      port: CONFIG.OPEN_TELEMETRY.METRICS.PROMETHEUS_EXPORTER.PORT
+    }))
 
     metrics.setGlobalMeterProvider(provider)