Skip to main content
Learn how to create, configure, monitor, and manage GravixLayer sandboxes for optimal performance and resource utilization.

Sandbox Lifecycle

Creation Methods

Method 1: Simple Creation

gravixlayer sandbox create --provider gravix --region eu-west-1
Output:
Created sandbox: 1d1a0726-b9ce-49e0-944b-7e233fe3fe5d
Template: python-base-v1
Status: running
Resources: 2 CPU, 1024MB RAM
Started: 2025-10-28T10:33:43.670513028Z
Timeout: 2025-10-28T10:38:43.670513028Z

Method 2: Advanced Configuration

# Advanced configuration with all options
gravixlayer sandbox create --provider gravix --region eu-west-1 --template python-base-v1 --timeout 1800 --metadata '{\"project\":\"my-app\",\"env\":\"production\",\"user_id\":\"user123\"}'
Output:
Created sandbox: 6307baf7-8824-4f07-bd43-a87c80606d3f
   Template: python-base-v1
   Status: running
   Resources: 2 CPU, 1024MB RAM
   Started: 2025-10-28T11:06:41.45328687Z
   Timeout: 2025-10-28T11:36:41.45328687Z

Monitoring and Status

Check Sandbox Status

gravixlayer sandbox get 550e8400-e29b-41d4-a716-446655440000
Output:
Sandbox: 0f0ec8df-9133-435a-b652-90a6c084a2fd
   Template: python-base-v1 (None)
   Status: running
   Resources: Unknown CPU, Unknown RAM
   Started: 2025-10-28T11:14:04.839134Z
   Timeout: 2025-10-28T11:44:04.839134Z
   Metadata: {'env': 'production', 'project': 'my-app', 'user_id': 'user123'}

List All Sandboxes

gravixlayer sandbox list
Output:
Total sandboxes: 2

Sandbox ID: 0f0ec8df-9133-435a-b652-90a6c084a2fd
   Template: python-base-v1
   Status: running
   Resources: 2 CPU, 1024MB RAM
   Started: 2025-10-28T11:14:04.839134Z
   Timeout: 2025-10-28T11:44:04.839134Z

Sandbox ID: 07a2dd11-2afe-4512-8e01-3fc88e9fd252
   Template: python-base-v1
   Status: running
   Resources: 2 CPU, 1024MB RAM
   Started: 2025-10-28T11:13:27.30236Z
   Timeout: 2025-10-28T11:43:27.30236Z

Timeout Management

Setting Timeouts

# Set timeout during creation
gravixlayer sandbox create --provider gravix --region eu-west-1 --timeout 1800

# Update timeout for running sandbox
gravixlayer sandbox timeout 550e8400-e29b-41d4-a716-446655440000 --timeout 3600

# Check updated timeout
gravixlayer sandbox get 550e8400-e29b-41d4-a716-446655440000
Output:
Created sandbox: 550e8400-e29b-41d4-a716-446655440000
Timeout: 1800s (30 minutes)

Timeout updated successfully
New timeout: 3600s (1 hour)

ID: 550e8400-e29b-41d4-a716-446655440000
Status: running
Timeout: 2025-01-27T11:30:00Z (1 hour from now)

Timeout Limits

TimeoutLimitUse Case
Default300 seconds (5 minutes)Quick operations
Extended1800 seconds (30 minutes)Data processing
Maximum3600 seconds (1 hour)Long-running tasks

Getting Metrics (Coming Soon)

from gravixlayer import GravixLayer

client = GravixLayer()

# Note: Metrics endpoint may have server-side issues
try:
    metrics = client.sandbox.sandboxes.get_metrics(sandbox_id)
    print(f"CPU Usage: {metrics.cpu_usage}%")
    print(f"Memory: {metrics.memory_usage}/{metrics.memory_total} MB")
    print(f"Disk Read: {metrics.disk_read} bytes")
    print(f"Disk Write: {metrics.disk_write} bytes")
    print(f"Network RX: {metrics.network_rx} bytes")
    print(f"Network TX: {metrics.network_tx} bytes")
except Exception as e:
    print(f"Metrics unavailable: {e}")
    # Continue without metrics - all other functionality works

Sandbox Termination

Manual Termination

# Terminate specific sandbox
gravixlayer sandbox kill 550e8400-e29b-41d4-a716-446655440000

# Verify termination
gravixlayer sandbox get 550e8400-e29b-41d4-a716-446655440000
Output:
Sandbox killed successfully

🔴 Sandbox: 0f0ec8df-9133-435a-b652-90a6c084a2fd
   Template: python-base-v1 (None)
   Status: terminated
   Resources: Unknown CPU, Unknown RAM
   Started: 2025-10-28T11:14:04.839134Z
   Ended: 2025-10-28T11:20:14.137745Z
   Timeout: 2025-10-28T11:44:04.839134Z
   Metadata: {'env': 'production', 'project': 'my-app', 'user_id': 'user123'}

Automatic Cleanup

# ✅ Recommended: Context manager (automatic cleanup)
with Sandbox.create() as sandbox:
    # Work with sandbox
    pass  # Automatic cleanup when exiting

# ✅ Manual cleanup pattern
sandbox = Sandbox.create()
try:
    # Work with sandbox
    pass
finally:
    sandbox.kill()  # Ensure cleanup

Next Steps