Manual investigation
-
A node rejoins on the previous driver
-
Health checks pass and the node is scheduled
-
The job stalls when the full collective starts
-
The team compares hosts until the version mismatch appears
GPU clouds
Compare driver, CUDA, NCCL, kernel, firmware, and package state across the fleet. Find the node that does not match before a customer workload finds it for you.
Self-hosted · Open source · No per-node license
gpu-east · driver baseline
550.90.07 gpu-east-032 · 535.129.03 100s to 100,000s
Documented fleet scale
Self-hosted
Telemetry stays in your infrastructure
MIT licensed
Open source core with no per-node license
The failure pattern
Drivers, CUDA, NCCL, firmware, and kernel state all need to agree across a job. One value can drift while the node still looks healthy to your metrics and provisioning systems.
GPU telemetry tells you a node is idle, hot, or unhealthy. Provisioning tells you what it tried to push. Neither is a live inventory of the host.
See the drift checksManual investigation
A node rejoins on the previous driver
Health checks pass and the node is scheduled
The job stalls when the full collective starts
The team compares hosts until the version mismatch appears
With osctrl in the loop
The node enrolls into the right environment
A scheduled inventory query returns live state
The mismatched value lands in your existing data pipeline
Your scheduler or operator decides whether the node is admitted
What you can ask
osquery covers the host directly. GPU and fabric details come through custom tables you deploy alongside it. osctrl schedules, scopes, and collects both through the same control plane.
Package drift after partial upgrades
Runs against the standard Linux package inventory available in osquery.
SELECT s.hostname, p.name, p.version
FROM system_info s
JOIN deb_packages p
WHERE p.name LIKE 'cuda%'
OR p.name LIKE '%nccl%'; Stray drivers and debug leftovers
Uses the built-in Linux kernel_modules table.
SELECT s.hostname, k.name, k.status, k.used_by
FROM system_info s
JOIN kernel_modules k
WHERE k.name LIKE 'nvidia%'; Background work that competes with the job
Process inventory is available without a GPU-specific extension.
SELECT s.hostname, p.pid, p.name, p.path,
p.user_time, p.system_time
FROM system_info s
JOIN processes p
ORDER BY (p.user_time + p.system_time) DESC
LIMIT 25; The version mismatch behind a stalled collective
GPU stack details require an osquery extension. This is an illustrative schema, not a built-in osquery table.
SELECT hostname, driver_version,
cuda_version, nccl_version
FROM gpu_stack
WHERE driver_version != 'approved-version'; RMA returns and incomplete firmware rollouts
Firmware inventory requires a custom table backed by the tooling you already trust.
SELECT hostname, device, firmware_version
FROM accelerator_firmware
WHERE firmware_version != 'approved-version'; Fabric conditions that present as slow jobs
InfiniBand state requires a custom table. osctrl can schedule and scope the query once that table is deployed.
SELECT hostname, device, state, rate
FROM infiniband_ports
WHERE state != 'ACTIVE'
OR rate != 'expected-rate'; The distinction matters. osctrl does not create GPU data that the endpoint cannot expose. It gives your own tables the same fleet-wide execution, scope, and history as core osquery.
How it fits
osctrl supplies current state. Your scheduler, automation, or operator keeps ownership of the drain or admit decision.
Nodes enroll on boot with the environment secret included in your image process.
Use core tables for host state and your own extension tables for GPU and fabric details.
Compare live node state at the cadence that fits your maintenance and admission workflow.
Send results to Kafka, Splunk, S3, or another supported sink your automation already reads.
Node state and query results
Multi-tenant by design
Each environment has its own enrollment secret, node scope, configuration, and log routing. Operators work inside the environments their role permits.
production · us-east
reserved capacity
production · us-west
This is control-plane segmentation, not a promise that tenants receive their own portal. A reserved cluster can have a dedicated environment without exposing another customer's nodes or results in the same working scope.
Trust boundary
A GPU-cloud pilot should prove overhead on your image, query pack, and schedule. We will not publish a generic benchmark number before that test is repeatable.
Workload boundary
osquery reads operating-system state. osctrl does not instrument GPU kernels or your training code.
Resource boundary
Set query schedules and osquery resource controls around the workload profile you operate.
Data boundary
Run osctrl in your infrastructure and route telemetry to destinations you manage.
Action boundary
The node console is read-only and backed by osquery primitives instead of arbitrary command execution.
Built on osquery
MIT licensed osctrl core
Self-hosted data path
Start small
Keep the first test narrow. Enroll one environment, run the queries your team already needs, and measure the agent on a real workload before expanding.
Start with live query and the node console to compare host state across the affected environment.
Open the usage docsMap the image, environment, query pack, and result sink for a contained evaluation.
Plan the pilotReview the source, deployment model, and product boundaries before you involve the broader team.
Read the codeThe core is open source. Your agents, data, and query definitions remain yours whether or not a commercial engagement continues.