@@ -2460,8 +2460,14 @@ func (q *FakeQuerier) GetDeploymentWorkspaceAgentUsageStats(_ context.Context, c
2460
2460
val , ok := sessions [agentStat .AgentID ]
2461
2461
if ! ok {
2462
2462
sessions [agentStat .AgentID ] = agentStat
2463
- } else if val .CreatedAt .Before ( agentStat .CreatedAt ) {
2463
+ } else if agentStat .CreatedAt .After ( val .CreatedAt ) {
2464
2464
sessions [agentStat .AgentID ] = agentStat
2465
+ } else if agentStat .CreatedAt .Truncate (time .Minute ).Equal (val .CreatedAt .Truncate (time .Minute )) {
2466
+ val .SessionCountVSCode += agentStat .SessionCountVSCode
2467
+ val .SessionCountJetBrains += agentStat .SessionCountJetBrains
2468
+ val .SessionCountReconnectingPTY += agentStat .SessionCountReconnectingPTY
2469
+ val .SessionCountSSH += agentStat .SessionCountSSH
2470
+ sessions [agentStat .AgentID ] = val
2465
2471
}
2466
2472
}
2467
2473
}
@@ -5752,6 +5758,7 @@ func (q *FakeQuerier) GetWorkspaceAgentUsageStats(_ context.Context, createdAt t
5752
5758
val .SessionCountJetBrains += agentStat .SessionCountJetBrains
5753
5759
val .SessionCountReconnectingPTY += agentStat .SessionCountReconnectingPTY
5754
5760
val .SessionCountSSH += agentStat .SessionCountSSH
5761
+ minuteBuckets [key ] = val
5755
5762
} else {
5756
5763
minuteBuckets [key ] = bucketRow {
5757
5764
GetWorkspaceAgentUsageStatsRow : database.GetWorkspaceAgentUsageStatsRow {
@@ -5815,12 +5822,19 @@ func (q *FakeQuerier) GetWorkspaceAgentUsageStatsAndLabels(_ context.Context, cr
5815
5822
if agentStat .CreatedAt .After (createdAt ) {
5816
5823
val , ok := latestAgentStats [key ]
5817
5824
if ! ok {
5818
- latestAgentStats [key ] = agentStat
5825
+ val = agentStat
5826
+ val .SessionCountJetBrains = 0
5827
+ val .SessionCountReconnectingPTY = 0
5828
+ val .SessionCountSSH = 0
5829
+ val .SessionCountVSCode = 0
5819
5830
} else {
5820
5831
val .RxBytes += agentStat .RxBytes
5821
5832
val .TxBytes += agentStat .TxBytes
5822
- latestAgentStats [key ] = val
5823
5833
}
5834
+ if agentStat .ConnectionMedianLatencyMS > maxConnMedianLatency {
5835
+ val .ConnectionMedianLatencyMS = agentStat .ConnectionMedianLatencyMS
5836
+ }
5837
+ latestAgentStats [key ] = val
5824
5838
}
5825
5839
// WHERE usage = true AND created_at > now() - '1 minute'::interval
5826
5840
// GROUP BY user_id, agent_id, workspace_id
@@ -5837,20 +5851,6 @@ func (q *FakeQuerier) GetWorkspaceAgentUsageStatsAndLabels(_ context.Context, cr
5837
5851
latestAgentStats [key ] = val
5838
5852
}
5839
5853
}
5840
- // SELECT
5841
- // agent_id,
5842
- // coalesce(MAX(connection_median_latency_ms), 0)::float AS connection_median_latency_ms
5843
- // FROM workspace_agent_stats
5844
- // GROUP BY user_id, agent_id, workspace_id
5845
- if agentStat .ConnectionMedianLatencyMS > maxConnMedianLatency {
5846
- val , ok := latestAgentStats [key ]
5847
- if ! ok {
5848
- latestAgentStats [key ] = agentStat
5849
- } else {
5850
- val .ConnectionMedianLatencyMS = agentStat .ConnectionMedianLatencyMS
5851
- latestAgentStats [key ] = val
5852
- }
5853
- }
5854
5854
}
5855
5855
5856
5856
stats := make ([]database.GetWorkspaceAgentUsageStatsAndLabelsRow , 0 , len (latestAgentStats ))
0 commit comments