Explorar o código

add metric for open tcp connections

Grant Limberg hai 1 ano
pai
achega
b71e7bd0ab
Modificáronse 3 ficheiros con 7 adicións e 0 borrados
  1. 3 0
      tcp-proxy/Metrics.cpp
  2. 2 0
      tcp-proxy/Metrics.hpp
  3. 2 0
      tcp-proxy/tcp-proxy.cpp

+ 3 - 0
tcp-proxy/Metrics.cpp

@@ -3,6 +3,9 @@
 
 namespace ZeroTier {
     namespace Metrics {
+        prometheus::simpleapi::gauge_metric_t tcp_connections
+        {"tcp_connections", "TCP connections"};
+
         prometheus::simpleapi::counter_metric_t udp_open_failed
         {"udp_open_failed", "UDP open failed"};
 

+ 2 - 0
tcp-proxy/Metrics.hpp

@@ -5,6 +5,8 @@
 
 namespace ZeroTier {
     namespace Metrics {
+        extern prometheus::simpleapi::gauge_metric_t tcp_connections;
+
         extern prometheus::simpleapi::counter_metric_t udp_open_failed;
 
         extern prometheus::simpleapi::counter_metric_t tcp_opened;

+ 2 - 0
tcp-proxy/tcp-proxy.cpp

@@ -191,6 +191,7 @@ struct TcpProxyService
 		*uptrN = (void *)&c;
 		printf("<< TCP from %s -> %.16llx\n",inet_ntoa(reinterpret_cast<const struct sockaddr_in *>(from)->sin_addr),(unsigned long long)&c);
 		Metrics::tcp_opened++;
+		Metrics::tcp_connections++;
 	}
 
 	void phyOnTcpClose(PhySocket *sock,void **uptr)
@@ -293,6 +294,7 @@ struct TcpProxyService
 		for(std::vector<PhySocket *>::iterator s(toClose.begin());s!=toClose.end();++s) {
 			phy->close(*s);
 			Metrics::tcp_closed++;
+			Metrics::tcp_connections--;
 		}
 	}
 };