From 433e3429071e87ce49e42dc7e16f6748db2acba9 Mon Sep 17 00:00:00 2001 From: Zhu Sheng Li Date: Wed, 25 Aug 2021 16:34:43 +0800 Subject: [PATCH 1/2] Keep probe interval consistent for the same outbound Sort outbounds before probing so the probing interval is consistent for the same outbound. Also fix the format of some error messages. --- app/observatory/observer.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/observatory/observer.go b/app/observatory/observer.go index 0a573a96aa4..e0f9b96c71d 100644 --- a/app/observatory/observer.go +++ b/app/observatory/observer.go @@ -7,6 +7,7 @@ import ( "net" "net/http" "net/url" + "sort" "sync" "time" @@ -67,6 +68,7 @@ func (o *Observer) background() { } outbounds := hs.Select(o.config.SubjectSelector) + sort.Strings(outbounds) o.updateStatus(outbounds) From 61dfe346ebc9a770dfb0d9406f7b0f88b3b923ed Mon Sep 17 00:00:00 2001 From: Zhu Sheng Li Date: Wed, 25 Aug 2021 16:59:18 +0800 Subject: [PATCH 2/2] Fix the format of some error messages before: the outbound foois alive after : the outbound foo is alive --- app/observatory/observer.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/observatory/observer.go b/app/observatory/observer.go index e0f9b96c71d..83df15aa673 100644 --- a/app/observatory/observer.go +++ b/app/observatory/observer.go @@ -112,7 +112,7 @@ func (o *Observer) probe(outbound string) ProbeResult { trackedCtx := session.TrackedConnectionError(o.ctx, errorCollectorForRequest) conn, err := tagged.Dialer(trackedCtx, dest, outbound) if err != nil { - return newError("cannot dial remote address", dest).Base(err) + return newError("cannot dial remote address ", dest).Base(err) } connection = conn return nil @@ -154,12 +154,12 @@ func (o *Observer) probe(outbound string) ProbeResult { fullerr := newError("underlying connection failed").Base(errorCollectorForRequest.UnderlyingError()) fullerr = newError("with outbound handler report").Base(fullerr) fullerr = newError("GET request failed:", err).Base(fullerr) - fullerr = newError("the outbound ", outbound, "is dead:").Base(fullerr) + fullerr = newError("the outbound ", outbound, " is dead:").Base(fullerr) fullerr = fullerr.AtInfo() fullerr.WriteToLog() return ProbeResult{Alive: false, LastErrorReason: fullerr.Error()} } - newError("the outbound ", outbound, "is alive:", GETTime.Seconds()).AtInfo().WriteToLog() + newError("the outbound ", outbound, " is alive:", GETTime.Seconds()).AtInfo().WriteToLog() return ProbeResult{Alive: true, Delay: GETTime.Milliseconds()} }