From 19495b2d1d2bd6ab1e2898f8c5c253e09f346386 Mon Sep 17 00:00:00 2001 From: Lionel Nicolas Date: Fri, 22 Oct 2021 19:47:49 -0400 Subject: [PATCH] Add ability to configure prometheus listener port --- README.turnserver | 2 ++ man/man1/turnserver.1 | 4 ++++ src/apps/relay/mainrelay.c | 7 +++++++ src/apps/relay/mainrelay.h | 3 ++- src/apps/relay/prom_server.c | 2 +- 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.turnserver b/README.turnserver index 75a7f9d..b4d6399 100644 --- a/README.turnserver +++ b/README.turnserver @@ -286,6 +286,8 @@ Flags: disabled. Would listen on port 9641 under the path /metrics also the path / on this port can be used as a health check +--prometheus-port Prometheus listener port (Default: 9641). + -h Help. Options with values: diff --git a/man/man1/turnserver.1 b/man/man1/turnserver.1 index f300d52..d0bfd98 100644 --- a/man/man1/turnserver.1 +++ b/man/man1/turnserver.1 @@ -428,6 +428,10 @@ initially used by the session). Enable prometheus metrics. By default it is disabled. Would listen on port 9641 under the path /metrics also the path / on this port can be used as a health check +.TP +.B +\fB\-\-prometheus\-port\fP +Prometheus listener port (Default: 9641). .RE .TP .B diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index ec820ab..35f1c66 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -173,6 +173,7 @@ TURN_CREDENTIALS_NONE, /* ct */ 0, /* user_quota */ #if !defined(TURN_NO_PROMETHEUS) 0, /* prometheus disabled by default */ +DEFAULT_PROM_SERVER_PORT, /* prometheus port */ #endif ///////////// Users DB ////////////// { (TURN_USERDB_TYPE)0, {"\0"}, {0,NULL, {NULL,0}} }, @@ -559,6 +560,7 @@ static char Usage[] = "Usage: turnserver [options]\n" #if !defined(TURN_NO_PROMETHEUS) " --prometheus Enable prometheus metrics. It is disabled by default. If it is enabled it will listen on port 9641 under the path /metrics\n" " also the path / on this port can be used as a health check\n" +" --prometheus-port Prometheus metrics port (Default: 9641).\n" #endif " --use-auth-secret TURN REST API flag.\n" " Flag that sets a special authorization option that is based upon authentication secret\n" @@ -787,6 +789,7 @@ enum EXTRA_OPTS { CHANNEL_LIFETIME_OPT, PERMISSION_LIFETIME_OPT, PROMETHEUS_OPT, + PROMETHEUS_PORT_OPT, AUTH_SECRET_OPT, NO_AUTH_PINGS_OPT, NO_DYNAMIC_IP_LIST_OPT, @@ -902,6 +905,7 @@ static const struct myoption long_options[] = { #endif #if !defined(TURN_NO_PROMETHEUS) { "prometheus", optional_argument, NULL, PROMETHEUS_OPT }, + { "prometheus-port", optional_argument, NULL, PROMETHEUS_PORT_OPT }, #endif { "use-auth-secret", optional_argument, NULL, AUTH_SECRET_OPT }, { "static-auth-secret", required_argument, NULL, STATIC_AUTH_SECRET_VAL_OPT }, @@ -1534,6 +1538,9 @@ static void set_option(int c, char *value) case PROMETHEUS_OPT: turn_params.prometheus = 1; break; + case PROMETHEUS_PORT_OPT: + turn_params.prometheus_port = atoi(value); + break; #endif case AUTH_SECRET_OPT: turn_params.use_auth_secret_with_timestamp = 1; diff --git a/src/apps/relay/mainrelay.h b/src/apps/relay/mainrelay.h index 2e70387..3249718 100644 --- a/src/apps/relay/mainrelay.h +++ b/src/apps/relay/mainrelay.h @@ -318,7 +318,8 @@ typedef struct _turn_params_ { vint total_quota; vint user_quota; #if !defined(TURN_NO_PROMETHEUS) - int prometheus; + int prometheus; + int prometheus_port; #endif diff --git a/src/apps/relay/prom_server.c b/src/apps/relay/prom_server.c index 0a9d5bc..9d77f0c 100644 --- a/src/apps/relay/prom_server.c +++ b/src/apps/relay/prom_server.c @@ -60,7 +60,7 @@ int start_prometheus_server(void){ promhttp_set_active_collector_registry(NULL); - struct MHD_Daemon *daemon = promhttp_start_daemon(MHD_USE_SELECT_INTERNALLY, DEFAULT_PROM_SERVER_PORT, NULL, NULL); + struct MHD_Daemon *daemon = promhttp_start_daemon(MHD_USE_SELECT_INTERNALLY, turn_params.prometheus_port, NULL, NULL); if (daemon == NULL) { return -1; }