mirror of
				https://github.com/coturn/coturn.git
				synced 2025-11-04 08:51:00 +01:00 
			
		
		
		
	Refactor to use only one function to set metrics
This commit is contained in:
		
							parent
							
								
									9ed631c495
								
							
						
					
					
						commit
						3e22d7e199
					
				@ -3620,25 +3620,11 @@ void turn_report_session_usage(void *session, int force_invalid)
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
				if(ss->realm_options.name[0]){
 | 
									if(ss->realm_options.name[0]){
 | 
				
			||||||
					prom_set_rcvp(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->received_packets));
 | 
										prom_set_traffic(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->received_packets), (unsigned long)(ss->received_bytes), (unsigned long)(ss->sent_packets), (unsigned long)(ss->sent_bytes), false);
 | 
				
			||||||
					prom_set_rcvb(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->received_bytes));
 | 
										prom_set_traffic(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_received_packets), (unsigned long)(ss->peer_received_bytes), (unsigned long)(ss->peer_sent_packets), (unsigned long)(ss->peer_sent_bytes), true);
 | 
				
			||||||
					prom_set_sentp(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->sent_packets));
 | 
					 | 
				
			||||||
					prom_set_sentb(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->sent_bytes));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
					prom_set_peer_rcvp(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_received_packets));
 | 
					 | 
				
			||||||
					prom_set_peer_rcvb(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_received_bytes));
 | 
					 | 
				
			||||||
					prom_set_peer_sentp(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_sent_packets));
 | 
					 | 
				
			||||||
					prom_set_peer_sentb(ss->realm_options.name, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_sent_bytes));
 | 
					 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					prom_set_rcvp(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->received_packets));
 | 
										prom_set_traffic(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->received_packets), (unsigned long)(ss->received_bytes), (unsigned long)(ss->sent_packets), (unsigned long)(ss->sent_bytes), false);
 | 
				
			||||||
					prom_set_rcvb(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->received_bytes));
 | 
										prom_set_traffic(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_received_packets), (unsigned long)(ss->peer_received_bytes), (unsigned long)(ss->peer_sent_packets), (unsigned long)(ss->peer_sent_bytes), true);
 | 
				
			||||||
					prom_set_sentp(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->sent_packets));
 | 
					 | 
				
			||||||
					prom_set_sentb(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->sent_bytes));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
					prom_set_peer_rcvp(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_received_packets));
 | 
					 | 
				
			||||||
					prom_set_peer_rcvb(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_received_bytes));
 | 
					 | 
				
			||||||
					prom_set_peer_sentp(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_sent_packets));
 | 
					 | 
				
			||||||
					prom_set_peer_sentb(NULL, (const char *)ss->username, (unsigned long long)(ss->id), (unsigned long)(ss->peer_sent_bytes));
 | 
					 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				
 | 
									
 | 
				
			||||||
				ss->t_received_packets += ss->received_packets;
 | 
									ss->t_received_packets += ss->received_packets;
 | 
				
			||||||
 | 
				
			|||||||
@ -3,14 +3,17 @@
 | 
				
			|||||||
