March was a big month for the Gameye platform. Two major features — warm pools and tags management — ship with this update alongside a rebuilt container details page, a significantly improved dashboard, and a handful of quality-of-life improvements that have been on the backlog for a while.
Here’s everything that landed.
Warm pools
Warm pools are the single biggest orchestrator change in this release. They let you maintain a standing reserve of pre-started sessions per application per region — sessions that are already running and waiting to be claimed the moment a match is found.
Without warm pools, every session start involves spinning up a new container from scratch. With warm pools, that startup time drops to near-zero: the session is already live, the container is already initialised, the server is already listening.
How it works:
- You set a pool size per application per region in the admin panel
- Gameye starts that many sessions and holds them in a warm state
- When a match is found and a session is claimed, the pool detects the slot opening and automatically starts a replacement — the pool stays full
- You can configure environment variables, arguments, and labels at the warm pool level; all sessions started by the pool inherit them
- If a sudden spike drains the pool entirely, Gameye falls back to standard on-demand session starts automatically — there’s no cliff edge
Warm pools are available now in the admin panel under your application settings.
Tags management
Previously, tags were synced automatically via a Docker Hub webhook — as soon as you pushed a new image or tag, it appeared in the admin panel. That worked, but it gave you no control over which builds were loaded and active at any given time.
The new tags page changes that. You now have a full list of every tag in your Docker Hub repository, and you can explicitly load or unload any of them into the admin panel on demand.
The most immediate use case is QA. If you have a team testing multiple builds in parallel, they can:
- Go to the tags page
- Select the specific build they want to test
- Wait for it to load
- Start sessions against it
- Move to the next build when done
No more having stale tags cluttering your session start flow, and no more needing to coordinate with engineering every time QA wants to test a different build.
Container details page
The admin panel now has a dedicated details page for every running container. It’s organised into three sections:
Container information — session ID, application, status, region, node pool, tags, and any associated labels. The full picture of what’s running and where.
Metrics — CPU usage, memory usage, bandwidth, and disk I/O, streamed directly from Elasticsearch. A datetime picker lets you navigate backwards through historical data, or pin to a specific window to compare against another time period.
Logs — live-streamable, searchable, and downloadable. If you’ve been jumping between the admin panel and a Kibana tab to look at logs, that’s no longer necessary for day-to-day work. For studios that need custom alerting or advanced Elasticsearch queries, Kibana access is still available — but most operational monitoring can now stay in the admin panel.
A fourth section showing container labels in full is in development and will be added shortly.
Dashboard overhaul
The main dashboard now uses the same datetime picker as the container details page. You can filter everything on screen by the last hour, last 24 hours, last month, or a custom range — and the whole dashboard updates accordingly.
At the top of the dashboard you’ll now see a summary bar showing:
- Containers currently running
- Peak concurrent containers in the selected period
- Total sessions started
- CPU allocation and peak CPU usage
- Memory allocation and peak memory usage
- Active warm sessions (from the warm pool)
External ID field
A new external_id field has been added to sessions. This is primarily useful for matchmaker integrations — if your matchmaker assigns its own internal ID to a match, you can pass that ID to Gameye at session creation and it will appear as a searchable column in both the active containers view and the container history.
Searching by external ID makes it significantly easier to trace a specific match from your matchmaker logs through to the Gameye session, without having to correlate UUIDs manually.
Smaller changes
Dark mode. The admin panel now supports both light and dark themes, toggleable from the UI.
io_uring support. The orchestrator now supports io_uring, Linux’s asynchronous I/O interface, improving I/O throughput on supported kernel versions.
UI cleanup. Several pages had columns removed that weren’t useful in practice, making the default views less noisy.
What’s coming next
A few features are in development and didn’t make this release — they’ll ship next month once they’ve moved through sandbox and production validation. We’ll cover them in the April update.
Questions about any of these changes? Reach out through the admin panel or ping us directly.