ServerStatus
Live status and load/telemetry for one UDP game server (Buddy) in the fleet. Returned by serverWithLeastClients (which picks a low-load ReadyForClients server). Throughput metrics are per-second samples from the last reporting window and are null until first reported.
type ServerStatus {
serverId: ID!
ip4: String!
ip6: String!
clientPort: Int!
status: ServerState!
peers: Int!
clients: Int!
cpuPeakPct: Float
clientRecvMsgsPerSec: Float
clientRecvBytesPerSec: Float
clientSendMsgsPerSec: Float
clientSendBytesPerSec: Float
peerRecvMsgsPerSec: Float
peerRecvBytesPerSec: Float
peerSendMsgsPerSec: Float
peerSendBytesPerSec: Float
clientSendIndividualMsgsPerSec: Float
updatedAt: DateTime!
createdAt: DateTime!
}
Fields
ServerStatus.serverId ● ID! non-null scalar
Unique id of this game-server row in the fleet registry.
ServerStatus.ip4 ● String! non-null scalar
IPv4 address native clients send spatial UDP datagrams to (paired with clientPort). Preferred over ip6 for inter-host UDP in current deployments.
ServerStatus.ip6 ● String! non-null scalar
IPv6 address of the UDP game server. Global IPv6 between hosts can be unroutable in some deployments, so native clients generally use ip4 + clientPort.
ServerStatus.clientPort ● Int! non-null scalar
UDP port that native clients send spatial datagrams to (typically 9091). Browser clients do not use this directly — they reach the server through the UDP proxy / udpNotifications.
ServerStatus.status ● ServerState! non-null enum
Current lifecycle state of this server (see ServerState). Only ReadyForClients servers accept new clients.
ServerStatus.peers ● Int! non-null scalar
Number of peer (server-to-server P2P) connections this server currently holds.
ServerStatus.clients ● Int! non-null scalar
Number of game clients currently connected to this server. serverWithLeastClients uses this to balance load across the fleet.
ServerStatus.cpuPeakPct ● Float scalar
Peak CPU utilization percentage (0-100) observed in the last reporting window. Null until reported.
ServerStatus.clientRecvMsgsPerSec ● Float scalar
Messages per second received from clients in the last reporting window. Null until reported.
ServerStatus.clientRecvBytesPerSec ● Float scalar
Bytes per second received from clients in the last reporting window. Null until reported.
ServerStatus.clientSendMsgsPerSec ● Float scalar
Messages per second sent to clients in the last reporting window. Null until reported.
ServerStatus.clientSendBytesPerSec ● Float scalar
Bytes per second sent to clients in the last reporting window. Null until reported.
ServerStatus.peerRecvMsgsPerSec ● Float scalar
Messages per second received from peer servers (server-to-server P2P) in the last reporting window. Null until reported.
ServerStatus.peerRecvBytesPerSec ● Float scalar
Bytes per second received from peer servers (server-to-server P2P) in the last reporting window. Null until reported.
ServerStatus.peerSendMsgsPerSec ● Float scalar
Messages per second sent to peer servers (server-to-server P2P) in the last reporting window. Null until reported.
ServerStatus.peerSendBytesPerSec ● Float scalar
Bytes per second sent to peer servers (server-to-server P2P) in the last reporting window. Null until reported.
ServerStatus.clientSendIndividualMsgsPerSec ● Float scalar
Per-second rate of individually-addressed (single-actor) messages sent to clients in the last window, as opposed to spatial fan-out. Null until reported.
ServerStatus.updatedAt ● DateTime! non-null scalar
When this status row was last updated (server heartbeat). Use to judge how fresh the metrics/state are.
ServerStatus.createdAt ● DateTime! non-null scalar
When this server was first registered in the fleet.
Returned By
serverWithLeastClients query