Skip to content

Commit

Permalink
count packets received when there was no ICE ping
Browse files Browse the repository at this point in the history
  • Loading branch information
richard-signal committed Feb 1, 2024
1 parent 40043d1 commit 5bf4633
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/apps/relay/prom_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ prom_gauge_t *turn_total_allocations;
prom_counter_t *turn_rtt_client[8];
prom_counter_t *turn_rtt_peer[8];
prom_counter_t *turn_rtt_combined[8];
prom_counter_t *turn_with_no_ping_rcvp;

void start_prometheus_server(void) {
if (turn_params.prometheus == 0) {
Expand Down Expand Up @@ -170,6 +171,9 @@ void start_prometheus_server(void) {
turn_rtt_combined[7] = prom_collector_registry_must_register_metric(
prom_counter_new("turn_rtt_combined_more", "Represents combined round trip time of channel", 0, NULL));

turn_with_no_ping_rcvp = prom_collector_registry_must_register_metric(
prom_counter_new("turn_with_no_ping_rcvp", "Count of packets received for TURN where no ICE ping has been observed", 0, NULL));

promhttp_set_active_collector_registry(NULL);

// some flags appeared first in microhttpd v0.9.53
Expand Down Expand Up @@ -332,6 +336,13 @@ void prom_observe_rtt_combined(int microseconds) {
}
}

void prom_inc_turn_with_no_ping_rcvp(void) {
if (turn_params.prometheus == 1) {
prom_counter_add(turn_with_no_ping_rcvp, 1, NULL);
}
}


#else

void start_prometheus_server(void) {
Expand Down
2 changes: 2 additions & 0 deletions src/apps/relay/prom_server.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ extern prom_gauge_t *turn_total_allocations_number;
extern prom_counter_t *turn_rtt_client[8];
extern prom_counter_t *turn_rtt_peer[8];
extern prom_counter_t *turn_rtt_combined[8];
extern prom_counter_t *turn_with_no_ping_rcvp;

#define TURN_ALLOC_STR_MAX_SIZE (20)

Expand All @@ -83,6 +84,7 @@ void prom_observe_rtt(prom_counter_t *counter[8], int microseconds);
void prom_observe_rtt_client(int microseconds);
void prom_observe_rtt_peer(int microseconds);
void prom_observe_rtt_combined(int microseconds);
void prom_inc_turn_with_no_ping_rcvp(void);

#else

Expand Down
6 changes: 6 additions & 0 deletions src/server/ns_turn_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -2973,6 +2973,12 @@ static void inspect_binds(turn_turnserver *server, ioa_net_data *in_buffer, turn
tinfo->pings[from_client].ts.tv_sec = 0;
}
}
} else {
#if !defined(TURN_NO_PROMETHEUS)
if (tinfo->pings[0].lastrttus == 0 && tinfo->pings[1].lastrttus == 0) {
prom_inc_turn_with_no_ping_rcvp();
}
#endif
}
}

Expand Down

0 comments on commit 5bf4633

Please sign in to comment.