From 638dcd3360dd1c4a119a617e474f3f9cafdc4521 Mon Sep 17 00:00:00 2001 From: Pierre Souchay Date: Tue, 15 Sep 2020 11:47:10 +0200 Subject: [PATCH] [BUGFIX] Avoid GetDatacenter* methods to flood Consul servers logs When calling `GetDatacentersByDistance()` or `GetDatacentersMap()`, an incorrect condition was used to diplay log message, thus flooding Consul's logs. Example of message: ``` [WARN] agent.router: Non-server in server-only area: non_server=myClientNode area=lan ``` This message is only valid for WAN areas, filter to avoid creating hundreds of logs/s on our clusters, each time someone is calling this method. Our logs were flooded by such messages when migrating our Consul servers from 1.7.7 to 1.8.4. This will issue fix #8663 --- agent/router/router.go | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/agent/router/router.go b/agent/router/router.go index 243082a0ef..027303bea2 100644 --- a/agent/router/router.go +++ b/agent/router/router.go @@ -536,10 +536,13 @@ func (r *Router) GetDatacentersByDistance() ([]string, error) { for _, m := range info.cluster.Members() { ok, parts := metadata.IsConsulServer(m) if !ok { - r.logger.Warn("Non-server in server-only area", - "non_server", m.Name, - "area", areaID, - ) + if areaID != types.AreaLAN { + r.logger.Warn("Non-server in server-only area", + "non_server", m.Name, + "area", areaID, + "func", "GetDatacentersByDistance", + ) + } continue } @@ -547,6 +550,7 @@ func (r *Router) GetDatacentersByDistance() ([]string, error) { r.logger.Debug("server in area left, skipping", "server", m.Name, "area", areaID, + "func", "GetDatacentersByDistance", ) continue } @@ -607,10 +611,13 @@ func (r *Router) GetDatacenterMaps() ([]structs.DatacenterMap, error) { for _, m := range info.cluster.Members() { ok, parts := metadata.IsConsulServer(m) if !ok { - r.logger.Warn("Non-server in server-only area", - "non_server", m.Name, - "area", areaID, - ) + if areaID != types.AreaLAN { + r.logger.Warn("Non-server in server-only area", + "non_server", m.Name, + "area", areaID, + "func", "GetDatacenterMaps", + ) + } continue } @@ -618,6 +625,7 @@ func (r *Router) GetDatacenterMaps() ([]structs.DatacenterMap, error) { r.logger.Debug("server in area left, skipping", "server", m.Name, "area", areaID, + "func", "GetDatacenterMaps", ) continue }