Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit438d3a9

Browse files
committed
fix dbmem query logic
1 parent3b719f8 commit438d3a9

File tree

1 file changed

+32
-24
lines changed

1 file changed

+32
-24
lines changed

‎coderd/database/dbmem/dbmem.go

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4300,27 +4300,44 @@ func (q *FakeQuerier) GetUserLatencyInsights(_ context.Context, arg database.Get
43004300
q.mutex.RLock()
43014301
deferq.mutex.RUnlock()
43024302

4303+
/*
4304+
SELECT
4305+
tus.user_id,
4306+
u.username,
4307+
u.avatar_url,
4308+
array_agg(DISTINCT tus.template_id)::uuid[] AS template_ids,
4309+
COALESCE((PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY tus.median_latency_ms)), -1)::float AS workspace_connection_latency_50,
4310+
COALESCE((PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY tus.median_latency_ms)), -1)::float AS workspace_connection_latency_95
4311+
FROM
4312+
template_usage_stats tus
4313+
JOIN
4314+
users u
4315+
ON
4316+
u.id = tus.user_id
4317+
WHERE
4318+
tus.start_time >= @start_time::timestamptz
4319+
AND tus.end_time <= @end_time::timestamptz
4320+
AND CASE WHEN COALESCE(array_length(@template_ids::uuid[], 1), 0) > 0 THEN tus.template_id = ANY(@template_ids::uuid[]) ELSE TRUE END
4321+
GROUP BY
4322+
tus.user_id, u.username, u.avatar_url
4323+
ORDER BY
4324+
tus.user_id ASC;
4325+
*/
4326+
43034327
latenciesByUserID:=make(map[uuid.UUID][]float64)
4304-
seenTemplatesByUserID:=make(map[uuid.UUID]map[uuid.UUID]struct{})
4305-
for_,s:=rangeq.workspaceAgentStats {
4306-
iflen(arg.TemplateIDs)>0&&!slices.Contains(arg.TemplateIDs,s.TemplateID) {
4307-
continue
4308-
}
4309-
if!arg.StartTime.Equal(s.CreatedAt)&& (s.CreatedAt.Before(arg.StartTime)||s.CreatedAt.After(arg.EndTime)) {
4310-
continue
4311-
}
4312-
ifs.ConnectionCount==0 {
4328+
seenTemplatesByUserID:=make(map[uuid.UUID][]uuid.UUID)
4329+
for_,stat:=rangeq.templateUsageStats {
4330+
ifstat.StartTime.Before(arg.StartTime)||stat.EndTime.After(arg.EndTime) {
43134331
continue
43144332
}
4315-
ifs.ConnectionMedianLatencyMS<=0 {
4333+
iflen(arg.TemplateIDs)>0&&!slices.Contains(arg.TemplateIDs,stat.TemplateID) {
43164334
continue
43174335
}
43184336

4319-
latenciesByUserID[s.UserID]=append(latenciesByUserID[s.UserID],s.ConnectionMedianLatencyMS)
4320-
ifseenTemplatesByUserID[s.UserID]==nil {
4321-
seenTemplatesByUserID[s.UserID]=make(map[uuid.UUID]struct{})
4337+
ifstat.MedianLatencyMs.Valid {
4338+
latenciesByUserID[stat.UserID]=append(latenciesByUserID[stat.UserID],stat.MedianLatencyMs.Float64)
43224339
}
4323-
seenTemplatesByUserID[s.UserID][s.TemplateID]=struct{}{}
4340+
seenTemplatesByUserID[stat.UserID]=uniqueSortedUUIDs(append(seenTemplatesByUserID[stat.UserID],stat.TemplateID))
43244341
}
43254342

43264343
tryPercentile:=func(fs []float64,pfloat64)float64 {
@@ -4333,15 +4350,6 @@ func (q *FakeQuerier) GetUserLatencyInsights(_ context.Context, arg database.Get
43334350

43344351
varrows []database.GetUserLatencyInsightsRow
43354352
foruserID,latencies:=rangelatenciesByUserID {
4336-
sort.Float64s(latencies)
4337-
templateIDSet:=seenTemplatesByUserID[userID]
4338-
templateIDs:=make([]uuid.UUID,0,len(templateIDSet))
4339-
fortemplateID:=rangetemplateIDSet {
4340-
templateIDs=append(templateIDs,templateID)
4341-
}
4342-
slices.SortFunc(templateIDs,func(a,b uuid.UUID)int {
4343-
returnslice.Ascending(a.String(),b.String())
4344-
})
43454353
user,err:=q.getUserByIDNoLock(userID)
43464354
iferr!=nil {
43474355
returnnil,err
@@ -4350,7 +4358,7 @@ func (q *FakeQuerier) GetUserLatencyInsights(_ context.Context, arg database.Get
43504358
UserID:userID,
43514359
Username:user.Username,
43524360
AvatarURL:user.AvatarURL,
4353-
TemplateIDs:templateIDs,
4361+
TemplateIDs:seenTemplatesByUserID[userID],
43544362
WorkspaceConnectionLatency50:tryPercentile(latencies,50),
43554363
WorkspaceConnectionLatency95:tryPercentile(latencies,95),
43564364
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp