From 7e357e1636b9c23782a08c81bee4ab6a1180065e Mon Sep 17 00:00:00 2001 From: Marwan Sulaiman Date: Tue, 21 May 2024 13:34:27 -0400 Subject: [PATCH] tsweb: rename AccessLogRecord's When to Time This change makes our access log record more consistent with the new log/tslog package formatting of "time". Note that we can change slog itself to call "time" "when" but we're chosing to make this breaking change to be consistent with the std lib's defaults. Updates tailscale/corp#17071 Signed-off-by: Marwan Sulaiman --- tsweb/log.go | 6 +++--- tsweb/tsweb.go | 4 ++-- tsweb/tsweb_test.go | 42 +++++++++++++++++++++--------------------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/tsweb/log.go b/tsweb/log.go index 914e247f1..51f95e95f 100644 --- a/tsweb/log.go +++ b/tsweb/log.go @@ -12,7 +12,7 @@ import ( // AccessLogRecord is a record of one HTTP request served. type AccessLogRecord struct { // Timestamp at which request processing started. - When time.Time `json:"when"` + Time time.Time `json:"time"` // Time it took to finish processing the request. It does not // include the entire lifetime of the underlying connection in // cases like connection hijacking, only the lifetime of the HTTP @@ -55,8 +55,8 @@ type AccessLogRecord struct { // String returns m as a JSON string. func (m AccessLogRecord) String() string { - if m.When.IsZero() { - m.When = time.Now() + if m.Time.IsZero() { + m.Time = time.Now() } var buf strings.Builder json.NewEncoder(&buf).Encode(m) diff --git a/tsweb/tsweb.go b/tsweb/tsweb.go index ad9f90eb3..d3bdaefe5 100644 --- a/tsweb/tsweb.go +++ b/tsweb/tsweb.go @@ -299,7 +299,7 @@ type retHandler struct { // ServeHTTP implements the http.Handler interface. func (h retHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { msg := AccessLogRecord{ - When: h.opts.Now(), + Time: h.opts.Now(), RemoteAddr: r.RemoteAddr, Proto: r.Proto, TLS: r.TLS != nil, @@ -371,7 +371,7 @@ func (h retHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { lw.code = 200 } - msg.Seconds = h.opts.Now().Sub(msg.When).Seconds() + msg.Seconds = h.opts.Now().Sub(msg.Time).Seconds() msg.Code = lw.code msg.Bytes = lw.bytes diff --git a/tsweb/tsweb_test.go b/tsweb/tsweb_test.go index 4f4f03aff..0f1d82114 100644 --- a/tsweb/tsweb_test.go +++ b/tsweb/tsweb_test.go @@ -87,7 +87,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/"), wantCode: 200, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", TLS: false, @@ -104,7 +104,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/"), wantCode: 200, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", TLS: false, @@ -121,7 +121,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 404, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -137,7 +137,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 404, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -153,7 +153,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 404, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -171,7 +171,7 @@ func TestStdHandler(t *testing.T) { r: req(RequestIDKey.WithValue(bgCtx, exampleRequestID), "http://example.com/foo"), wantCode: 404, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -190,7 +190,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 404, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -208,7 +208,7 @@ func TestStdHandler(t *testing.T) { r: req(RequestIDKey.WithValue(bgCtx, exampleRequestID), "http://example.com/foo"), wantCode: 404, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -227,7 +227,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 500, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -245,7 +245,7 @@ func TestStdHandler(t *testing.T) { r: req(RequestIDKey.WithValue(bgCtx, exampleRequestID), "http://example.com/foo"), wantCode: 500, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -264,7 +264,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 500, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -282,7 +282,7 @@ func TestStdHandler(t *testing.T) { r: req(RequestIDKey.WithValue(bgCtx, exampleRequestID), "http://example.com/foo"), wantCode: 500, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -301,7 +301,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 500, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -319,7 +319,7 @@ func TestStdHandler(t *testing.T) { r: req(RequestIDKey.WithValue(bgCtx, exampleRequestID), "http://example.com/foo"), wantCode: 500, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -338,7 +338,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 200, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -355,7 +355,7 @@ func TestStdHandler(t *testing.T) { r: req(RequestIDKey.WithValue(bgCtx, exampleRequestID), "http://example.com/foo"), wantCode: 200, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -373,7 +373,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 200, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -390,7 +390,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 200, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", Host: "example.com", @@ -412,7 +412,7 @@ func TestStdHandler(t *testing.T) { r: req(bgCtx, "http://example.com/foo"), wantCode: 200, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", @@ -432,7 +432,7 @@ func TestStdHandler(t *testing.T) { http.Error(w, e.Msg, 200) }, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", TLS: false, @@ -455,7 +455,7 @@ func TestStdHandler(t *testing.T) { http.Error(w, fmt.Sprintf("%s with request ID %s", e.Msg, requestID), 200) }, wantLog: AccessLogRecord{ - When: startTime, + Time: startTime, Seconds: 1.0, Proto: "HTTP/1.1", TLS: false,