From ef5ae3e5986e4b2bc00751fa02ca5a44950fb8ba Mon Sep 17 00:00:00 2001
From: harmy <hack4cn+github@gmail.com>
Date: Fri, 25 Sep 2020 16:10:20 +0800
Subject: [PATCH] fix: a reconnected proxy will disappear from dashboard after
 7 days (#2008)

---
 pkg/metrics/mem/server.go | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/pkg/metrics/mem/server.go b/pkg/metrics/mem/server.go
index f3c8559c..55d8daf1 100644
--- a/pkg/metrics/mem/server.go
+++ b/pkg/metrics/mem/server.go
@@ -69,7 +69,9 @@ func (m *serverMetrics) clearUselessInfo() {
 	m.mu.Lock()
 	defer m.mu.Unlock()
 	for name, data := range m.info.ProxyStatistics {
-		if !data.LastCloseTime.IsZero() && time.Since(data.LastCloseTime) > time.Duration(7*24)*time.Hour {
+		if !data.LastCloseTime.IsZero() &&
+			data.LastStartTime.Before(data.LastCloseTime) &&
+			time.Since(data.LastCloseTime) > time.Duration(7*24)*time.Hour {
 			delete(m.info.ProxyStatistics, name)
 			log.Trace("clear proxy [%s]'s statistics data, lastCloseTime: [%s]", name, data.LastCloseTime.String())
 		}