diff --git a/coderd/database/dbfake/databasefake.go b/coderd/database/dbfake/databasefake.go index 31754186eb076..841e2e082c204 100644 --- a/coderd/database/dbfake/databasefake.go +++ b/coderd/database/dbfake/databasefake.go @@ -453,7 +453,7 @@ func (q *fakeQuerier) GetTemplateDAUs(_ context.Context, arg database.GetTemplat continue } - date := as.CreatedAt.UTC().Add(time.Duration(arg.TzOffset) * time.Hour).Truncate(time.Hour * 24) + date := as.CreatedAt.UTC().Add(time.Duration(arg.TzOffset) * time.Hour * -1).Truncate(time.Hour * 24) dateEntry := seens[date] if dateEntry == nil { @@ -492,7 +492,7 @@ func (q *fakeQuerier) GetDeploymentDAUs(_ context.Context, tzOffset int32) ([]da if as.ConnectionCount == 0 { continue } - date := as.CreatedAt.UTC().Add(time.Duration(tzOffset) * time.Hour).Truncate(time.Hour * 24) + date := as.CreatedAt.UTC().Add(time.Duration(tzOffset) * -1 * time.Hour).Truncate(time.Hour * 24) dateEntry := seens[date] if dateEntry == nil { diff --git a/coderd/metricscache/metricscache_test.go b/coderd/metricscache/metricscache_test.go index 4bc6c445e7174..b7d3aa9eaf957 100644 --- a/coderd/metricscache/metricscache_test.go +++ b/coderd/metricscache/metricscache_test.go @@ -151,7 +151,7 @@ func TestCache_TemplateUsers(t *testing.T) { }, { name: "tzOffset", - tzOffset: -1, + tzOffset: 1, args: args{ rows: []database.InsertWorkspaceAgentStatParams{ statRow(zebra, dateH(2022, 1, 2, 1)), @@ -180,7 +180,7 @@ func TestCache_TemplateUsers(t *testing.T) { }, { name: "tzOffsetPreviousDay", - tzOffset: -6, + tzOffset: 6, args: args{ rows: []database.InsertWorkspaceAgentStatParams{ statRow(zebra, dateH(2022, 1, 2, 1)), diff --git a/site/src/api/api.ts b/site/src/api/api.ts index 1fc8ed56f9b50..897d474ebe2bb 100644 --- a/site/src/api/api.ts +++ b/site/src/api/api.ts @@ -831,8 +831,11 @@ export const getTemplateDAUs = async ( return response.data } -export const getDeploymentDAUs = async (): Promise => { - const response = await axios.get(`/api/v2/insights/daus`) +export const getDeploymentDAUs = async ( + // Default to user's local timezone + offset = new Date().getTimezoneOffset() / 60, +): Promise => { + const response = await axios.get(`/api/v2/insights/daus?tz_offset=${offset}`) return response.data } diff --git a/site/src/xServices/deploymentConfig/deploymentConfigMachine.ts b/site/src/xServices/deploymentConfig/deploymentConfigMachine.ts index 7c4fc4c074720..52ecc37223db9 100644 --- a/site/src/xServices/deploymentConfig/deploymentConfigMachine.ts +++ b/site/src/xServices/deploymentConfig/deploymentConfigMachine.ts @@ -64,7 +64,9 @@ export const deploymentConfigMachine = createMachine( { services: { getDeploymentValues: getDeploymentValues, - getDeploymentDAUs: getDeploymentDAUs, + getDeploymentDAUs: async () => { + return getDeploymentDAUs() + }, }, actions: { assignDeploymentValues: assign({