Sessions and server health
TelemetryWhat a session record holds, and what the heartbeat reports about each server.
The clip shows, in order:
- Each server sends a heartbeat.
- Online, TPS, MSPT and memory per server.
- Performance over time.
#What a session holds
A session is posted twice under the same sessionId: once when the player joins, with no quitAt or durationSeconds, and again when they leave, which completes the row with the whole visit.
| Field | Meaning |
|---|---|
| username, uuid, bedrockXuid | Who the player is |
| identityType | premium_java, cracked_java, or bedrock |
| premiumUuid | Only on a cracked_java session: the Mojang account behind a premium login, from nLogin or from the profile Mojang signed |
| hostname | The address they connected through |
| serverName | Which server recorded the session |
| joinedAt, quitAt, durationSeconds | When it ran and how long |
| authConfirmedAt, authenticated | Whether a login was confirmed |
| protocolVersion, clientBrand, clientVersion | The game version and client the player joined with |
| ipAddress | Read for the country, then kept only as a keyed hash |
| sessionId | Your own id, used to make a retry safe |
#Heartbeats
Every connector posts a heartbeat on a fixed interval, ten seconds by default. It reports the online count and memory use for that one server, and TPS and MSPT from a Paper server, and it is what the Health page reads.
A Velocity proxy has no tick loop, and Folia ticks every region on its own, so neither sends TPS or MSPT. Health shows Not available for them rather than a made up number.
A server that stops sending heartbeats is shown as stale rather than removed.
#Replays and duplicates
The spool retries, so the API has to be safe against a second copy of the same event. A session carrying a sessionId you have already sent is recognised as a replay and answered with 200 rather than being stored twice. A ban carrying a repeated eventId behaves the same way.
If the same id arrives with different contents, the API answers 409 instead of overwriting what it already has.
