mirror of
https://github.com/coder/coder.git
synced 2025-07-15 22:20:27 +00:00
committed by
GitHub
parent
f3c707648c
commit
6fd9975aed
37
coderd/database/queries/workspaceappstats.sql
Normal file
37
coderd/database/queries/workspaceappstats.sql
Normal file
@ -0,0 +1,37 @@
|
||||
-- name: InsertWorkspaceAppStats :exec
|
||||
INSERT INTO
|
||||
workspace_app_stats (
|
||||
user_id,
|
||||
workspace_id,
|
||||
agent_id,
|
||||
access_method,
|
||||
slug_or_port,
|
||||
session_id,
|
||||
session_started_at,
|
||||
session_ended_at,
|
||||
requests
|
||||
)
|
||||
SELECT
|
||||
unnest(@user_id::uuid[]) AS user_id,
|
||||
unnest(@workspace_id::uuid[]) AS workspace_id,
|
||||
unnest(@agent_id::uuid[]) AS agent_id,
|
||||
unnest(@access_method::text[]) AS access_method,
|
||||
unnest(@slug_or_port::text[]) AS slug_or_port,
|
||||
unnest(@session_id::uuid[]) AS session_id,
|
||||
unnest(@session_started_at::timestamptz[]) AS session_started_at,
|
||||
unnest(@session_ended_at::timestamptz[]) AS session_ended_at,
|
||||
unnest(@requests::int[]) AS requests
|
||||
ON CONFLICT
|
||||
(user_id, agent_id, session_id)
|
||||
DO
|
||||
UPDATE SET
|
||||
session_ended_at = EXCLUDED.session_ended_at,
|
||||
requests = EXCLUDED.requests
|
||||
WHERE
|
||||
workspace_app_stats.user_id = EXCLUDED.user_id
|
||||
AND workspace_app_stats.agent_id = EXCLUDED.agent_id
|
||||
AND workspace_app_stats.session_id = EXCLUDED.session_id
|
||||
-- Since stats are updated in place as time progresses, we only
|
||||
-- want to update this row if it's fresh.
|
||||
AND workspace_app_stats.session_ended_at <= EXCLUDED.session_ended_at
|
||||
AND workspace_app_stats.requests <= EXCLUDED.requests;
|
Reference in New Issue
Block a user