Browse Source

record traffic in mb

Abhishek Kondur 2 years ago
parent
commit
7c374d9763
3 changed files with 11 additions and 12 deletions
  1. 2 2
      nm-proxy/metrics/metrics.go
  2. 1 1
      nm-proxy/proxy/proxy_helper.go
  3. 8 9
      nm-proxy/server/server.go

+ 2 - 2
nm-proxy/metrics/metrics.go

@@ -15,8 +15,8 @@ import (
 type Metric struct {
 	LastRecordedLatency uint64
 	ConnectionStatus    bool
-	TrafficSent         uint64
-	TrafficRecieved     uint64
+	TrafficSent         float64
+	TrafficRecieved     float64
 }
 
 type MetricsPayload struct {

+ 1 - 1
nm-proxy/proxy/proxy_helper.go

@@ -53,7 +53,7 @@ func (p *Proxy) proxyToRemote(wg *sync.WaitGroup) {
 			go func(n int, peerKey string) {
 				metrics.MetricsMapLock.Lock()
 				metric := metrics.MetricsMap[peerKey]
-				metric.TrafficSent += uint64(n)
+				metric.TrafficSent += float64(n) / (1 << 20)
 				metrics.MetricsMap[peerKey] = metric
 				metrics.MetricsMapLock.Unlock()
 			}(n, p.Config.RemoteKey.String())

+ 8 - 9
nm-proxy/server/server.go

@@ -75,7 +75,7 @@ func (p *ProxyServer) Listen(ctx context.Context) {
 				proxyTransportMsg = false
 			}
 			if proxyTransportMsg {
-				proxyIncomingPacket(buffer[:], source, n, srcPeerKeyHash, dstPeerKeyHash)
+				p.proxyIncomingPacket(buffer[:], source, n, srcPeerKeyHash, dstPeerKeyHash)
 				continue
 			} else {
 				// unknown peer to proxy -> check if extclient and handle it
@@ -101,12 +101,11 @@ func handleMsgs(buffer []byte, n int, source *net.UDPAddr) {
 			log.Printf("------->$$$$$ Recieved Metric Pkt: %+v, FROM:%s\n", metricMsg, source.String())
 			if metricMsg.Sender == common.WgIfaceMap.Iface.PublicKey {
 				latency := time.Now().UnixMilli() - metricMsg.TimeStamp
-				log.Println("----------------> LAtency$$$$$$: ", latency)
 				metrics.MetricsMapLock.Lock()
 				metric := metrics.MetricsMap[metricMsg.Reciever.String()]
 				metric.LastRecordedLatency = uint64(latency)
 				metric.ConnectionStatus = true
-				metric.TrafficRecieved += uint64(n)
+				metric.TrafficRecieved += float64(n) / (1 << 20)
 				metrics.MetricsMap[metricMsg.Reciever.String()] = metric
 				metrics.MetricsMapLock.Unlock()
 			} else if metricMsg.Reciever == common.WgIfaceMap.Iface.PublicKey {
@@ -119,7 +118,7 @@ func handleMsgs(buffer []byte, n int, source *net.UDPAddr) {
 				metrics.MetricsMapLock.Lock()
 				metric := metrics.MetricsMap[metricMsg.Sender.String()]
 				metric.ConnectionStatus = true
-				metric.TrafficRecieved += uint64(n)
+				metric.TrafficRecieved += float64(n) / (1 << 20)
 				metrics.MetricsMap[metricMsg.Sender.String()] = metric
 				metrics.MetricsMapLock.Unlock()
 			}
@@ -164,7 +163,7 @@ func handleExtClients(buffer []byte, n int, source *net.UDPAddr) bool {
 			peerI.Config.RecieverChan <- buffer[:n]
 			metrics.MetricsMapLock.Lock()
 			metric := metrics.MetricsMap[peerInfo.PeerKey]
-			metric.TrafficRecieved += uint64(n)
+			metric.TrafficRecieved += float64(n) / (1 << 20)
 			metric.ConnectionStatus = true
 			metrics.MetricsMap[peerInfo.PeerKey] = metric
 			metrics.MetricsMapLock.Unlock()
@@ -176,7 +175,7 @@ func handleExtClients(buffer []byte, n int, source *net.UDPAddr) bool {
 	return isExtClient
 }
 
-func proxyIncomingPacket(buffer []byte, source *net.UDPAddr, n int, srcPeerKeyHash, dstPeerKeyHash string) {
+func (p *ProxyServer) proxyIncomingPacket(buffer []byte, source *net.UDPAddr, n int, srcPeerKeyHash, dstPeerKeyHash string) {
 	var err error
 	//log.Printf("--------> RECV PKT , [SRCKEYHASH: %s], SourceIP: [%s] \n", srcPeerKeyHash, source.IP.String())
 
@@ -188,7 +187,7 @@ func proxyIncomingPacket(buffer []byte, source *net.UDPAddr, n int, srcPeerKeyHa
 			if conf, ok := remoteMap[dstPeerKeyHash]; ok {
 				log.Printf("--------> Relaying PKT [ SourceIP: %s:%d ], [ SourceKeyHash: %s ], [ DstIP: %s:%d ], [ DstHashKey: %s ] \n",
 					source.IP.String(), source.Port, srcPeerKeyHash, conf.Endpoint.String(), conf.Endpoint.Port, dstPeerKeyHash)
-				_, err = NmProxyServer.Server.WriteToUDP(buffer[:n+packet.MessageProxySize], conf.Endpoint)
+				_, err = p.Server.WriteToUDP(buffer[:n+packet.MessageProxySize], conf.Endpoint)
 				if err != nil {
 					log.Println("Failed to send to remote: ", err)
 				}
@@ -199,7 +198,7 @@ func proxyIncomingPacket(buffer []byte, source *net.UDPAddr, n int, srcPeerKeyHa
 				if conf, ok := remoteMap[dstPeerKeyHash]; ok {
 					log.Printf("--------> Relaying BACK TO RELAYED NODE PKT [ SourceIP: %s ], [ SourceKeyHash: %s ], [ DstIP: %s ], [ DstHashKey: %s ] \n",
 						source.String(), srcPeerKeyHash, conf.Endpoint.String(), dstPeerKeyHash)
-					_, err = NmProxyServer.Server.WriteToUDP(buffer[:n+packet.MessageProxySize], conf.Endpoint)
+					_, err = p.Server.WriteToUDP(buffer[:n+packet.MessageProxySize], conf.Endpoint)
 					if err != nil {
 						log.Println("Failed to send to remote: ", err)
 					}
@@ -224,7 +223,7 @@ func proxyIncomingPacket(buffer []byte, source *net.UDPAddr, n int, srcPeerKeyHa
 		go func(n int, peerKey string) {
 			metrics.MetricsMapLock.Lock()
 			metric := metrics.MetricsMap[peerKey]
-			metric.TrafficRecieved += uint64(n)
+			metric.TrafficRecieved += float64(n) / (1 << 20)
 			metric.ConnectionStatus = true
 			metrics.MetricsMap[peerKey] = metric
 			metrics.MetricsMapLock.Unlock()