From 99aa623aaf3042974d14db93c83ddd10b782e9c1 Mon Sep 17 00:00:00 2001 From: Daniil Meitis Date: Mon, 21 Jun 2021 17:21:17 +0400 Subject: [PATCH 1/2] Add current allocations number gauge metric --- src/apps/relay/ns_ioalib_engine_impl.c | 7 +++++++ src/apps/relay/prom_server.c | 17 +++++++++++++++++ src/apps/relay/prom_server.h | 5 +++++ 3 files changed, 29 insertions(+) diff --git a/src/apps/relay/ns_ioalib_engine_impl.c b/src/apps/relay/ns_ioalib_engine_impl.c index 4640225..6088528 100644 --- a/src/apps/relay/ns_ioalib_engine_impl.c +++ b/src/apps/relay/ns_ioalib_engine_impl.c @@ -3721,6 +3721,12 @@ void turn_report_allocation_set(void *a, turn_time_t lifetime, int refresh) send_message_to_redis(e->rch, "set", key, "%s lifetime=%lu", status, (unsigned long)lifetime); send_message_to_redis(e->rch, "publish", key, "%s lifetime=%lu", status, (unsigned long)lifetime); } +#endif +#if !defined(TURN_NO_PROMETHEUS) + { + if (!refresh) + prom_inc_allocation(); + } #endif } } @@ -3777,6 +3783,7 @@ void turn_report_allocation_delete(void *a) prom_set_finished_traffic(NULL, (const char*)ss->username, (unsigned long)(ss->t_received_packets), (unsigned long)(ss->t_received_bytes), (unsigned long)(ss->t_sent_packets), (unsigned long)(ss->t_sent_bytes), false); prom_set_finished_traffic(NULL, (const char*)ss->username, (unsigned long)(ss->t_peer_received_packets), (unsigned long)(ss->t_peer_received_bytes), (unsigned long)(ss->t_peer_sent_packets), (unsigned long)(ss->t_peer_sent_bytes), true); } + prom_dec_allocation(); } #endif } diff --git a/src/apps/relay/prom_server.c b/src/apps/relay/prom_server.c index 0bc69ab..880786f 100644 --- a/src/apps/relay/prom_server.c +++ b/src/apps/relay/prom_server.c @@ -24,6 +24,8 @@ prom_counter_t *turn_total_traffic_peer_rcvb; prom_counter_t *turn_total_traffic_peer_sentp; prom_counter_t *turn_total_traffic_peer_sentb; +prom_gauge_t *turn_total_allocations_number; + int start_prometheus_server(void){ if (turn_params.prometheus == 0){ @@ -57,6 +59,9 @@ int start_prometheus_server(void){ turn_total_traffic_peer_sentp = prom_collector_registry_must_register_metric(prom_counter_new("turn_total_traffic_peer_sentp", "Represents total finished sessions peer sent packets", 0, NULL)); turn_total_traffic_peer_sentb = prom_collector_registry_must_register_metric(prom_counter_new("turn_total_traffic_peer_sentb", "Represents total finished sessions peer sent bytes", 0, NULL)); + // Create total allocations number gauge metric + turn_total_allocations_number = prom_collector_registry_must_register_metric(prom_gauge_new("turn_total_allocations_number", "Represents current allocations number", 0, NULL)); + promhttp_set_active_collector_registry(NULL); @@ -96,4 +101,16 @@ void prom_set_finished_traffic(const char* realm, const char* user, unsigned lon } } +void prom_inc_allocation(void) { + if (turn_params.prometheus == 1){ + prom_gauge_inc(turn_total_allocations_number, NULL); + } +} + +void prom_dec_allocation(void) { + if (turn_params.prometheus == 1){ + prom_gauge_dec(turn_total_allocations_number, NULL); + } +} + #endif /* TURN_NO_PROMETHEUS */ diff --git a/src/apps/relay/prom_server.h b/src/apps/relay/prom_server.h index c70473b..9a2b500 100644 --- a/src/apps/relay/prom_server.h +++ b/src/apps/relay/prom_server.h @@ -46,6 +46,8 @@ extern prom_counter_t *turn_total_traffic_peer_rcvb; extern prom_counter_t *turn_total_traffic_peer_sentp; extern prom_counter_t *turn_total_traffic_peer_sentb; +extern prom_gauge_t *turn_total_allocations_number; + #define TURN_ALLOC_STR_MAX_SIZE (20) #ifdef __cplusplus @@ -57,6 +59,9 @@ int start_prometheus_server(void); void prom_set_finished_traffic(const char* realm, const char* user, unsigned long rsvp, unsigned long rsvb, unsigned long sentp, unsigned long sentb, bool peer); +void prom_inc_allocation(void); +void prom_dec_allocation(void); + #endif /* TURN_NO_PROMETHEUS */ #ifdef __cplusplus From ca269fb6910088d3ebd25fb5d001bccd510a1ff0 Mon Sep 17 00:00:00 2001 From: Daniil Meitis Date: Mon, 1 Aug 2022 18:33:15 +0300 Subject: [PATCH 2/2] Rename metric --- src/apps/relay/prom_server.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/apps/relay/prom_server.c b/src/apps/relay/prom_server.c index ec8cb13..1e2b5cc 100644 --- a/src/apps/relay/prom_server.c +++ b/src/apps/relay/prom_server.c @@ -24,7 +24,7 @@ prom_counter_t *turn_total_traffic_peer_rcvb; prom_counter_t *turn_total_traffic_peer_sentp; prom_counter_t *turn_total_traffic_peer_sentb; -prom_gauge_t *turn_total_allocations_number; +prom_gauge_t *turn_total_allocations; int start_prometheus_server(void){ @@ -66,7 +66,7 @@ int start_prometheus_server(void){ turn_total_traffic_peer_sentb = prom_collector_registry_must_register_metric(prom_counter_new("turn_total_traffic_peer_sentb", "Represents total finished sessions peer sent bytes", 0, NULL)); // Create total allocations number gauge metric - turn_total_allocations_number = prom_collector_registry_must_register_metric(prom_gauge_new("turn_total_allocations_number", "Represents current allocations number", 0, NULL)); + turn_total_allocations = prom_collector_registry_must_register_metric(prom_gauge_new("turn_total_allocations", "Represents current allocations number", 0, NULL)); promhttp_set_active_collector_registry(NULL); @@ -112,13 +112,13 @@ void prom_set_finished_traffic(const char* realm, const char* user, unsigned lon void prom_inc_allocation(void) { if (turn_params.prometheus == 1){ - prom_gauge_inc(turn_total_allocations_number, NULL); + prom_gauge_inc(turn_total_allocations, NULL); } } void prom_dec_allocation(void) { if (turn_params.prometheus == 1){ - prom_gauge_dec(turn_total_allocations_number, NULL); + prom_gauge_dec(turn_total_allocations, NULL); } }