Skip to content

Commit 5d7c409

Browse files
authored
fix: end long lived connection traces (#3679)
1 parent c9bce19 commit 5d7c409

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

coderd/workspaceagents.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/google/uuid"
1515
"github.com/hashicorp/yamux"
1616
"github.com/tabbed/pqtype"
17+
"go.opentelemetry.io/otel/trace"
1718
"golang.org/x/xerrors"
1819
"inet.af/netaddr"
1920
"nhooyr.io/websocket"
@@ -108,6 +109,10 @@ func (api *API) workspaceAgentDial(rw http.ResponseWriter, r *http.Request) {
108109
_ = conn.Close(websocket.StatusAbnormalClosure, err.Error())
109110
return
110111
}
112+
113+
// end span so we don't get long lived trace data
114+
trace.SpanFromContext(ctx).End()
115+
111116
err = peerbroker.ProxyListen(ctx, session, peerbroker.ProxyOptions{
112117
ChannelID: workspaceAgent.ID.String(),
113118
Logger: api.Logger.Named("peerbroker-proxy-dial"),
@@ -270,6 +275,9 @@ func (api *API) workspaceAgentListen(rw http.ResponseWriter, r *http.Request) {
270275
return
271276
}
272277

278+
// end span so we don't get long lived trace data
279+
trace.SpanFromContext(ctx).End()
280+
273281
api.Logger.Info(ctx, "accepting agent", slog.F("resource", resource), slog.F("agent", workspaceAgent))
274282

275283
ticker := time.NewTicker(api.AgentConnectionUpdateFrequency)
@@ -357,7 +365,8 @@ func (api *API) workspaceAgentTurn(rw http.ResponseWriter, r *http.Request) {
357365
}
358366

359367
ctx, wsNetConn := websocketNetConn(r.Context(), wsConn, websocket.MessageBinary)
360-
defer wsNetConn.Close() // Also closes conn.
368+
defer wsNetConn.Close() // Also closes conn.
369+
trace.SpanFromContext(ctx).End() // end span so we don't get long lived trace data
361370

362371
api.Logger.Debug(ctx, "accepting turn connection", slog.F("remote-address", r.RemoteAddr), slog.F("local-address", localAddress))
363372
select {
@@ -571,6 +580,9 @@ func (api *API) workspaceAgentWireguardListener(rw http.ResponseWriter, r *http.
571580
}
572581
defer subCancel()
573582

583+
// end span so we don't get long lived trace data
584+
trace.SpanFromContext(ctx).End()
585+
574586
// Wait for the connection to close or the client to send a message.
575587
//nolint:dogsled
576588
_, _, _ = conn.Reader(ctx)

0 commit comments

Comments
 (0)