int start_prometheus_server(void){
 | 
					int start_prometheus_server(void){
 | 
				
			||||||
  prom_collector_registry_default_init();
 | 
					  prom_collector_registry_default_init();
 | 
				
			||||||
  turn_status = prom_collector_registry_must_register_metric(prom_gauge_new("turn_status", "Represents status", 5, (const char *[]) {"realm", "user", "allocation", "status", "lifetime" }));
 | 
					  turn_status = prom_collector_registry_must_register_metric(prom_gauge_new("turn_status", "Represents status", 5, (const char *[]) {"realm", "user", "allocation", "status", "lifetime" }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  turn_traffic_rcvp = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_rcvp", "Represents received packets", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
					  turn_traffic_rcvp = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_rcvp", "Represents received packets", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
				
			||||||
  turn_traffic_rcvb = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_rcvb", "Represents received bytes", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
					  turn_traffic_rcvb = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_rcvb", "Represents received bytes", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
				
			||||||
  turn_traffic_sentp = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_sentp", "Represents sent packets", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
					  turn_traffic_sentp = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_sentp", "Represents sent packets", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
				
			||||||
  turn_traffic_sentb = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_sentb", "Represents received bytes", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
					  turn_traffic_sentb = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_sentb", "Represents received bytes", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  turn_traffic_peer_rcvp = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_peer_rcvp", "Represents peer received packets", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
					  turn_traffic_peer_rcvp = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_peer_rcvp", "Represents peer received packets", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
				
			||||||
  turn_traffic_peer_rcvb = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_peer_rcvb", "Represents peer received bytes", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
					  turn_traffic_peer_rcvb = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_peer_rcvb", "Represents peer received bytes", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
				
			||||||
  turn_traffic_peer_sentp = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_peer_sentp", "Represents peer sent packets", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
					  turn_traffic_peer_sentp = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_peer_sentp", "Represents peer sent packets", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
				
			||||||
  turn_traffic_peer_sentb = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_peer_sentb", "Represents peer received bytes", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
					  turn_traffic_peer_sentb = prom_collector_registry_must_register_metric(prom_gauge_new("turn_traffic_peer_sentb", "Represents peer received bytes", 3, (const char *[]) {"realm", "user", "allocation" }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  promhttp_set_active_collector_registry(NULL);
 | 
					  promhttp_set_active_collector_registry(NULL);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -39,53 +42,20 @@ void prom_del_status(const char* realm, const char* user, unsigned long long all
 | 
				
			|||||||
  prom_gauge_add(turn_status, 1, (const char *[]) { realm , user, allocation_chars, status, NULL });
 | 
					  prom_gauge_add(turn_status, 1, (const char *[]) { realm , user, allocation_chars, status, NULL });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					void prom_set_traffic(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvp, unsigned long rsvb, unsigned long sentp, unsigned long sentb, bool peer){
 | 
				
			||||||
void prom_set_rcvp(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvp){
 | 
					 | 
				
			||||||
  char allocation_chars[1024];
 | 
					  char allocation_chars[1024];
 | 
				
			||||||
  snprintf(allocation_chars, sizeof(allocation_chars), "%018llu", allocation);
 | 
					  snprintf(allocation_chars, sizeof(allocation_chars), "%018llu", allocation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  prom_gauge_set(turn_traffic_rcvp, rsvp, (const char *[]) { realm , user, allocation_chars });
 | 
					  if (peer){
 | 
				
			||||||
}
 | 
					    prom_gauge_set(turn_traffic_peer_rcvp, rsvp, (const char *[]) { realm , user, allocation_chars });
 | 
				
			||||||
void prom_set_rcvb(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvb){
 | 
					    prom_gauge_set(turn_traffic_peer_rcvb, rsvb, (const char *[]) { realm , user, allocation_chars });
 | 
				
			||||||
  char allocation_chars[1024];
 | 
					    prom_gauge_set(turn_traffic_peer_sentp, sentp, (const char *[]) { realm , user, allocation_chars });
 | 
				
			||||||
  snprintf(allocation_chars, sizeof(allocation_chars), "%018llu", allocation);
 | 
					    prom_gauge_set(turn_traffic_peer_sentb, sentb, (const char *[]) { realm , user, allocation_chars });
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
  prom_gauge_set(turn_traffic_rcvb, rsvb, (const char *[]) { realm , user, allocation_chars });
 | 
					    prom_gauge_set(turn_traffic_rcvp, rsvp, (const char *[]) { realm , user, allocation_chars });
 | 
				
			||||||
}
 | 
					    prom_gauge_set(turn_traffic_rcvb, rsvb, (const char *[]) { realm , user, allocation_chars });
 | 
				
			||||||
void prom_set_sentp(const char* realm, const char* user, unsigned long long allocation, unsigned long sentp){
 | 
					    prom_gauge_set(turn_traffic_sentp, sentp, (const char *[]) { realm , user, allocation_chars });
 | 
				
			||||||
  char allocation_chars[1024];
 | 
					    prom_gauge_set(turn_traffic_sentb, sentb, (const char *[]) { realm , user, allocation_chars });
 | 
				
			||||||
  snprintf(allocation_chars, sizeof(allocation_chars), "%018llu", allocation);
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  prom_gauge_set(turn_traffic_sentp, sentp, (const char *[]) { realm , user, allocation_chars });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
void prom_set_sentb(const char* realm, const char* user, unsigned long long allocation, unsigned long sentb){
 | 
					 | 
				
			||||||
  char allocation_chars[1024];
 | 
					 | 
				
			||||||
  snprintf(allocation_chars, sizeof(allocation_chars), "%018llu", allocation);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  prom_gauge_set(turn_traffic_sentb, sentb, (const char *[]) { realm , user, allocation_chars });
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void prom_set_peer_rcvp(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvp){
 | 
					 | 
				
			||||||
  char allocation_chars[1024];
 | 
					 | 
				
			||||||
  snprintf(allocation_chars, sizeof(allocation_chars), "%018llu", allocation);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  prom_gauge_set(turn_traffic_peer_rcvp, rsvp, (const char *[]) { realm , user, allocation_chars });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
void prom_set_peer_rcvb(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvb){
 | 
					 | 
				
			||||||
  char allocation_chars[1024];
 | 
					 | 
				
			||||||
  snprintf(allocation_chars, sizeof(allocation_chars), "%018llu", allocation);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  prom_gauge_set(turn_traffic_peer_rcvb, rsvb, (const char *[]) { realm , user, allocation_chars });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
void prom_set_peer_sentp(const char* realm, const char* user, unsigned long long allocation, unsigned long sentp){
 | 
					 | 
				
			||||||
  char allocation_chars[1024];
 | 
					 | 
				
			||||||
  snprintf(allocation_chars, sizeof(allocation_chars), "%018llu", allocation);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  prom_gauge_set(turn_traffic_peer_sentp, sentp, (const char *[]) { realm , user, allocation_chars });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
void prom_set_peer_sentb(const char* realm, const char* user, unsigned long long allocation, unsigned long sentb){
 | 
					 | 
				
			||||||
  char allocation_chars[1024];
 | 
					 | 
				
			||||||
  snprintf(allocation_chars, sizeof(allocation_chars), "%018llu", allocation);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  prom_gauge_set(turn_traffic_peer_sentb, sentb, (const char *[]) { realm , user, allocation_chars });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -6,6 +6,7 @@
 | 
				
			|||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <microhttpd.h>
 | 
					#include <microhttpd.h>
 | 
				
			||||||
#include <prom.h>
 | 
					#include <prom.h>
 | 
				
			||||||
@ -14,15 +15,27 @@
 | 
				
			|||||||
#define DEFAULT_PROM_SERVER_PORT (9121)
 | 
					#define DEFAULT_PROM_SERVER_PORT (9121)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
prom_gauge_t *turn_status;
 | 
					prom_gauge_t *turn_status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
prom_gauge_t *turn_traffic_rcvp;
 | 
					prom_gauge_t *turn_traffic_rcvp;
 | 
				
			||||||
prom_gauge_t *turn_traffic_rcvb;
 | 
					prom_gauge_t *turn_traffic_rcvb;
 | 
				
			||||||
prom_gauge_t *turn_traffic_sentp;
 | 
					prom_gauge_t *turn_traffic_sentp;
 | 
				
			||||||
prom_gauge_t *turn_traffic_sentb;
 | 
					prom_gauge_t *turn_traffic_sentb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					prom_gauge_t *turn_total_traffic_rcvp;
 | 
				
			||||||
 | 
					prom_gauge_t *turn_total_traffic_rcvb;
 | 
				
			||||||
 | 
					prom_gauge_t *turn_total_traffic_sentp;
 | 
				
			||||||
 | 
					prom_gauge_t *turn_total_traffic_sentb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
prom_gauge_t *turn_traffic_peer_rcvp;
 | 
					prom_gauge_t *turn_traffic_peer_rcvp;
 | 
				
			||||||
prom_gauge_t *turn_traffic_peer_rcvb;
 | 
					prom_gauge_t *turn_traffic_peer_rcvb;
 | 
				
			||||||
prom_gauge_t *turn_traffic_peer_sentp;
 | 
					prom_gauge_t *turn_traffic_peer_sentp;
 | 
				
			||||||
prom_gauge_t *turn_traffic_peer_sentb;
 | 
					prom_gauge_t *turn_traffic_peer_sentb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					prom_gauge_t *turn_total_traffic_peer_rcvp;
 | 
				
			||||||
 | 
					prom_gauge_t *turn_total_traffic_peer_rcvb;
 | 
				
			||||||
 | 
					prom_gauge_t *turn_total_traffic_peer_sentp;
 | 
				
			||||||
 | 
					prom_gauge_t *turn_total_traffic_peer_sentb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef __cplusplus
 | 
					#ifdef __cplusplus
 | 
				
			||||||
extern "C" {
 | 
					extern "C" {
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
@ -31,15 +44,7 @@ int start_prometheus_server(void);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void prom_set_status(const char* realm, const char* user, unsigned long long allocation, const char* status, unsigned long lifetime);
 | 
					void prom_set_status(const char* realm, const char* user, unsigned long long allocation, const char* status, unsigned long lifetime);
 | 
				
			||||||
void prom_del_status(const char* realm, const char* user, unsigned long long allocation, const char* status);
 | 
					void prom_del_status(const char* realm, const char* user, unsigned long long allocation, const char* status);
 | 
				
			||||||
void prom_set_rcvp(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvp);
 | 
					void prom_set_traffic(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvp, unsigned long rsvb, unsigned long sentp, unsigned long sentb, bool peer);
 | 
				
			||||||
void prom_set_rcvb(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvb);
 | 
					 | 
				
			||||||
void prom_set_sentp(const char* realm, const char* user, unsigned long long allocation, unsigned long sentp);
 | 
					 | 
				
			||||||
void prom_set_sentb(const char* realm, const char* user, unsigned long long allocation, unsigned long sentb);
 | 
					 | 
				
			||||||
void prom_set_peer_rcvp(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvp);
 | 
					 | 
				
			||||||
void prom_set_peer_rcvb(const char* realm, const char* user, unsigned long long allocation, unsigned long rsvb);
 | 
					 | 
				
			||||||
void prom_set_peer_sentp(const char* realm, const char* user, unsigned long long allocation, unsigned long sentp);
 | 
					 | 
				
			||||||
void prom_set_peer_sentb(const char* realm, const char* user, unsigned long long allocation, unsigned long sentb);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef __cplusplus
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user