Merge pull request #10 from syncthing/stuff

Add more info to status
This commit is contained in:
Jakob Borg 2015-10-10 20:14:05 +09:00
commit d47d82d8e1
1 changed files with 17 additions and 5 deletions

View File

@ -25,6 +25,8 @@ func getStatus(w http.ResponseWriter, r *http.Request) {
sessionMut.Lock() sessionMut.Lock()
// This can potentially be double the number of pending sessions, as each session has two keys, one for each side. // 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["numPendingSessionKeys"] = len(pendingSessions)
status["numActiveSessions"] = len(activeSessions) status["numActiveSessions"] = len(activeSessions)
sessionMut.Unlock() sessionMut.Unlock()
@ -43,6 +45,14 @@ func getStatus(w http.ResponseWriter, r *http.Request) {
rc.rate(30*60/10) * 8 / 1000, rc.rate(30*60/10) * 8 / 1000,
rc.rate(60*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, "", " ") bs, err := json.MarshalIndent(status, "", " ")
if err != nil { if err != nil {
@ -55,15 +65,17 @@ func getStatus(w http.ResponseWriter, r *http.Request) {
} }
type rateCalculator struct { type rateCalculator struct {
rates []int64 rates []int64
prev int64 prev int64
counter *int64 counter *int64
startTime time.Time
} }
func newRateCalculator(keepIntervals int, interval time.Duration, counter *int64) *rateCalculator { func newRateCalculator(keepIntervals int, interval time.Duration, counter *int64) *rateCalculator {
r := &rateCalculator{ r := &rateCalculator{
rates: make([]int64, keepIntervals), rates: make([]int64, keepIntervals),
counter: counter, counter: counter,
startTime: time.Now(),
} }
go r.updateRates(interval) go r.updateRates(interval)