RL Environments

Fetch the current observation without executing an action

Returns the current state observation without advancing the simulation. Useful for initial state inspection or debugging.

get/rl/environments/{environmentId}/observation

Request

  • Base URL: https://www.cloudworldmodel.ai/api
  • URL: https://www.cloudworldmodel.ai/api/rl/environments/{environmentId}/observation
  • Auth: one of:
    • HTTP bearer
    • API key in header X-PAYMENT
    • API key in header PAYMENT-SIGNATURE

Path parameters

environmentIdstring uuid required

ID of the RL environment

Response

Current observation

unmodeled_cost_warningstring[]

List of active unmodeled cost dimension keys (e.g. ["egress", "cross_az_traffic"]). Absent when no unmodeled dimensions are detected. Mirrors the same field in the step response so agents can poll current topology exposure without executing an action.

Example response

{
  "obs": {
    "rps": 1620,
    "cpu_util": 0.582,
    "instances": 3,
    "traffic": 1620,
    "currentTime": 15,
    "tick_seconds": 60,
    "unmodeled_dimensions_active": true,
    "warmup_factor": 0.5,
    "routedRps_per_node": 583.3,
    "unavailable_node_count": 1
  },
  "metrics": {
    "cost_usd_hr": 1.08,
    "latency_p95": 104,
    "error_rate": 0.003,
    "uptime": 0.997,
    "connection_pressure": 1.25,
    "compute": [
      {
        "warmup_factor": 0.5,
        "warmup_steps_remaining": 2
      }
    ],
    "error_breakdown": {
      "db_failure": 24
    },
    "ttft_p50_ms": 245,
    "decode_tokens_per_sec": 3840
  },
  "resources": [
    {
      "id": "ec2-1",
      "type": "compute",
      "name": "Web Server 1",
      "provider": "aws",
      "location": {
        "regionKey": "us-east-2"
      },
      "characteristics": {
        "workload": "crud",
        "appRuntime": "node",
        "appWorkerCount": 2,
        "appDbPoolSize": 250,
        "workloadDatabaseVersion": "8.0",
        "workloadDatabaseEngine": "mysql",
        "rdsSqlServerBilling": {
          "instanceClass": "db.t3.micro",
          "storageType": "gp2",
          "allocatedStorageGiB": 20,
          "durationHours": 480,
          "sustainedCpuPercent": 43
        },
        "serviceFamily": "ec2",
        "containerCpu": 0.5,
        "containerMemoryGiB": 1,
        "runtimeMemoryProfile": {
          "workingSetGiB": 0.78125
        },
        "concurrency": 80,
        "requestDurationSeconds": 0.25,
        "requestServingTargetUtilizationPct": 70,
        "billingState": "stopped",
        "size": "m5.large",
        "instanceType": "t3.medium",
        "ocpus": 4,
        "maxThroughput": 2000,
        "capacityRps": 100,
        "baseLatency": 3,
        "maxConnections": 800,
        "capacityGB": 500,
        "maxIops": 3000,
        "inferenceMode": true,
        "accelerator": "a10g",
        "managedComputePlatform": "nvidia-dgx-cloud",
        "openshiftOffering": "rosa-hcp",
        "topology": {
          "intraNode": "nvlink-nvswitch",
          "interNode": "infiniband"
        },
        "intraNode": "nvlink-nvswitch",
        "interNode": "infiniband",
        "includesControlPlane": true,
        "bundledNetworking": true,
        "trainingMode": true,
        "tokensPerRequest": 500,
        "inputTokensPerRequest": 1000,
        "cacheHitRate": 0.85,
        "cacheableRequestShare": 0.75,
        "asynchronousRequestShare": 0.15,
        "queueConsumerCount": 4,
        "queueDrainRatePerConsumerRps": 125,
        "queueCapacityMessages": 20000,
        "queueSimulationStepSeconds": 1,
        "autoscaling": true,
        "maxInstances": 5,
        "minInstances": 2,
        "scaleOutCpuThreshold": 60,
        "scaleInCpuThreshold": 25,
        "nodeCount": 2,
        "workerVcpu": 4,
        "minNodes": 2,
        "maxNodes": 10,
        "perNodeRate": 3.2,
        "pricingModel": "on-demand",
        "nodePools": [
          {
            "name": "general",
            "nodeCount": 2,
            "workerVcpu": 8,
            "minNodes": 2,
            "maxNodes": 10,
            "perNodeRate": 0.096,
            "maxThroughput": 10000
          }
        ],
        "streamShardsCount": 4,
        "streamWriteRps": 3500,
        "eventNotificationsEnabled": true,
        "partitionCount": 8,
        "streamPartitions": 4,
        "partitionWriteRps": 5000,
        "warmupSteps": 5,
        "warmupSeverity": 0.8
      },
      "routedRps": 15,
      "availabilityState": "available",
      "isRoutable": true,
      "failureParkStepsRemaining": 3,
      "recoveryPolicy": {
        "criticalCpuThreshold": 75,
        "criticalSteps": 2,
        "warningCpuThreshold": 60,
        "warningSteps": 1,
        "failureParkSteps": 2
      }
    }
  ],
  "unmodeled_cost_warning": [
    "egress"
  ],
  "reward_components": {
    "unmodeled_cost": -0.1
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.