Skip to content

Commit f077fc1

Browse files
urihoenigHedingber
authored andcommitted
IG-12673: Use golang proxy for websocket instead of koding/websocketproxy (#20)
1 parent 60d4aac commit f077fc1

File tree

6 files changed

+8
-254
lines changed

6 files changed

+8
-254
lines changed

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ facilitate scale-to-zero flows.
44

55
Supported metrics:
66
1. General:
7-
* `num_of_requests` - prometheus `CounterVec` that simply counts requests using a reverse proxy. Supports both HTTP
8-
(Go's built in ReverseProxy) and Websocket (https://github.com/koding/websocketproxy) requests<br>
7+
* `num_of_requests` - prometheus `CounterVec` that simply counts requests using a reverse proxy (Go's built in ReverseProxy)<br>
98
2. Service specific:
109
* Jupyter:
1110
* `jupyter_kernel_busyness` - prometheus `GaugeVec` that is set to 1 if Jupyter has one or more busy kernels,

go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ go 1.13
55
require (
66
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect
77
github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf // indirect
8-
github.com/gorilla/websocket v1.4.1
9-
github.com/koding/websocketproxy v0.0.0-20181220232114-7ed82d81a28c
108
github.com/nuclio/errors v0.0.1
119
github.com/nuclio/logger v0.0.1
1210
github.com/nuclio/loggerus v0.0.1

go.sum

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,9 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
3131
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
3232
github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf h1:7+FW5aGwISbqUtkfmIpZJGRgNFg2ioYPvFaUxdqpDsg=
3333
github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf/go.mod h1:RpwtwJQFrIEPstU94h88MWPXP2ektJZ8cZ0YntAmXiE=
34-
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
35-
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
3634
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
3735
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
3836
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
39-
github.com/koding/websocketproxy v0.0.0-20181220232114-7ed82d81a28c h1:N7A4JCA2G+j5fuFxCsJqjFU/sZe0mj8H0sSoSwbaikw=
40-
github.com/koding/websocketproxy v0.0.0-20181220232114-7ed82d81a28c/go.mod h1:Nn5wlyECw3iJrzi0AhIWg+AJUb4PlRQVW4/3XHH1LZA=
4137
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
4238
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
4339
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=

pkg/sidecarproxy/metricshandler/numofrequests/metricshandler.go

Lines changed: 7 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,16 @@ import (
77

88
"github.com/v3io/sidecar-proxy/pkg/sidecarproxy/metricshandler"
99
"github.com/v3io/sidecar-proxy/pkg/sidecarproxy/metricshandler/abstract"
10-
"github.com/v3io/sidecar-proxy/pkg/util"
1110

12-
"github.com/gorilla/websocket"
13-
"github.com/koding/websocketproxy"
1411
"github.com/nuclio/errors"
1512
"github.com/nuclio/logger"
1613
"github.com/prometheus/client_golang/prometheus"
1714
)
1815

19-
var (
20-
WebsocketUpgrader = util.ExtendedWebSocket{
21-
WebsocketUpgrader: websocket.Upgrader{
22-
ReadBufferSize: 1024,
23-
WriteBufferSize: 1024,
24-
}}
25-
)
26-
2716
type metricsHandler struct {
2817
*abstract.MetricsHandler
29-
metric *prometheus.CounterVec
30-
httpProxy *httputil.ReverseProxy
31-
webSocketProxy *websocketproxy.WebsocketProxy
18+
metric *prometheus.CounterVec
19+
proxy *httputil.ReverseProxy
3220
}
3321

3422
func NewMetricsHandler(logger logger.Logger,
@@ -74,27 +62,21 @@ func (n *metricsHandler) RegisterMetrics() error {
7462

7563
func (n *metricsHandler) Start() error {
7664
http.HandleFunc("/", n.onRequest)
77-
if err := n.createProxies(); err != nil {
78-
return errors.Wrap(err, "Failed to initiate proxies")
65+
if err := n.createProxy(); err != nil {
66+
return errors.Wrap(err, "Failed to initiate proxy")
7967
}
8068

8169
// adds one data point on service initialization so metric will be initialized and queryable
8270
n.incrementMetric()
8371
return nil
8472
}
8573

86-
func (n *metricsHandler) createProxies() error {
87-
webSocketTargetURL, err := url.Parse("ws://" + n.ForwardAddress)
88-
if err != nil {
89-
return errors.Wrap(err, "Failed to parse web socket forward address")
90-
}
91-
n.webSocketProxy = websocketproxy.NewProxy(webSocketTargetURL)
92-
74+
func (n *metricsHandler) createProxy() error {
9375
httpTargetURL, err := url.Parse("http://" + n.ForwardAddress)
9476
if err != nil {
9577
return errors.Wrap(err, "Failed to parse http forward address")
9678
}
97-
n.httpProxy = httputil.NewSingleHostReverseProxy(httpTargetURL)
79+
n.proxy = httputil.NewSingleHostReverseProxy(httpTargetURL)
9880

9981
return nil
10082
}
@@ -125,18 +107,6 @@ func (n *metricsHandler) onRequest(res http.ResponseWriter, req *http.Request) {
125107
}
126108

127109
func (n *metricsHandler) forwardRequest(res http.ResponseWriter, req *http.Request) error {
128-
proxyHandler := n.getProxyHandler(res, req)
129-
proxyHandler.ServeHTTP(res, req)
110+
n.proxy.ServeHTTP(res, req)
130111
return nil
131112
}
132-
133-
func (n *metricsHandler) getProxyHandler(res http.ResponseWriter, req *http.Request) http.Handler {
134-
if n.isWebSocket(res, req) {
135-
return n.webSocketProxy
136-
}
137-
return n.httpProxy
138-
}
139-
140-
func (n *metricsHandler) isWebSocket(res http.ResponseWriter, req *http.Request) bool {
141-
return WebsocketUpgrader.VerifyWebSocket(res, req, nil) == nil
142-
}

pkg/util/util.go

Lines changed: 0 additions & 166 deletions
This file was deleted.

pkg/util/websocket.go

Lines changed: 0 additions & 43 deletions
This file was deleted.

0 commit comments

Comments
 (0)