MCPcopy Create free account
hub / github.com/coder/coder / scaletestWorkspaceTraffic

Method scaletestWorkspaceTraffic

cli/exp_scaletest.go:1445–1688  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1443}
1444
1445func (r *RootCmd) scaletestWorkspaceTraffic() *serpent.Command {
1446 var (
1447 tickInterval time.Duration
1448 bytesPerTick int64
1449 ssh bool
1450 disableDirect bool
1451 app string
1452 workspaceProxyURL string
1453
1454 targetFlags = &workspaceTargetFlags{}
1455 tracingFlags = &scaletestTracingFlags{}
1456 strategy = &scaletestStrategyFlags{}
1457 cleanupStrategy = newScaletestCleanupStrategy()
1458 output = &scaletestOutputFlags{}
1459 prometheusFlags = &scaletestPrometheusFlags{}
1460 )
1461
1462 cmd := &serpent.Command{
1463 Use: "workspace-traffic",
1464 Short: "Generate traffic to scaletest workspaces through coderd",
1465 Handler: func(inv *serpent.Invocation) (err error) {
1466 client, err := r.InitClient(inv)
1467 if err != nil {
1468 return err
1469 }
1470
1471 ctx := inv.Context()
1472
1473 notifyCtx, stop := signal.NotifyContext(ctx, StopSignals...) // Checked later.
1474 defer stop()
1475 ctx = notifyCtx
1476
1477 me, err := RequireAdmin(ctx, client)
1478 if err != nil {
1479 return err
1480 }
1481
1482 reg := prometheus.NewRegistry()
1483 metrics := workspacetraffic.NewMetrics(reg, "username", "workspace_name", "agent_name")
1484
1485 logger := inv.Logger
1486 prometheusSrvClose := ServeHandler(ctx, logger, promhttp.HandlerFor(reg, promhttp.HandlerOpts{}), prometheusFlags.Address, "prometheus")
1487 defer prometheusSrvClose()
1488
1489 workspaces, err := targetFlags.getTargetedWorkspaces(ctx, client, me.OrganizationIDs, inv.Stdout)
1490 if err != nil {
1491 return err
1492 }
1493
1494 appHost, err := client.AppHost(ctx)
1495 if err != nil {
1496 return xerrors.Errorf("get app host: %w", err)
1497 }
1498
1499 tracerProvider, closeTracing, tracingEnabled, err := tracingFlags.provider(ctx)
1500 if err != nil {
1501 return xerrors.Errorf("create tracer provider: %w", err)
1502 }

Callers 1

scaletestCmdMethod · 0.95

Calls 15

InitClientMethod · 0.95
ReadMetricsMethod · 0.95
WriteMetricsMethod · 0.95
ValidateMethod · 0.95
AddRunMethod · 0.95
RunMethod · 0.95
ResultsMethod · 0.95
NewMetricsFunction · 0.92
NewTestHarnessFunction · 0.92
NewFunction · 0.92
WithHTTPClientFunction · 0.92
WithSessionTokenFunction · 0.92

Tested by

no test coverage detected