diff --git a/cmd/relaysrv/status.go b/cmd/relaysrv/status.go index b18cf3ea..7dcb71ff 100644 --- a/cmd/relaysrv/status.go +++ b/cmd/relaysrv/status.go @@ -25,6 +25,8 @@ func getStatus(w http.ResponseWriter, r *http.Request) { sessionMut.Lock() // This can potentially be double the number of pending sessions, as each session has two keys, one for each side. + status["startTime"] = rc.startTime + status["uptime"] = time.Since(rc.startTime) status["numPendingSessionKeys"] = len(pendingSessions) status["numActiveSessions"] = len(activeSessions) sessionMut.Unlock() @@ -43,6 +45,14 @@ func getStatus(w http.ResponseWriter, r *http.Request) { rc.rate(30*60/10) * 8 / 1000, rc.rate(60*60/10) * 8 / 1000, } + status["options"] = map[string]interface{}{ + "network-timeout": networkTimeout, + "ping-interval": pingInterval, + "message-timeout": messageTimeout, + "per-session-rate": sessionLimitBps, + "global-rate": globalLimitBps, + "pools": defaultPoolAddrs, + } bs, err := json.MarshalIndent(status, "", " ") if err != nil { @@ -55,15 +65,17 @@ func getStatus(w http.ResponseWriter, r *http.Request) { } type rateCalculator struct { - rates []int64 - prev int64 - counter *int64 + rates []int64 + prev int64 + counter *int64 + startTime time.Time } func newRateCalculator(keepIntervals int, interval time.Duration, counter *int64) *rateCalculator { r := &rateCalculator{ - rates: make([]int64, keepIntervals), - counter: counter, + rates: make([]int64, keepIntervals), + counter: counter, + startTime: time.Now(), } go r.updateRates(interval)