mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-13 00:24:31 +08:00
record traffic in mb
This commit is contained in:
parent
1d4b915f2d
commit
7c374d9763
3 changed files with 11 additions and 12 deletions
|
@ -15,8 +15,8 @@ import (
|
|||
type Metric struct {
|
||||
LastRecordedLatency uint64
|
||||
ConnectionStatus bool
|
||||
TrafficSent uint64
|
||||
TrafficRecieved uint64
|
||||
TrafficSent float64
|
||||
TrafficRecieved float64
|
||||
}
|
||||
|
||||
type MetricsPayload struct {
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Reference in a new issue