projects
/
arvados.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
f224b7f
)
8460: JSON request log.
author
Tom Clegg <tom@curoverse.com>
Tue, 15 Nov 2016 07:42:25 +0000
(
02:42
-0500)
committer
Tom Clegg <tom@curoverse.com>
Tue, 15 Nov 2016 07:58:23 +0000
(
02:58
-0500)
services/ws/router.go
patch
|
blob
|
history
diff --git
a/services/ws/router.go
b/services/ws/router.go
index e829ce88d72f0f211622da089c734c179fedcdbc..69654cbe529affde9ff46b7906ff6392240096ef 100644
(file)
--- a/
services/ws/router.go
+++ b/
services/ws/router.go
@@
-2,10
+2,10
@@
package main
import (
"encoding/json"
import (
"encoding/json"
- "fmt"
"log"
"net/http"
"sync"
"log"
"net/http"
"sync"
+ "time"
"git.curoverse.com/arvados.git/sdk/go/arvados"
"golang.org/x/net/websocket"
"git.curoverse.com/arvados.git/sdk/go/arvados"
"golang.org/x/net/websocket"
@@
-37,22
+37,36
@@
func (rtr *router) makeServer(newSession func(wsConn, arvados.Client) (session,
return nil
},
Handler: websocket.Handler(func(ws *websocket.Conn) {
return nil
},
Handler: websocket.Handler(func(ws *websocket.Conn) {
- log.Printf("%v accepted", ws.Request().RemoteAddr)
sink := rtr.eventSource.NewSink()
handler.Handle(ws, sink.Channel())
sink.Stop()
ws.Close()
sink := rtr.eventSource.NewSink()
handler.Handle(ws, sink.Channel())
sink.Stop()
ws.Close()
- log.Printf("%v disconnected", ws.Request().RemoteAddr)
}),
}
}
func (rtr *router) ServeHTTP(resp http.ResponseWriter, req *http.Request) {
rtr.setupOnce.Do(rtr.setup)
}),
}
}
func (rtr *router) ServeHTTP(resp http.ResponseWriter, req *http.Request) {
rtr.setupOnce.Do(rtr.setup)
+ t0 := time.Now()
+ reqLog(map[string]interface{}{
+ "Connect": req.RemoteAddr,
+ "RemoteAddr": req.RemoteAddr,
+ "X-Forwarded-For": req.Header.Get("X-Forwarded-For"),
+ "Time": t0.UTC(),
+ })
rtr.mux.ServeHTTP(resp, req)
rtr.mux.ServeHTTP(resp, req)
- j, err := json.Marshal(map[string]interface{}{
- "req": fmt.Sprintf("%+v", req),
+ t1 := time.Now()
+ reqLog(map[string]interface{}{
+ "Disconnect": req.RemoteAddr,
+ "RemoteAddr": req.RemoteAddr,
+ "X-Forwarded-For": req.Header.Get("X-Forwarded-For"),
+ "Time": t1.UTC(),
+ "Elapsed": time.Now().Sub(t0).Seconds(),
})
})
+}
+
+func reqLog(m map[string]interface{}) {
+ j, err := json.Marshal(m)
if err != nil {
log.Fatal(err)
}
if err != nil {
log.Fatal(err)
}