Files
UnrealEngine/Engine/Source/Programs/Horde/Docs/Deployment/AgentSettings.md
2025-05-18 13:04:45 +08:00

7.0 KiB

Horde > Deployment > Agent > Agent.json (Agent)

Agent.json (Agent)

All Horde-specific settings are stored in a root object called Horde. Other .NET functionality may be configured using properties in the root of this file.

Name Description
serverProfiles string -> ServerProfile
Known servers to connect to
server string
The default server, unless overridden from the command line
name string
Name of agent to report as when connecting to server. By default, the computer's hostname will be used.
mode AgentMode
Mode of operation for the agent - For trusted agents in controlled environments (e.g., build farms). These agents handle all lease types and run exclusively Horde workloads.
- For low-trust workstations, uses interactive authentication (human logs in). These agents yield to non-Horde workloads and only support compute leases for remote execution.
installed boolean
Whether the server is running in 'installed' mode. In this mode, on Windows, the default data directory will use the common application data folder (C:\ProgramData\Epic\Horde), and configuration data will be read from here and the registry. This setting is overridden to false for local builds from appsettings.Local.json.
ephemeral boolean
Whether agent should register as being ephemeral. Doing so will not persist any long-lived data on the server and once disconnected it's assumed to have been deleted permanently. Ideal for short-lived agents, such as spot instances on AWS EC2.
workingDir DirectoryReference
Working directory for leases and jobs (i.e where files from Perforce will be checked out)
logsDir DirectoryReference
Directory where agent and lease logs are written
shareMountingEnabled boolean
Whether to mount the specified list of network shares
shares MountNetworkShare[]
List of network shares to mount
wineExecutablePath string
Path to Wine executable. If null, execution under Wine is disabled
containerEngineExecutablePath string
Path to container engine executable, such as /usr/bin/podman. If null, execution of compute workloads inside a container is disabled
writeStepOutputToLogger boolean
Whether to write step output to the logging device
enableAwsEc2Support boolean
Queries information about the current agent through the AWS EC2 interface
useLocalStorageClient boolean
Option to use a local storage client rather than connecting through the server. Primarily for convenience when debugging / iterating locally.
computeIp string
Incoming IP for listening for compute work. If not set, it will be automatically resolved.
computePort integer
Incoming port for listening for compute work. Needs to be tied with a lease. Set port to 0 to disable incoming compute requests.
openTelemetry OpenTelemetrySettings
Options for OpenTelemetry
enableTelemetry boolean
Whether to send telemetry back to Horde server
telemetryReportInterval integer
How often to report telemetry events to server in milliseconds
bundleCacheSize integer
Maximum size of the bundle cache, in megabytes.
cpuCount integer
Maximum number of logical CPU cores workloads should use Currently this is only provided as a hint and requires leases to respect this value as it's set via an env variable (UE_HORDE_CPU_COUNT).
cpuMultiplier number
CPU core multiplier applied to CPU core count setting For example, 32 CPU cores and a multiplier of 0.5 results in max 16 CPU usage.
properties string -> string
Key/value properties in addition to those set internally by the agent
adminEndpoints string[]
Listen addresses for the built-in HTTP admin/management server. Disabled when empty. If activated, it's recommended to bind only to localhost for security reasons. Example: localhost:7008 to listen on localhost, port 7008
healthCheckEndpoints string[]
Listen addresses for the built-in HTTP health check server. Disabled when empty. If activated, it's recommended to bind only to localhost for security reasons. Example: *:7009 to listen on all interfaces/IPs, port 7009 If all interfaces are bound with *, make sure to run process as administrator.

ServerProfile

Information about a server to use

Name Description
name string
Name of this server profile
environment string
Name of the environment (currently just used for tracing)
url string
Url of the server
token string
Bearer token to use to initiate the connection
useInteractiveAuth boolean
Whether to authenticate interactively in a desktop environment (for example, when agent is running on a user's workstation)
thumbprint string
Thumbprint of a certificate to trust. Allows using self-signed certs for the server.
thumbprints string[]
Thumbprints of certificates to trust. Allows using self-signed certs for the server.

AgentMode (Enum)

Defines the operation mode of the agent Duplicated to prevent depending on Protobuf structures (weak name reference when deserializing JSON)

Name Description
Dedicated
Workstation

DirectoryReference

Representation of an absolute directory path. Allows fast hashing and comparisons.

Name Description
parentDirectory DirectoryReference
Gets the directory containing this object
fullName string
The path to this object. Stored as an absolute path, with O/S preferred separator characters, and no trailing slash for directories.

MountNetworkShare

Describes a network share to mount

Name Description
mountPoint string
Where the share should be mounted on the local machine. Must be a drive letter for Windows.
remotePath string
Path to the remote resource

OpenTelemetrySettings

OpenTelemetry configuration for collection and sending of traces and metrics.

Name Description
enabled boolean
Whether OpenTelemetry exporting is enabled
serviceName string
Service name
serviceNamespace string
Service namespace
serviceVersion string
Service version
enableDatadogCompatibility boolean
Whether to enrich and format telemetry to fit presentation in Datadog
attributes string -> string
Extra attributes to set
enableConsoleExporter boolean
Whether to enable the console exporter (for debugging purposes)
protocolExporters string -> OpenTelemetryProtocolExporterSettings
Protocol exporters (key is a unique and arbitrary name)

OpenTelemetryProtocolExporterSettings

Configuration for an OpenTelemetry exporter

Name Description
endpoint string
Endpoint URL. Usually differs depending on protocol used.
protocol string
Protocol for the exporter ('grpc' or 'httpprotobuf')