Skip to content

Commit 94563ef

Browse files
committed
defer collect stats
1 parent a032f8a commit 94563ef

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

coderd/workspaceapps/proxy.go

+9-6
Original file line numberDiff line numberDiff line change
@@ -594,11 +594,13 @@ func (s *Server) proxyWorkspaceApp(rw http.ResponseWriter, r *http.Request, appT
594594

595595
report := newStatsReportFromSignedToken(appToken)
596596
s.collectStats(report)
597+
defer func() {
598+
// We must use defer here because ServeHTTP may panic.
599+
report.SessionEndedAt = database.Now()
600+
s.collectStats(report)
601+
}()
597602

598603
proxy.ServeHTTP(rw, r)
599-
600-
report.SessionEndedAt = database.Now()
601-
s.collectStats(report)
602604
}
603605

604606
// workspaceAgentPTY spawns a PTY and pipes it over a WebSocket.
@@ -693,12 +695,13 @@ func (s *Server) workspaceAgentPTY(rw http.ResponseWriter, r *http.Request) {
693695

694696
report := newStatsReportFromSignedToken(*appToken)
695697
s.collectStats(report)
698+
defer func() {
699+
report.SessionEndedAt = database.Now()
700+
s.collectStats(report)
701+
}()
696702

697703
agentssh.Bicopy(ctx, wsNetConn, ptNetConn)
698704
log.Debug(ctx, "pty Bicopy finished")
699-
700-
report.SessionEndedAt = database.Now()
701-
s.collectStats(report)
702705
}
703706

704707
func (s *Server) collectStats(stats StatsReport) {

0 commit comments

Comments
 (0)