Skip to content

Commit 0740ab0

Browse files
committed
REVAMP — backend tests work
1 parent 4b285fa commit 0740ab0

15 files changed

+198
-173
lines changed

coderd/coderd.go

+1-7
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ func New(options *Options) *API {
272272
apiKeyMiddleware,
273273
httpmw.ExtractTemplateParam(options.Database),
274274
)
275-
275+
r.Get("/daus", api.templateDAUs)
276276
r.Get("/", api.template)
277277
r.Delete("/", api.deleteTemplate)
278278
r.Patch("/", api.patchTemplateMeta)
@@ -368,12 +368,6 @@ func New(options *Options) *API {
368368
r.Use(httpmw.ExtractWorkspaceAgent(options.Database))
369369
r.Get("/report-agent-stats", api.workspaceAgentReportStats)
370370
})
371-
r.Group(func(r chi.Router) {
372-
r.Use(
373-
apiKeyMiddleware,
374-
)
375-
r.Get("/daus", api.metricsDAUs)
376-
})
377371
})
378372
r.Route("/workspaceagents", func(r chi.Router) {
379373
r.Post("/azure-instance-identity", api.postWorkspaceAuthAzureInstanceIdentity)

coderd/database/databasefake/databasefake.go

+9-4
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ func (q *fakeQuerier) AcquireProvisionerJob(_ context.Context, arg database.Acqu
137137
}
138138
return database.ProvisionerJob{}, sql.ErrNoRows
139139
}
140-
func (_ *fakeQuerier) DeleteOldAgentStats(_ context.Context) error {
140+
func (*fakeQuerier) DeleteOldAgentStats(_ context.Context) error {
141141
// no-op
142142
return nil
143143
}
@@ -153,18 +153,23 @@ func (q *fakeQuerier) InsertAgentStat(_ context.Context, p database.InsertAgentS
153153
AgentID: p.AgentID,
154154
UserID: p.UserID,
155155
Payload: p.Payload,
156+
TemplateID: p.TemplateID,
156157
}
157158
q.agentStats = append(q.agentStats, stat)
158159
return stat, nil
159160
}
160161

161-
func (q *fakeQuerier) GetDAUsFromAgentStats(_ context.Context) ([]database.GetDAUsFromAgentStatsRow, error) {
162+
func (q *fakeQuerier) GetTemplateDAUs(_ context.Context, templateID uuid.UUID) ([]database.GetTemplateDAUsRow, error) {
162163
q.mutex.Lock()
163164
defer q.mutex.Unlock()
164165

165166
counts := make(map[time.Time]map[string]struct{})
166167

167168
for _, as := range q.agentStats {
169+
if as.TemplateID != templateID {
170+
continue
171+
}
172+
168173
date := as.CreatedAt.Truncate(time.Hour * 24)
169174
dateEntry := counts[date]
170175
if dateEntry == nil {
@@ -180,9 +185,9 @@ func (q *fakeQuerier) GetDAUsFromAgentStats(_ context.Context) ([]database.GetDA
180185
return countKeys[i].Before(countKeys[j])
181186
})
182187

183-
var rs []database.GetDAUsFromAgentStatsRow
188+
var rs []database.GetTemplateDAUsRow
184189
for _, key := range countKeys {
185-
rs = append(rs, database.GetDAUsFromAgentStatsRow{
190+
rs = append(rs, database.GetTemplateDAUsRow{
186191
Date: key,
187192
Daus: int64(len(counts[key])),
188193
})

coderd/database/dump.sql

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/migrations/000042_agent_stats.up.sql

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ CREATE TABLE agent_stats (
55
user_id uuid NOT NULL,
66
agent_id uuid NOT NULL,
77
workspace_id uuid NOT NULL,
8+
template_id uuid NOT NULL,
89
payload jsonb NOT NULL
910
);
1011

coderd/database/models.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

+12-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/agentstats.sql

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,20 @@ INSERT INTO
55
created_at,
66
user_id,
77
workspace_id,
8+
template_id,
89
agent_id,
910
payload
1011
)
1112
VALUES
12-
($1, $2, $3, $4, $5, $6) RETURNING *;
13+
($1, $2, $3, $4, $5, $6, $7) RETURNING *;
1314

14-
-- name: GetDAUsFromAgentStats :many
15+
-- name: GetTemplateDAUs :many
1516
select
1617
(created_at at TIME ZONE 'UTC')::date as date,
1718
count(distinct(user_id)) as daus
1819
from
1920
agent_stats
21+
where template_id = $1
2022
group by
2123
date
2224
order by

coderd/metrics.go

+1-13
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,9 @@ import (
1414
"github.com/coder/coder/coderd/database"
1515
"github.com/coder/coder/coderd/httpapi"
1616
"github.com/coder/coder/coderd/httpmw"
17-
"github.com/coder/coder/coderd/rbac"
1817
"github.com/coder/coder/codersdk"
1918
)
2019

21-
func (api *API) metricsDAUs(rw http.ResponseWriter, r *http.Request) {
22-
if !api.Authorize(r, rbac.ActionRead, rbac.ResourceUser) {
23-
httpapi.Forbidden(rw)
24-
return
25-
}
26-
resp := api.metricsCache.DAUs()
27-
if resp.Entries == nil {
28-
resp.Entries = []codersdk.DAUEntry{}
29-
}
30-
httpapi.Write(rw, http.StatusOK, resp)
31-
}
32-
3320
func (api *API) workspaceAgentReportStats(rw http.ResponseWriter, r *http.Request) {
3421
api.websocketWaitMutex.Lock()
3522
api.websocketWaitGroup.Add(1)
@@ -130,6 +117,7 @@ func (api *API) workspaceAgentReportStats(rw http.ResponseWriter, r *http.Reques
130117
AgentID: workspaceAgent.ID,
131118
WorkspaceID: build.WorkspaceID,
132119
UserID: workspace.OwnerID,
120+
TemplateID: workspace.TemplateID,
133121
Payload: json.RawMessage(repJSON),
134122
})
135123
if err != nil {

coderd/metrics_test.go

-117
This file was deleted.

0 commit comments

Comments
 (0)