MCPcopy Index your code
hub / github.com/coder/coder / startAgentYamuxMonitor

Method startAgentYamuxMonitor

coderd/workspaceagentsrpc.go:245–273  ·  view source on GitHub ↗
(ctx context.Context,
	workspace database.Workspace,
	workspaceAgent database.WorkspaceAgent,
	workspaceBuild database.WorkspaceBuild,
	mux *yamux.Session,
)

Source from the content-addressed store, hash-verified

243}
244
245func (api *API) startAgentYamuxMonitor(ctx context.Context,
246 workspace database.Workspace,
247 workspaceAgent database.WorkspaceAgent,
248 workspaceBuild database.WorkspaceBuild,
249 mux *yamux.Session,
250) *agentConnectionMonitor {
251 monitor := &agentConnectionMonitor{
252 apiCtx: api.ctx,
253 workspace: workspace,
254 workspaceAgent: workspaceAgent,
255 workspaceBuild: workspaceBuild,
256
257 conn: &yamuxPingerCloser{mux: mux},
258 pingPeriod: api.AgentConnectionUpdateFrequency,
259 db: api.Database,
260 replicaID: api.ID,
261 updater: api,
262 disconnectTimeout: api.AgentInactiveDisconnectTimeout,
263 metrics: api.workspaceAgentRPCMetrics,
264 logger: api.Logger.With(
265 slog.F("workspace_id", workspaceBuild.WorkspaceID),
266 slog.F("agent_id", workspaceAgent.ID),
267 ),
268 }
269 monitor.init()
270 monitor.start(ctx)
271
272 return monitor
273}
274
275type workspaceUpdater interface {
276 publishWorkspaceUpdate(ctx context.Context, ownerID uuid.UUID, event wspubsub.WorkspaceEvent)

Callers 1

workspaceAgentRPCMethod · 0.95

Calls 2

initMethod · 0.95
startMethod · 0.95

Tested by

no test coverage detected