| name | vastai-observability |
| description | Monitor Vast.ai GPU instance health, utilization, and costs.
Use when setting up monitoring dashboards, configuring alerts,
or tracking GPU utilization and spending.
Trigger with phrases like "vastai monitoring", "vastai metrics",
"vastai observability", "monitor vastai", "vastai alerts".
|
| allowed-tools | Read, Write, Edit, Bash(vastai:*), Bash(curl:*) |
| version | 1.11.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","vast-ai","monitoring","observability"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Vast.ai Observability
Overview
Monitor Vast.ai GPU instance health, utilization, and costs. Key metrics: GPU utilization (idle GPUs waste $0.20-$4.00/hr), instance uptime, training progress, cost accumulation, and spot preemption events.
Prerequisites
- Vast.ai account with active instances
vastai CLI installed
- Optional: Prometheus, Grafana, or Datadog for dashboarding
Instructions
Step 1: Instance Metrics Collector
import subprocess, json, time
from datetime import datetime
class VastMetricsCollector:
def __init__(self, output_file="vast_metrics.jsonl"):
self.output_file = output_file
def collect(self):
result = subprocess.run(
["vastai", "show", "instances", "--raw"],
capture_output=True, text=True)
instances = json.loads(result.stdout)
metrics = {
"timestamp": datetime.utcnow().isoformat(),
"total_instances": len(instances),
"running": 0, "total_hourly_cost": 0,
"instances": [],
}
for inst in instances:
status = inst.get("actual_status", "unknown")
dph = inst.get("dph_total", 0)
if status == "running":
metrics["running"] +=
metrics[] += dph
metrics[].append({
: inst[],
: inst.get(),
: status,
: dph,
: inst.get(, ),
: inst.get(, ),
})
(.output_file, ) f:
f.write(json.dumps(metrics) + )
metrics
():
:
m = .collect()
(
)
time.sleep(interval)