Documentation
¶
Index ¶
- Constants
- Variables
- func PrometheusMetricsHandler(prometheusRegistry *prometheus.Registry, logger slog.Logger) http.Handler
- func WorkspaceKeySeed(workspaceID uuid.UUID, agentName string) (int64, error)
- type Agent
- type Client
- type LSFile
- type LSRelativity
- type LSRequest
- type LSResponse
- type Options
- type PostWorkspaceAgentAppHealth
- type WorkspaceAppHealthReporter
Constants ¶
const ( ProtocolReconnectingPTY = "reconnecting-pty" ProtocolSSH = "ssh" ProtocolDial = "dial" )
const ( EnvProcPrioMgmt = "CODER_PROC_PRIO_MGMT" EnvProcOOMScore = "CODER_PROC_OOM_SCORE" )
EnvProcPrioMgmt determines whether we attempt to manage process CPU and OOM Killer priority.
const EnvAgentSubsystem = "CODER_AGENT_SUBSYSTEM"
EnvAgentSubsystem is the environment variable used to denote the specialized environment in which the agent is running (e.g. envbox, envbuilder).
Variables ¶
var WindowsDriveRegex = regexp.MustCompile(`^[a-zA-Z]:\\$`)
Functions ¶
func PrometheusMetricsHandler ¶ added in v2.10.0
func WorkspaceKeySeed ¶ added in v2.20.0
WorkspaceKeySeed converts a WorkspaceID UUID and agent name to an int64 hash. This uses the FNV-1a hash algorithm which provides decent distribution and collision resistance for string inputs.
Types ¶
type Agent ¶
type Client ¶
type Client interface {
ConnectRPC24(ctx context.Context) (
proto.DRPCAgentClient24, tailnetproto.DRPCTailnetClient24, error,
)
RewriteDERPMap(derpMap *tailcfg.DERPMap)
}
type LSRelativity ¶ added in v2.21.0
type LSRelativity string
const ( LSRelativityRoot LSRelativity = "root" LSRelativityHome LSRelativity = "home" )
type LSRequest ¶ added in v2.21.0
type LSRequest struct {
// e.g. [], ["repos", "coder"],
Path []string `json:"path"`
// Whether the supplied path is relative to the user's home directory,
// or the root directory.
Relativity LSRelativity `json:"relativity"`
}
type LSResponse ¶ added in v2.21.0
type LSResponse struct {
AbsolutePath []string `json:"absolute_path"`
// Returned so clients can display the full path to the user, and
// copy it to configure file sync
// e.g. Windows: "C:\\Users\\coder"
// Linux: "/home/coder"
AbsolutePathString string `json:"absolute_path_string"`
Contents []LSFile `json:"contents"`
}
type Options ¶
type Options struct {
Filesystem afero.Fs
LogDir string
TempDir string
ScriptDataDir string
ExchangeToken func(ctx context.Context) (string, error)
Client Client
ReconnectingPTYTimeout time.Duration
EnvironmentVariables map[string]string
Logger slog.Logger
IgnorePorts map[int]string
PortCacheDuration time.Duration
SSHMaxTimeout time.Duration
TailnetListenPort uint16
Subsystems []codersdk.AgentSubsystem
PrometheusRegistry *prometheus.Registry
ReportMetadataInterval time.Duration
ServiceBannerRefreshInterval time.Duration
BlockFileTransfer bool
Execer agentexec.Execer
ContainerLister agentcontainers.Lister
ExperimentalDevcontainersEnabled bool
}
type PostWorkspaceAgentAppHealth ¶
type PostWorkspaceAgentAppHealth func(context.Context, agentsdk.PostAppHealthsRequest) error
PostWorkspaceAgentAppHealth updates the workspace app health.
type WorkspaceAppHealthReporter ¶
WorkspaceAppHealthReporter is a function that checks and reports the health of the workspace apps until the passed context is canceled.
func NewAppHealthReporterWithClock ¶ added in v2.13.0
func NewAppHealthReporterWithClock( logger slog.Logger, apps []codersdk.WorkspaceApp, postWorkspaceAgentAppHealth PostWorkspaceAgentAppHealth, clk quartz.Clock, ) WorkspaceAppHealthReporter
NewAppHealthReporterWithClock is only called directly by test code. Product code should call NewAppHealthReporter.
func NewWorkspaceAppHealthReporter ¶
func NewWorkspaceAppHealthReporter(logger slog.Logger, apps []codersdk.WorkspaceApp, postWorkspaceAgentAppHealth PostWorkspaceAgentAppHealth) WorkspaceAppHealthReporter
NewWorkspaceAppHealthReporter creates a WorkspaceAppHealthReporter that reports app health to coderd.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
acmock
Package acmock is a generated GoMock package.
|
Package acmock is a generated GoMock package. |
|
dcspec
Code generated by dcspec/gen.sh.
|
Code generated by dcspec/gen.sh. |
|
cmdtest
command
|
|
|
Package reaper contains logic for reaping subprocesses.
|
Package reaper contains logic for reaping subprocesses. |