@@ -20,6 +20,7 @@ import (
20
20
"cdr.dev/slog"
21
21
"cdr.dev/slog/sloggers/slogtest"
22
22
23
+ agentproto "github.com/coder/coder/v2/agent/proto"
23
24
"github.com/coder/coder/v2/coderd/agentmetrics"
24
25
"github.com/coder/coder/v2/coderd/batchstats"
25
26
"github.com/coder/coder/v2/coderd/coderdtest"
@@ -415,36 +416,45 @@ func TestAgentStats(t *testing.T) {
415
416
416
417
user := coderdtest .CreateFirstUser (t , client )
417
418
418
- agent1 := prepareWorkspaceAndAgent (t , client , user , 1 )
419
- agent2 := prepareWorkspaceAndAgent (t , client , user , 2 )
420
- agent3 := prepareWorkspaceAndAgent (t , client , user , 3 )
419
+ agent1 := prepareWorkspaceAndAgent (ctx , t , client , user , 1 )
420
+ agent2 := prepareWorkspaceAndAgent (ctx , t , client , user , 2 )
421
+ agent3 := prepareWorkspaceAndAgent (ctx , t , client , user , 3 )
422
+ defer agent1 .DRPCConn ().Close ()
423
+ defer agent2 .DRPCConn ().Close ()
424
+ defer agent3 .DRPCConn ().Close ()
421
425
422
426
registry := prometheus .NewRegistry ()
423
427
424
428
// given
425
429
var i int64
426
430
for i = 0 ; i < 3 ; i ++ {
427
- _ , err = agent1 .PostStats (ctx , & agentsdk.Stats {
428
- TxBytes : 1 + i , RxBytes : 2 + i ,
429
- SessionCountVSCode : 3 + i , SessionCountJetBrains : 4 + i , SessionCountReconnectingPTY : 5 + i , SessionCountSSH : 6 + i ,
430
- ConnectionCount : 7 + i , ConnectionMedianLatencyMS : 8000 ,
431
- ConnectionsByProto : map [string ]int64 {"TCP" : 1 },
431
+ _ , err = agent1 .UpdateStats (ctx , & agentproto.UpdateStatsRequest {
432
+ Stats : & agentproto.Stats {
433
+ TxBytes : 1 + i , RxBytes : 2 + i ,
434
+ SessionCountVscode : 3 + i , SessionCountJetbrains : 4 + i , SessionCountReconnectingPty : 5 + i , SessionCountSsh : 6 + i ,
435
+ ConnectionCount : 7 + i , ConnectionMedianLatencyMs : 8000 ,
436
+ ConnectionsByProto : map [string ]int64 {"TCP" : 1 },
437
+ },
432
438
})
433
439
require .NoError (t , err )
434
440
435
- _ , err = agent2 .PostStats (ctx , & agentsdk.Stats {
436
- TxBytes : 2 + i , RxBytes : 4 + i ,
437
- SessionCountVSCode : 6 + i , SessionCountJetBrains : 8 + i , SessionCountReconnectingPTY : 10 + i , SessionCountSSH : 12 + i ,
438
- ConnectionCount : 8 + i , ConnectionMedianLatencyMS : 10000 ,
439
- ConnectionsByProto : map [string ]int64 {"TCP" : 1 },
441
+ _ , err = agent2 .UpdateStats (ctx , & agentproto.UpdateStatsRequest {
442
+ Stats : & agentproto.Stats {
443
+ TxBytes : 2 + i , RxBytes : 4 + i ,
444
+ SessionCountVscode : 6 + i , SessionCountJetbrains : 8 + i , SessionCountReconnectingPty : 10 + i , SessionCountSsh : 12 + i ,
445
+ ConnectionCount : 8 + i , ConnectionMedianLatencyMs : 10000 ,
446
+ ConnectionsByProto : map [string ]int64 {"TCP" : 1 },
447
+ },
440
448
})
441
449
require .NoError (t , err )
442
450
443
- _ , err = agent3 .PostStats (ctx , & agentsdk.Stats {
444
- TxBytes : 3 + i , RxBytes : 6 + i ,
445
- SessionCountVSCode : 12 + i , SessionCountJetBrains : 14 + i , SessionCountReconnectingPTY : 16 + i , SessionCountSSH : 18 + i ,
446
- ConnectionCount : 9 + i , ConnectionMedianLatencyMS : 12000 ,
447
- ConnectionsByProto : map [string ]int64 {"TCP" : 1 },
451
+ _ , err = agent3 .UpdateStats (ctx , & agentproto.UpdateStatsRequest {
452
+ Stats : & agentproto.Stats {
453
+ TxBytes : 3 + i , RxBytes : 6 + i ,
454
+ SessionCountVscode : 12 + i , SessionCountJetbrains : 14 + i , SessionCountReconnectingPty : 16 + i , SessionCountSsh : 18 + i ,
455
+ ConnectionCount : 9 + i , ConnectionMedianLatencyMs : 12000 ,
456
+ ConnectionsByProto : map [string ]int64 {"TCP" : 1 },
457
+ },
448
458
})
449
459
require .NoError (t , err )
450
460
}
@@ -596,7 +606,7 @@ func TestExperimentsMetric(t *testing.T) {
596
606
}
597
607
}
598
608
599
- func prepareWorkspaceAndAgent (t * testing.T , client * codersdk.Client , user codersdk.CreateFirstUserResponse , workspaceNum int ) * agentsdk. Client {
609
+ func prepareWorkspaceAndAgent (ctx context. Context , t * testing.T , client * codersdk.Client , user codersdk.CreateFirstUserResponse , workspaceNum int ) agentproto. DRPCAgentClient {
600
610
authToken := uuid .NewString ()
601
611
602
612
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
@@ -611,9 +621,12 @@ func prepareWorkspaceAndAgent(t *testing.T, client *codersdk.Client, user coders
611
621
})
612
622
coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace .LatestBuild .ID )
613
623
614
- agentClient := agentsdk .New (client .URL )
615
- agentClient .SetSessionToken (authToken )
616
- return agentClient
624
+ ac := agentsdk .New (client .URL )
625
+ ac .SetSessionToken (authToken )
626
+ conn , err := ac .ConnectRPC (ctx )
627
+ require .NoError (t , err )
628
+ agentAPI := agentproto .NewDRPCAgentClient (conn )
629
+ return agentAPI
617
630
}
618
631
619
632
var (
0 commit comments