From fa166cfaa2e17175801f694e5f6140e5e0013985 Mon Sep 17 00:00:00 2001 From: Mak Muftic Date: Wed, 24 Feb 2021 12:47:04 +0100 Subject: [PATCH 01/14] Add active nodes log --- internal/schedule/checkactive/schedule.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/schedule/checkactive/schedule.go b/internal/schedule/checkactive/schedule.go index c02eaa2b..308924ef 100644 --- a/internal/schedule/checkactive/schedule.go +++ b/internal/schedule/checkactive/schedule.go @@ -34,7 +34,7 @@ func StartScheduledTask(repos *repositories.Repos) { func scheduledTask(repos *repositories.Repos, actions actions.Actions) { log.Debug("Started task: check all active nodes") activeNodes := repos.NodeRepo.GetAllActiveNodes() - + var activeNodesAfterCheck []string for _, node := range *activeNodes { pingActive, err := active.CheckIfPingActive(node.ID, repos) @@ -60,6 +60,14 @@ func scheduledTask(repos *repositories.Repos, actions actions.Actions) { log.Errorf("Unable to remove node %s from active because of %v", node.ID, err) } log.Debugf("Node %s metrics lagging more than 10 blocks, removed node from active", node.ID) + } else { + activeNodesAfterCheck = append(activeNodesAfterCheck, node.ID) } } + + if len(activeNodesAfterCheck) == 0 { + log.Debug("There is no active nodes currently") + } else { + log.Debugf("Currently active nodes: %v", activeNodesAfterCheck) + } } From 13650dacaa726580baa1f428d6f1a8c520e42a91 Mon Sep 17 00:00:00 2001 From: Mak Muftic Date: Wed, 24 Feb 2021 12:54:12 +0100 Subject: [PATCH 02/14] Fix ping handler --- internal/controllers/ping.go | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/internal/controllers/ping.go b/internal/controllers/ping.go index 021c5db4..a33b3dfb 100644 --- a/internal/controllers/ping.go +++ b/internal/controllers/ping.go @@ -10,7 +10,7 @@ import ( log "github.com/sirupsen/logrus" ) -const pingOffset = 5 +const pingOffset = 8 func (c ApiController) PingHandler(w http.ResponseWriter, r *http.Request) { request := r.Context().Value(auth.RequestContextKey).(*auth.RequestContext) @@ -20,18 +20,24 @@ func (c ApiController) PingHandler(w http.ResponseWriter, r *http.Request) { log.Errorf("Unable to calculate node downtime, error: %v", err) } - if math.Abs(downtimeDuration.Seconds()) > (stats.PingIntervalInSeconds + pingOffset) { - downtime := models.Downtime{ - Start: lastPingTime, - End: request.Timestamp, - NodeId: request.NodeId, + // if two pings come one after another (in 2 second interval) + // this means that one ping stuck in network and + // there is no need to write multiple downtimes + if request.Timestamp.Sub(lastPingTime).Seconds() > 2 { + // check if there were downtime + if math.Abs(downtimeDuration.Seconds()) > (stats.PingIntervalInSeconds + pingOffset) { + downtime := models.Downtime{ + Start: lastPingTime, + End: request.Timestamp, + NodeId: request.NodeId, + } + err = c.repositories.DowntimeRepo.Save(&downtime) + if err != nil { + log.Errorf("Unable to save node downtime, error: %v", err) + } + + log.Debugf("Saved node %s downtime of: %f", request.NodeId, math.Abs(downtimeDuration.Seconds())) } - err = c.repositories.DowntimeRepo.Save(&downtime) - if err != nil { - log.Errorf("Unable to save node downtime, error: %v", err) - } - - log.Debugf("Saved node %s downtime of: %f", request.NodeId, math.Abs(downtimeDuration.Seconds())) } // save ping to database From 86ed16f69ef1156e93219867c919bc69f86d70d0 Mon Sep 17 00:00:00 2001 From: Mak Muftic Date: Wed, 24 Feb 2021 13:12:09 +0100 Subject: [PATCH 03/14] Fix ping controller tests --- internal/controllers/ping.go | 2 +- internal/controllers/ping_test.go | 27 +++++++++++++++++++-------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/internal/controllers/ping.go b/internal/controllers/ping.go index a33b3dfb..bd3fecc2 100644 --- a/internal/controllers/ping.go +++ b/internal/controllers/ping.go @@ -23,7 +23,7 @@ func (c ApiController) PingHandler(w http.ResponseWriter, r *http.Request) { // if two pings come one after another (in 2 second interval) // this means that one ping stuck in network and // there is no need to write multiple downtimes - if request.Timestamp.Sub(lastPingTime).Seconds() > 2 { + if math.Abs(request.Timestamp.Sub(lastPingTime).Seconds()) > 2 { // check if there were downtime if math.Abs(downtimeDuration.Seconds()) > (stats.PingIntervalInSeconds + pingOffset) { downtime := models.Downtime{ diff --git a/internal/controllers/ping_test.go b/internal/controllers/ping_test.go index 3ff40f78..c56d6a54 100644 --- a/internal/controllers/ping_test.go +++ b/internal/controllers/ping_test.go @@ -27,6 +27,8 @@ func TestApiController_PingHandler(t *testing.T) { downtimeSaveErr error calculateDowntimeErr error downtimeDuration time.Duration + requestTimestamp time.Time + lastPingTimestamp time.Time }{ { name: "Returns 200 if downtime calculation fails", @@ -37,26 +39,32 @@ func TestApiController_PingHandler(t *testing.T) { downtimeSaveCallCount: 0, downtimeDuration: time.Duration(0), calculateDowntimeErr: fmt.Errorf("ERROR"), + requestTimestamp: time.Now(), + lastPingTimestamp: time.Now().Add(-5 * time.Second), }, { - name: "Returns 200 if donwtime save fails", + name: "Returns 200 if downtime save fails", statusCode: 200, pingSaveCallCount: 1, pingSaveErr: nil, downtimeSaveErr: fmt.Errorf("ERROR"), downtimeSaveCallCount: 1, - downtimeDuration: time.Duration(time.Second * 11), + downtimeDuration: time.Duration(time.Second * 19), calculateDowntimeErr: nil, + requestTimestamp: time.Now(), + lastPingTimestamp: time.Now().Add(-19 * time.Second), }, { - name: "Saves downtime if downtime duration more than 5 seconds", + name: "Saves downtime if downtime duration more than 18 seconds", statusCode: 200, pingSaveCallCount: 1, pingSaveErr: nil, downtimeSaveErr: nil, downtimeSaveCallCount: 1, - downtimeDuration: time.Duration(time.Second * 11), + downtimeDuration: time.Duration(time.Second * 19), calculateDowntimeErr: nil, + requestTimestamp: time.Now(), + lastPingTimestamp: time.Now().Add(-19 * time.Second), }, { name: "Returns 500 if saving ping fails", @@ -67,6 +75,8 @@ func TestApiController_PingHandler(t *testing.T) { downtimeSaveCallCount: 0, downtimeDuration: time.Duration(time.Second * 8), calculateDowntimeErr: nil, + requestTimestamp: time.Now(), + lastPingTimestamp: time.Now().Add(-5 * time.Second), }, { name: "Returns 200 and does not save downtime if downtime duration less than 5 + 5 seconds", @@ -77,13 +87,14 @@ func TestApiController_PingHandler(t *testing.T) { downtimeSaveCallCount: 0, downtimeDuration: time.Duration(time.Second * 8), calculateDowntimeErr: nil, + requestTimestamp: time.Now(), + lastPingTimestamp: time.Now().Add(-5 * time.Second), }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - timestamp := time.Now() // create mock controller nodeRepoMock := mocks.NodeRepository{} recordRepoMock := mocks.RecordRepository{} @@ -92,10 +103,10 @@ func TestApiController_PingHandler(t *testing.T) { pingRepoMock := mocks.PingRepository{} pingRepoMock.On("Save", &models.Ping{ NodeId: "1", - Timestamp: timestamp, + Timestamp: test.requestTimestamp, }).Return(test.pingSaveErr) pingRepoMock.On("CalculateDowntime", mock.Anything, mock.Anything).Return( - time.Now(), test.downtimeDuration, test.calculateDowntimeErr) + test.lastPingTimestamp, test.downtimeDuration, test.calculateDowntimeErr) downtimeRepoMock := mocks.DowntimeRepository{} downtimeRepoMock.On("Save", mock.Anything).Return(test.downtimeSaveErr) @@ -113,7 +124,7 @@ func TestApiController_PingHandler(t *testing.T) { req, _ := http.NewRequest("POST", "/api/v1/node", bytes.NewReader(nil)) c := &auth.RequestContext{ NodeId: "1", - Timestamp: timestamp, + Timestamp: test.requestTimestamp, } ctx := context.WithValue(req.Context(), auth.RequestContextKey, c) req = req.WithContext(ctx) From 36e8068cf05729930ca270903435881b2b16e329 Mon Sep 17 00:00:00 2001 From: Mak Muftic Date: Wed, 24 Feb 2021 13:19:24 +0100 Subject: [PATCH 04/14] Update CHANGELOG file --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20395e9c..1bfd88b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## [unreleased]((https://github.com/NodeFactoryIo/vedran/tree/HEAD)) +[Full Changelog](https://github.com/NodeFactoryIo/vedran/compare/v0.5.3...HEAD) + +### Added + +### Fix + +### Changed +- Ping handling upgrade [\#198](https://github.com/NodeFactoryIo/vedran/pull/198) ([MakMuftic](https://github.com/MakMuftic)) + ## [v0.5.3]((https://github.com/NodeFactoryIo/vedran/tree/HEAD)) [Full Changelog](https://github.com/NodeFactoryIo/vedran/compare/v0.5.2...HEAD) From 3eaf779d1f5a4c26fc33576ce13380e12d8a72ee Mon Sep 17 00:00:00 2001 From: Mak Muftic Date: Tue, 2 Mar 2021 14:05:30 +0100 Subject: [PATCH 05/14] Merge master changes --- .version | 2 +- CHANGELOG.md | 26 ++++++- docker-compose.yml | 4 +- .../dashboards/vedran-dashboard.json | 75 ++++++++++--------- pkg/http-tunnel/server/tcpproxy.go | 15 ++-- pkg/http-tunnel/server/utils.go | 12 +-- 6 files changed, 76 insertions(+), 58 deletions(-) diff --git a/.version b/.version index 60acae26..5f8379dc 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -version=0.5.3 +version=0.5.4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bfd88b2..cf08ef70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,17 +1,37 @@ # Changelog ## [unreleased]((https://github.com/NodeFactoryIo/vedran/tree/HEAD)) -[Full Changelog](https://github.com/NodeFactoryIo/vedran/compare/v0.5.3...HEAD) +[Full Changelog](https://github.com/NodeFactoryIo/vedran/compare/v0.5.5...HEAD) ### Added ### Fix ### Changed + +## [v0.5.5]((https://github.com/NodeFactoryIo/vedran/tree/v0.5.5)) +[Full Changelog](https://github.com/NodeFactoryIo/vedran/compare/v0.5.4...v0.5.5) + +### Added + +### Fix +- Fix request counters in grafana dashboard [\#200](https://github.com/NodeFactoryIo/vedran/pull/200) ([mpetrun5](https://github.com/mpetrun5)) + +### Changed + +## [v0.5.4]((https://github.com/NodeFactoryIo/vedran/tree/v0.5.4)) +[Full Changelog](https://github.com/NodeFactoryIo/vedran/compare/v0.5.3...v0.5.4) + +### Added + +### Fix +- Fix tunnel tcp connections not closing after requests finish [\#197](https://github.com/NodeFactoryIo/vedran/pull/197) ([mpetrun5](https://github.com/mpetrun5)) - Ping handling upgrade [\#198](https://github.com/NodeFactoryIo/vedran/pull/198) ([MakMuftic](https://github.com/MakMuftic)) -## [v0.5.3]((https://github.com/NodeFactoryIo/vedran/tree/HEAD)) -[Full Changelog](https://github.com/NodeFactoryIo/vedran/compare/v0.5.2...HEAD) +### Changed + +## [v0.5.3]((https://github.com/NodeFactoryIo/vedran/tree/v0.5.3)) +[Full Changelog](https://github.com/NodeFactoryIo/vedran/compare/v0.5.2...v0.5.3) ### Added diff --git a/docker-compose.yml b/docker-compose.yml index fc6346cf..dc1eb265 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,11 +26,11 @@ services: container_name: "vedran" vedran-daemon: - image: nodefactory/vedran-daemon:v0.3.2 + image: nodefactory/vedran-daemon:v0.3.4 depends_on: - vedran - polkadot - command: --id test-id --lb http://vedran:4000 --node-rpc http://polkadot:9933 --node-ws http://polkadot:9944 --node-metrics http://polkadot:9615 --payout-address 1Z4GTfUN2QHkSeHqdBUDawgbEWzqtfRG8ouJZ26z3cm7ePN --log-level info + command: --id test-id --lb http://vedran:4000 --node-rpc http://polkadot:9933 --node-ws ws://polkadot:9944 --node-metrics http://polkadot:9615 --payout-address 1Z4GTfUN2QHkSeHqdBUDawgbEWzqtfRG8ouJZ26z3cm7ePN --log-level info prometheus: image: prom/prometheus diff --git a/infra/grafana/provisioning/dashboards/vedran-dashboard.json b/infra/grafana/provisioning/dashboards/vedran-dashboard.json index 492defeb..0c585ec5 100644 --- a/infra/grafana/provisioning/dashboards/vedran-dashboard.json +++ b/infra/grafana/provisioning/dashboards/vedran-dashboard.json @@ -92,14 +92,14 @@ "orientation": "vertical", "reduceOptions": { "calcs": [ - "max" + "last" ], "fields": "", "values": false }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { "expr": "vedran_number_of_successful_requests", @@ -155,17 +155,17 @@ "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "max" ], - "fields": "/^\\{code=\"200\", handler=\"/\", instance=\"vedran:4000\", job=\"prometheus\", method=\"POST\"\\}$/", + "fields": "/.*handler=\"/\".*/", "values": false }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { - "expr": "rate(http_request_duration_seconds_count[$__interval])", + "expr": "rate(http_request_duration_seconds_count[$__range])", "interval": "", "legendFormat": "", "refId": "A" @@ -213,17 +213,17 @@ "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "max" ], - "fields": "/^\\{code=\"200\", handler=\"/ws\", instance=\"vedran:4000\", job=\"prometheus\", method=\"GET\"\\}$/", + "fields": "/.*handler=\"/ws\".*/", "values": false }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { - "expr": "rate(http_request_duration_seconds_count[5m])", + "expr": "rate(http_request_duration_seconds_count[$__range])", "interval": "", "legendFormat": "", "refId": "A" @@ -266,18 +266,21 @@ "orientation": "auto", "reduceOptions": { "calcs": [ - "sum" + "diff" ], - "fields": "/^\\{code=\"200\", handler=\"/\", instance=\"vedran:4000\", job=\"prometheus\", method=\"POST\"\\}$/", + "fields": "/.*handler=\"/\".*/", "values": false }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { - "expr": "delta(http_request_duration_seconds_count[$__interval])", + "expr": "http_request_duration_seconds_count", + "format": "time_series", + "instant": false, "interval": "", + "intervalFactor": 1, "legendFormat": "", "refId": "A" } @@ -324,18 +327,18 @@ "orientation": "auto", "reduceOptions": { "calcs": [ - "sum" + "diff" ], - "fields": "/^\\{code=\"200\", handler=\"/ws\", instance=\"vedran:4000\", job=\"prometheus\", method=\"GET\"\\}$/", + "fields": "/.*handler=\"/ws\".*/", "limit": 200, "values": false }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { - "expr": "delta(http_request_duration_seconds_count[$__interval])", + "expr": "http_request_duration_seconds_count", "interval": "", "legendFormat": "", "refId": "A" @@ -386,7 +389,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -491,7 +494,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -603,7 +606,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -699,7 +702,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -803,7 +806,7 @@ }, "showUnfilled": true }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { "expr": "sum by (address) (vedran_payout_distribution)", @@ -864,7 +867,7 @@ }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { "expr": "vedran_payout_date", @@ -941,7 +944,7 @@ }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { "expr": "vedran_version", @@ -1008,7 +1011,7 @@ }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { "expr": "vedran_version", @@ -1073,7 +1076,7 @@ }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { "expr": "vedran_lb_payout_fee_total_percentage", @@ -1138,7 +1141,7 @@ }, "textMode": "auto" }, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "targets": [ { "expr": "vedran_lb_payout_fee_total / 10000000000", @@ -1196,7 +1199,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -1295,7 +1298,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -1390,7 +1393,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -1485,7 +1488,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -1594,7 +1597,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.3.6", + "pluginVersion": "7.3.5", "pointradius": 2, "points": false, "renderer": "flot", @@ -1660,12 +1663,12 @@ "list": [] }, "time": { - "from": "now-15m", + "from": "now-5m", "to": "now" }, "timepicker": {}, "timezone": "", "title": "Vedran Dashboard", "uid": "7tNmHxAGz", - "version": 1 -} \ No newline at end of file + "version": 3 +} diff --git a/pkg/http-tunnel/server/tcpproxy.go b/pkg/http-tunnel/server/tcpproxy.go index 456d0398..53777372 100644 --- a/pkg/http-tunnel/server/tcpproxy.go +++ b/pkg/http-tunnel/server/tcpproxy.go @@ -6,11 +6,12 @@ package server import ( "fmt" - "github.com/NodeFactoryIo/vedran/pkg/http-tunnel" - "github.com/NodeFactoryIo/vedran/pkg/http-tunnel/proto" - log "github.com/sirupsen/logrus" "io" "net" + + tunnel "github.com/NodeFactoryIo/vedran/pkg/http-tunnel" + "github.com/NodeFactoryIo/vedran/pkg/http-tunnel/proto" + log "github.com/sirupsen/logrus" ) // TCPProxy forwards TCP streams. @@ -80,7 +81,6 @@ func (p *TCPProxy) Proxy(w io.Writer, r io.ReadCloser, msg *proto.ControlMessage }).Error("dial failed", err) return } - defer local.Close() if err := tunnel.KeepAlive(local); err != nil { clogger.WithFields(log.Fields{ @@ -88,14 +88,12 @@ func (p *TCPProxy) Proxy(w io.Writer, r io.ReadCloser, msg *proto.ControlMessage }).Error("TCP keepalive for tunneled connection failed", err) } - done := make(chan struct{}) go func() { loggerWithContext := log.WithContext(p.logger.Context).WithFields(log.Fields{ "dst": msg.ForwardedHost, "src": target, }) transfer(flushWriter{w}, local, loggerWithContext) - close(done) }() loggerWithContext := log.WithContext(p.logger.Context).WithFields(log.Fields{ @@ -104,7 +102,10 @@ func (p *TCPProxy) Proxy(w io.Writer, r io.ReadCloser, msg *proto.ControlMessage }) transfer(local, r, loggerWithContext) - <-done + err = local.Close() + if err != nil { + clogger.Errorf("Transfer close failed because of %v", err) + } } func (p *TCPProxy) localAddrFor(hostPort string) string { diff --git a/pkg/http-tunnel/server/utils.go b/pkg/http-tunnel/server/utils.go index b936074d..0bd4186a 100644 --- a/pkg/http-tunnel/server/utils.go +++ b/pkg/http-tunnel/server/utils.go @@ -5,22 +5,16 @@ package server import ( - log "github.com/sirupsen/logrus" "io" "net" "net/http" "strings" + + log "github.com/sirupsen/logrus" ) func transfer(dst io.Writer, src io.Reader, logger *log.Entry) { - n, err := io.Copy(dst, src) - if err != nil { - if (!strings.Contains(err.Error(), "context canceled") && - !strings.Contains(err.Error(), "CANCEL")) && - !strings.Contains(err.Error(), "stream closed") { - logger.Error("copy error ", err) - } - } + n, _ := io.Copy(dst, src) log.Debugf("transferred %d bytes", n) } From e22ce8213da6f5dd995d3b87f6f7480838a7c176 Mon Sep 17 00:00:00 2001 From: Mak Muftic Date: Tue, 2 Mar 2021 14:06:54 +0100 Subject: [PATCH 06/14] Update architecture image --- assets/vedran-arch.png | Bin 59073 -> 87907 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/vedran-arch.png b/assets/vedran-arch.png index 91e26d31eacd82c2af2ca1dc426479506e87df1f..af57f6ba09dcac022523b009611636e8e82b7fe2 100644 GIT binary patch literal 87907 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

IH6@Cy@|qw>tYft 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 Date: Tue, 2 Mar 2021 14:07:16 +0100 Subject: [PATCH 07/14] Update version file --- .version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.version b/.version index 5f8379dc..96bfc52a 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -version=0.5.4 +version=0.5.5 From 98323f37e5633df9fe7ec643273111b17979dee5 Mon Sep 17 00:00:00 2001 From: Mak Muftic Date: Tue, 2 Mar 2021 14:08:52 +0100 Subject: [PATCH 08/14] Use vedran-daemon latest docker image version --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index dc1eb265..2cb30bde 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,7 +26,7 @@ services: container_name: "vedran" vedran-daemon: - image: nodefactory/vedran-daemon:v0.3.4 + image: nodefactory/vedran-daemon:latest depends_on: - vedran - polkadot From fc2a8bacdfa79c747cb0e7a5c3dcd276162e1401 Mon Sep 17 00:00:00 2001 From: Mak Muftic Date: Tue, 2 Mar 2021 14:23:26 +0100 Subject: [PATCH 09/14] Update README file --- README.md | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 91b473cb..e88dbc50 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,7 @@ Send metrics for node. Auth token should be in header as `X-Auth-Header`. Body s "peer_count": "int32", "best_block_height": "int64", "finalized_block_height": "int64", + "target_block_height": "int64", "ready_transaction_count": "int32" } ``` @@ -263,14 +264,29 @@ Returns statistics for all nodes (mapped on node payout address). ```json { - "node_1_payout_address": { - "total_pings": "float64", - "total_requests": "float64" - }, - "node_2_payout_address": { - "total_pings": "float64", - "total_requests": "float64" - }, + "stats": { + "node_1_payout_address": { + "total_pings": "float64", + "total_requests": "float64" + }, + "node_2_payout_address": { + "total_pings": "float64", + "total_requests": "float64" + } + } +} +``` + +--- + +`GET api/v1/stats/lb` + +Returns statistics on reward distribution between load balancer and nodes. + +```json +{ + "lb_fee": "string", + "nodes_fee": "string" } ``` From 65a18a918ade336dd211d3959d3a3adab2abb1b2 Mon Sep 17 00:00:00 2001 From: Matija Petrunic Date: Mon, 15 Mar 2021 14:14:43 +0100 Subject: [PATCH 10/14] Remove registry old found message in tunnel --- pkg/http-tunnel/integration_test.go | 1 - pkg/http-tunnel/server/registry.go | 9 ++------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/pkg/http-tunnel/integration_test.go b/pkg/http-tunnel/integration_test.go index 416e86d5..ff237488 100644 --- a/pkg/http-tunnel/integration_test.go +++ b/pkg/http-tunnel/integration_test.go @@ -67,7 +67,6 @@ func Test_IntegrationTest(t *testing.T) { assert.True(t, strings.Contains(logStr, "msg=\"try connect\"")) assert.True(t, strings.Contains(logStr, "msg=\"handshake for address 127.0.0.1:5223\"")) assert.True(t, strings.Contains(logStr, "msg=\"REGISTRY SUBSCRIBE\"")) - assert.True(t, strings.Contains(logStr, "msg=\"REGISTRY SET (OLD FOUND)\"")) assert.True(t, strings.Contains(logStr, "msg=\"REGISTRY SET (NEW SET)\"")) assert.True(t, strings.Contains(logStr, "msg=\"test-id connected\"")) diff --git a/pkg/http-tunnel/server/registry.go b/pkg/http-tunnel/server/registry.go index f4a0c7a8..9c304421 100644 --- a/pkg/http-tunnel/server/registry.go +++ b/pkg/http-tunnel/server/registry.go @@ -6,9 +6,10 @@ package server import ( "fmt" - log "github.com/sirupsen/logrus" "net" "sync" + + log "github.com/sirupsen/logrus" ) // RegistryItem holds information about hosts and listeners associated with a @@ -149,12 +150,6 @@ func (r *registry) set(i *RegistryItem, identifier string) error { return errClientNotSubscribed } - r.logger.WithFields(log.Fields{ - "client-name": identifier, - "client-id": j.ClientID, - "data": j, - }).Debug("REGISTRY SET (OLD FOUND)") - i.ClientID = j.ClientID r.logger.WithFields(log.Fields{ From 8b7555e919473035564da4cee6cfbdbe34140832 Mon Sep 17 00:00:00 2001 From: Matija Petrunic Date: Mon, 15 Mar 2021 14:14:52 +0100 Subject: [PATCH 11/14] Set min config version to 0 --- internal/loadbalancer/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/loadbalancer/server.go b/internal/loadbalancer/server.go index 70da00f8..dd2d45d0 100644 --- a/internal/loadbalancer/server.go +++ b/internal/loadbalancer/server.go @@ -100,7 +100,7 @@ func StartLoadBalancerServer( r := router.CreateNewApiRouter(apiController, privateKey) prometheus.RecordMetrics(*repos) if props.CertFile != "" { - tlsConfig := &tls.Config{MinVersion: tls.VersionTLS10} + tlsConfig := &tls.Config{MinVersion: 0} server := &http.Server{ Addr: fmt.Sprintf(":%d", props.Port), Handler: handlers.CORS()(r), From 36138a0296ccecacf56f6e91c5b214051397aaa0 Mon Sep 17 00:00:00 2001 From: Matija Petrunic Date: Mon, 15 Mar 2021 14:16:02 +0100 Subject: [PATCH 12/14] Add whitespace in handshake failed errors --- pkg/http-tunnel/server/server.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/http-tunnel/server/server.go b/pkg/http-tunnel/server/server.go index d6e59c58..41a7866a 100644 --- a/pkg/http-tunnel/server/server.go +++ b/pkg/http-tunnel/server/server.go @@ -223,13 +223,13 @@ func (s *Server) handleClient(conn net.Conn) { resp, err = s.httpClient.Do(req) if err != nil { - alogger.Error("handshake failed 1", err) + alogger.Error("handshake failed 1 ", err) goto reject } if resp.StatusCode != http.StatusOK { err = fmt.Errorf("Status %s", resp.Status) - alogger.Error("handshake failed 2", err) + alogger.Error("handshake failed 2 ", err) goto reject } @@ -238,7 +238,7 @@ func (s *Server) handleClient(conn net.Conn) { token = resp.Header.Get("X-Auth-Header") if token == "" { err = errors.New("Auth header missing") - alogger.Error("handshake failed", err) + alogger.Error("handshake failed ", err) goto reject } From 059c889a511386b4a0a65f10e3519cc1220ed43e Mon Sep 17 00:00:00 2001 From: Matija Petrunic Date: Mon, 15 Mar 2021 14:22:24 +0100 Subject: [PATCH 13/14] Avoid duplicated http and ws ports in pool --- pkg/http-tunnel/server/addrpool.go | 12 ++++++++++++ pkg/http-tunnel/server/addrpool_test.go | 24 +++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/pkg/http-tunnel/server/addrpool.go b/pkg/http-tunnel/server/addrpool.go index a9d8f06f..cfce3266 100644 --- a/pkg/http-tunnel/server/addrpool.go +++ b/pkg/http-tunnel/server/addrpool.go @@ -53,6 +53,18 @@ func (ap *AddrPool) Init(rang string) error { func (ap *AddrPool) Acquire(cname string, pname string) (int, error) { ap.mutex.Lock() defer ap.mutex.Unlock() + var existingPort int + + if pname == "http" { + existingPort, _ = ap.GetHTTPPort(cname) + } else { + existingPort, _ = ap.GetWSPort(cname) + } + + if existingPort != 0 { + return existingPort, nil + } + assignedPort := 0 // search for the first unnused port for i := ap.first; i < ap.last; i++ { diff --git a/pkg/http-tunnel/server/addrpool_test.go b/pkg/http-tunnel/server/addrpool_test.go index 3466ac17..c9c204b1 100644 --- a/pkg/http-tunnel/server/addrpool_test.go +++ b/pkg/http-tunnel/server/addrpool_test.go @@ -73,7 +73,29 @@ func TestAddrPool_Acquire(t *testing.T) { fields: fields{100, 100, 1, make(map[int]*RemoteID)}, }, { - name: "Returns port if available", + name: "Returns existing http port if exists", + args: args{cname: "test-id", pname: "http"}, + wantErr: false, + want: 100, + fields: fields{100, 102, 1, map[int]*RemoteID{100: { + ClientID: "test-id", + PortName: "http", + Port: 100, + }}}, + }, + { + name: "Returns existing ws port if exists", + args: args{cname: "test-id", pname: "ws"}, + wantErr: false, + want: 100, + fields: fields{100, 102, 1, map[int]*RemoteID{100: { + ClientID: "test-id", + PortName: "ws", + Port: 100, + }}}, + }, + { + name: "Acquires port if available", args: args{cname: "test-id", pname: "default"}, wantErr: false, want: 100, From 830a306f45d7f7a6ff11b77ce60ad8b130e7c940 Mon Sep 17 00:00:00 2001 From: Matija Petrunic Date: Mon, 15 Mar 2021 14:25:38 +0100 Subject: [PATCH 14/14] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf08ef70..25400c01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Added ### Fix +- Fix duplicated ports inside tunnel address pool [\#204](https://github.com/NodeFactoryIo/vedran/pull/204) ([mpetrun5](https://github.com/mpetrun5)) ### Changed