diff --git a/connect/comms.go b/connect/comms.go index 352426fe6294aa14cef034cb7dad0d064ddc6864..06ec019dc2eeba684a6c8c2ae040795a16c290c1 100644 --- a/connect/comms.go +++ b/connect/comms.go @@ -170,6 +170,17 @@ listen: grpc.KeepaliveEnforcementPolicy(KaEnforcement)) } + // Intermittantly print manager connection information + go func() { + ticker := time.NewTicker(60 * time.Second) + for { + select { + case _ = <-ticker.C: + jww.INFO.Printf(pc.Manager.String()) + } + } + }() + return pc, lis, nil } diff --git a/connect/manager.go b/connect/manager.go index 6e2deda458642c9209d2af72edd634df57099696..0de9c72b728fcc30400a68e486544ab03429f302 100644 --- a/connect/manager.go +++ b/connect/manager.go @@ -106,9 +106,16 @@ func (m *Manager) DisconnectAll() { // Implements Stringer for debug printing func (m *Manager) String() string { var result bytes.Buffer + i := uint32(0) + result.WriteString(fmt.Sprintf("Host Manager Connections\n")) for k, host := range m.connections { - result.WriteString(fmt.Sprintf("[%s]: %+v", - (&k).String(), host)) + isConnected, _ := host.Connected() + if isConnected { + i++ + } + result.WriteString(fmt.Sprintf("[%s] IsConnected: %t\n", + (&k).String(), isConnected)) } + result.WriteString(fmt.Sprintf("%d/%d Hosts connected", i, len(m.connections))) return result.String() }