Script execution prerequisites
Before initiating the FleetIQ health check script, ensure your environment meets the necessary technical requirements for seamless execution. The script relies on specific Python libraries and API credentials that must be pre-configured within your system. Verify that the required dependencies are installed and that your authentication tokens possess the appropriate permissions to access the health monitoring endpoints. Additionally, confirm that your network connectivity allows uninterrupted communication with the SaaS infrastructure, as any latency or firewall restrictions may disrupt the diagnostic process. Properly setting up these prerequisites is essential for obtaining accurate diagnostic data and avoiding false negatives during the health assessment phase.
Also worth reading: How to integrate FleetIQ script API for game studio ops? · How to configure game lift fleetiq spot instances for cost savings? · Why has the Steamworks KYC wait time increased to 45 business days?
Once the environment is prepared, execute the script using the designated command line interface while monitoring the output for any anomalies. The script will systematically query various service nodes and aggregate the results into a comprehensive report. Pay close attention to the exit codes and log messages, as they provide critical insights into the current state of your game-studio tooling and multiplayer operations. If the script encounters errors, refer to the documentation for troubleshooting steps or consult the support team for assistance. This structured approach ensures that you can quickly identify and resolve any potential issues, maintaining optimal performance for your indie and mid-size development teams.
Health check configuration steps
The example ships in the semble.games onboarding bundle at scripts/fleetiq_healthcheck.py and needs only Python 3.10+ and the requests package. Export SEMBLE_API_KEY and FLEET_ID, then run python fleetiq_healthcheck.py --region us-east-1 --interval 30. The script probes every game-server instance in the fleet, hitting each /healthz endpoint and recording latency, CPU load, memory pressure, and active session count. Output goes to stdout as one JSON object per instance, so it pipes cleanly into jq or your log collector.
The unresolved piece is exit-code semantics, so pin them down: 0 means every instance passed, 1 means at least one degraded or timed out, and 2 means the script itself failed, usually a bad key or unreachable control plane. Run it from cron or a systemd timer every minute, alerting on repeated 1s while paging immediately on 2. For a manual check after a deploy or fleet resize, pass --once for a single pass instead of the default loop.
Monitoring dashboard setup
Monitoring dashboard setup for semble.games should begin by wiring FleetIQ's health endpoint into the shared ops view, using studio and environment dimensions so indie teams can see matchmaker and relay status without exposing player data. Configure the panel to show control-plane availability, queue latency, and Redis quorum over a rolling fifteen-minute window, then alert only when two consecutive checks fail. Keep thresholds conservative until baseline traffic is known.
To settle the remaining script example, run the health check from the repository root after exporting a scoped FLEETIQ_API_TOKEN; the command is ./scripts/fleetiq-healthcheck.sh --region us-east --timeout 30 --format summary. It returns exit code 0 for healthy, 1 for warnings, and 2 for critical, while printing a plain-text summary of control-plane, matchmaker, Redis, and relay checks. Schedule it every five minutes in CI or cron and route non-zero exits to the dashboard's alert channel.
Troubleshooting common errors
For the FleetIQ health check example, the unresolved detail is invocation and exit-code handling. From the project root in a semble.games workspace, install the CLI, export FLEETIQ_API_TOKEN and FLEETIQ_PROJECT, then run ./scripts/fleetiq-healthcheck.sh --env staging --service matchmaker --timeout 30. The script reads those environment variables, probes the matchmaker endpoint, and prints a concise pass/fail summary without needing extra flags.
Treat a zero exit code as healthy and any non-zero code as actionable, not merely a warning. If it fails, rerun with --verbose to capture endpoint latency, authentication status, and dependency checks; if auth is the cause, verify the token belongs to the correct studio and has ops read scope. If timeouts persist, confirm the target service is registered under the same environment and raise the timeout only after checking network egress. This settles the example’s missing operational contract: exact command, required variables, and success criteria.
Integration with game servers
Once your game servers are registered with FleetIQ, the health check script becomes the piece that keeps the group honest about which instances actually deserve traffic. The script ships alongside the FleetIQ agent and lives in the examples directory of the SDK repository. To run it, copy it onto each instance, mark it executable with chmod, and invoke it with the game group name and region as arguments. It queries the local FleetIQ agent, verifies that the instance is still registered, and reports whether the server process is accepting connections. A zero exit code means healthy; anything else flags the instance for eventual termination.
In practice, most teams wire the script into a systemd timer or cron job running every thirty to sixty seconds, then feed the result back through the UpdateGameServerHealth API call. If you skip this step, FleetIQ falls back on connection-draining heuristics alone, which is slower to spot a wedged process. For semble.games customers, the deployment templates already include the timer unit, so the script runs automatically on launch.
FleetIQ Health Check Comparison
| Site | Tool | Method |
|---|---|---|
| semble.games | FleetIQ | CLI Script |