|
@@ -1,19 +1,18 @@
|
|
|
package metrics
|
|
|
|
|
|
import (
|
|
|
- "runtime"
|
|
|
"time"
|
|
|
|
|
|
"github.com/go-ping/ping"
|
|
|
+ proxy_metrics "github.com/gravitl/netclient/nm-proxy/metrics"
|
|
|
"github.com/gravitl/netmaker/logger"
|
|
|
"github.com/gravitl/netmaker/logic"
|
|
|
"github.com/gravitl/netmaker/models"
|
|
|
- "github.com/gravitl/netmaker/netclient/wireguard"
|
|
|
"golang.zx2c4.com/wireguard/wgctrl"
|
|
|
)
|
|
|
|
|
|
// Collect - collects metrics
|
|
|
-func Collect(iface string, peerMap models.PeerMap) (*models.Metrics, error) {
|
|
|
+func Collect(iface, network string, proxy bool, peerMap models.PeerMap) (*models.Metrics, error) {
|
|
|
var metrics models.Metrics
|
|
|
metrics.Connectivity = make(map[string]models.Metric)
|
|
|
var wgclient, err = wgctrl.New()
|
|
@@ -22,19 +21,13 @@ func Collect(iface string, peerMap models.PeerMap) (*models.Metrics, error) {
|
|
|
return &metrics, err
|
|
|
}
|
|
|
defer wgclient.Close()
|
|
|
-
|
|
|
- if runtime.GOOS == "darwin" {
|
|
|
- iface, err = wireguard.GetRealIface(iface)
|
|
|
- if err != nil {
|
|
|
- fillUnconnectedData(&metrics, peerMap)
|
|
|
- return &metrics, err
|
|
|
- }
|
|
|
- }
|
|
|
device, err := wgclient.Device(iface)
|
|
|
if err != nil {
|
|
|
fillUnconnectedData(&metrics, peerMap)
|
|
|
return &metrics, err
|
|
|
}
|
|
|
+ metrics.ProxyMetrics = make(map[string]proxy_metrics.Metric)
|
|
|
+
|
|
|
// TODO handle freebsd??
|
|
|
for i := range device.Peers {
|
|
|
currPeer := device.Peers[i]
|
|
@@ -88,6 +81,8 @@ func Collect(iface string, peerMap models.PeerMap) (*models.Metrics, error) {
|
|
|
|
|
|
newMetric.TotalTime = 1
|
|
|
metrics.Connectivity[id] = newMetric
|
|
|
+ metrics.ProxyMetrics[id] = proxy_metrics.GetMetric(network, currPeer.PublicKey.String())
|
|
|
+ proxy_metrics.ResetMetricsForPeer(network, currPeer.PublicKey.String())
|
|
|
}
|
|
|
|
|
|
fillUnconnectedData(&metrics, peerMap)
|