For the complete documentation index, see llms.txt. This page is also available as Markdown.

Dynamo

Cedana API for Dynamo deployments

List Dynamo checkpoints (the checkpoint library)

get

Returns checkpoints in the given cluster, optionally filtered by CEDANA_CHECKPOINT name. Each entry is a reusable warm-state asset that any deployment with a matching CEDANA_CHECKPOINT env restores from.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
cluster_idstring · uuidRequired

Cluster to scope checkpoints to.

namestring · nullableOptional

Optional CEDANA_CHECKPOINT name to filter by

Responses
200

Checkpoint library

application/json

One CEDANA_CHECKPOINT "slot" in the library. A name can have many individual checkpoints over time (you can checkpoint the same env value repeatedly); this aggregates them into a single slot row.

checkpoint_countinteger · int64Required

Number of (non-deprecated) checkpoints captured under this name

created_atstring · nullableOptional

Timestamp of the most recent checkpoint under this name

deployment_namestring · nullableOptional

Deployment whose CEDANA_CHECKPOINT env equals this checkpoint's name, if any.

modelstring · nullableOptional

Model served by that deployment (drives the model logo + "deploy from").

namestringRequired

CEDANA_CHECKPOINT name (the stable restore key)

restorablebooleanRequired

True if at least one checkpoint under this name is ready + restorable

get/v1/dynamo/checkpoints
GET /v1/dynamo/checkpoints?cluster_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "checkpoint_count": 1,
    "created_at": null,
    "deployment_name": null,
    "model": null,
    "name": "text",
    "restorable": true
  }
]

Submit Dynamo deployment

post

Publishes a DynamoGraphDeployment manifest to the cluster's RabbitMQ queue. The controller applies it via the dynamic Kubernetes client.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body

Request body for submitting a DynamoGraphDeployment to a cluster.

cluster_idstringRequired

ID of the target cluster

enable_checkpointingbooleanOptional

If true, inject runtimeClassName: cedana and CEDANA_CHECKPOINT into worker pod specs

manifestanyRequired

Full DynamoGraphDeployment manifest (nvidia.com/v1alpha1)

Responses
200

Deployment queued

text/plain
stringOptional
post/v1/dynamo/deploy
POST /v1/dynamo/deploy HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 65

{
  "cluster_id": "text",
  "enable_checkpointing": true,
  "manifest": null
}
text

List Dynamo deployments

get

Returns all DynamoGraphDeployments synced from the specified cluster.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
cluster_idstring · uuidRequired

UUID of the cluster to filter by

namespacestring · nullableOptional

Kubernetes namespace

Responses
200

List of Dynamo deployments

application/json
backendstring · nullableOptional
cedana_managedbooleanRequired
cluster_idstring · uuidRequired
created_atstring · date-timeRequired
idstring · uuidRequired
modelstring · nullableOptional
namestringRequired
namespacestringRequired
specanyOptional
statusstringRequired
updated_atstring · date-timeRequired
worker_replicasinteger · nullableOptional
worker_replicas_readyinteger · nullableOptional
checkpoint_namestring · nullableOptional

CEDANA_CHECKPOINT name of the first worker service, if checkpointing is enabled. This is the stable key a worker restores from. None if unset.

frontend_endpointstring · nullableOptional

Resolved frontend endpoint: external_ip:port or cluster_ip:port

get/v1/dynamo/deployments
GET /v1/dynamo/deployments?cluster_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "backend": null,
    "cedana_managed": true,
    "cluster_id": "123e4567-e89b-12d3-a456-426614174000",
    "created_at": "2026-01-01T00:00:00.000Z",
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "model": null,
    "name": "text",
    "namespace": "text",
    "spec": null,
    "status": "text",
    "updated_at": "2026-01-01T00:00:00.000Z",
    "worker_replicas": null,
    "worker_replicas_ready": null,
    "checkpoint_name": null,
    "frontend_endpoint": null
  }
]

Get Dynamo deployment

get

Returns a single DynamoGraphDeployment by name.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
namestringRequired

DGD name

Query parameters
cluster_idstring · uuidRequired

UUID of the cluster to filter by

namespacestring · nullableOptional

Kubernetes namespace

Responses
200

Dynamo deployment

application/json
backendstring · nullableOptional
cedana_managedbooleanRequired
cluster_idstring · uuidRequired
created_atstring · date-timeRequired
idstring · uuidRequired
modelstring · nullableOptional
namestringRequired
namespacestringRequired
specanyOptional
statusstringRequired
updated_atstring · date-timeRequired
worker_replicasinteger · nullableOptional
worker_replicas_readyinteger · nullableOptional
checkpoint_namestring · nullableOptional

CEDANA_CHECKPOINT name of the first worker service, if checkpointing is enabled. This is the stable key a worker restores from. None if unset.

frontend_endpointstring · nullableOptional

Resolved frontend endpoint: external_ip:port or cluster_ip:port

get/v1/dynamo/deployments/{name}
GET /v1/dynamo/deployments/{name}?cluster_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "backend": null,
  "cedana_managed": true,
  "cluster_id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2026-01-01T00:00:00.000Z",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "model": null,
  "name": "text",
  "namespace": "text",
  "spec": null,
  "status": "text",
  "updated_at": "2026-01-01T00:00:00.000Z",
  "worker_replicas": null,
  "worker_replicas_ready": null,
  "checkpoint_name": null,
  "frontend_endpoint": null
}

Delete Dynamo deployment

delete

Publishes a delete event for the DynamoGraphDeployment and removes the DB record.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
namestringRequired

DGD name

Query parameters
cluster_idstring · uuidRequired

UUID of the cluster to filter by

namespacestring · nullableOptional

Kubernetes namespace

Responses
200

Deletion queued

text/plain
stringOptional
delete/v1/dynamo/deployments/{name}
DELETE /v1/dynamo/deployments/{name}?cluster_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
text

Checkpoint every live worker pod of a DynamoGraphDeployment.

post

Worker pods resolved by exact Dynamo label match, not pod_name.startsWith — the prefix heuristic could hit a different DGD sharing a name prefix in the same namespace (e.g. vllm-agg vs vllm-agg-cedana).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
namestringRequired

DGD name

Query parameters
cluster_idstring · uuidRequired

UUID of the cluster to filter by

namespacestring · nullableOptional

Kubernetes namespace

Responses
200

Checkpoints issued

application/json

Result of checkpointing a DGD: the workers a checkpoint was issued for.

post/v1/dynamo/deployments/{name}/checkpoint
POST /v1/dynamo/deployments/{name}/checkpoint?cluster_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "workers": [
    {
      "action_id": "text",
      "pod_name": "text"
    }
  ]
}

Get checkpoint summary for a Dynamo deployment

get

Returns a summary of checkpoints taken for all worker pods belonging to the deployment. Matches pods whose name starts with the deployment name.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
namestringRequired

DGD name

Query parameters
cluster_idstring · uuidRequired

UUID of the cluster to filter by

namespacestring · nullableOptional

Kubernetes namespace

Responses
200

Checkpoint summary

application/json

A lightweight summary of checkpoints taken for a Dynamo deployment's workers.

has_cachebooleanRequired

True if at least one checkpoint with status='ready' exists

lateststring · nullableOptional

Timestamp of the most recent checkpoint

totalinteger · int64Required

Total number of ready checkpoints across all worker pods

get/v1/dynamo/deployments/{name}/checkpoints
GET /v1/dynamo/deployments/{name}/checkpoints?cluster_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "has_cache": true,
  "latest": null,
  "pods": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "total": 1
}

Query Dynamo inference metrics for a deployment.

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
namestringRequired

DGD name

Query parameters
cluster_idstring · nullableOptional
namespacestring · nullableOptional
hoursinteger · nullableOptional

Relative window in hours (default 1, max 720 = metrics TTL). Ignored when from_ms/to_ms are set. Anchored to the LATEST datapoint (not now()) so a deleted deployment still returns its historical data.

from_msinteger · nullableOptional

Optional absolute range start (Unix ms). If set with to_ms, overrides hours.

to_msinteger · nullableOptional

Optional absolute range end (Unix ms). If set with from_ms, overrides hours.

Responses
200

Time series per metric

application/json

A single metric time-series point returned to the UI.

metric_namestringRequired
timestamp_msinteger · int64Required

Unix timestamp in milliseconds

valuenumber · doubleRequired
get/v1/dynamo/deployments/{name}/metrics
GET /v1/dynamo/deployments/{name}/metrics HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "metric_name": "text",
    "timestamp_ms": 1,
    "value": 1
  }
]

Ingest a batch of Dynamo inference metrics from the watcher.

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
namestringRequired

DGD name

Body

Batch of metric samples posted by the watcher after scraping /metrics.

cluster_idstringRequired
modelstringOptional
namespacestringRequired
Responses
200

Metrics stored

text/plain
stringOptional
post/v1/dynamo/deployments/{name}/metrics
POST /v1/dynamo/deployments/{name}/metrics HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 117

{
  "cluster_id": "text",
  "model": "text",
  "namespace": "text",
  "samples": [
    {
      "metric_name": "text",
      "timestamp_ms": 1,
      "value": 1
    }
  ]
}
text

Get per-pod startup times for a Dynamo deployment's workers.

get

Returns one row per worker pod with the time it took to reach Ready, and whether Cedana restored it from a checkpoint (cedana_restore=true) or it cold-started.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
namestringRequired

DGD name

Query parameters
cluster_idstring · uuidRequired

UUID of the cluster to filter by

namespacestring · nullableOptional

Kubernetes namespace

Responses
200

Per-pod startup times

application/json

Startup time for a single worker pod.

cedana_restorebooleanRequired

Whether this pod was started via a Cedana restore (true) or cold-started (false)

pod_namestringRequired

Pod name

start_time_msinteger · int64Required

Time from PodScheduled → Ready in milliseconds

get/v1/dynamo/deployments/{name}/pod-startup-times
GET /v1/dynamo/deployments/{name}/pod-startup-times?cluster_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "cedana_restore": true,
    "pod_name": "text",
    "start_time_ms": 1
  }
]

Update model/backend from live scrape

post

Called by the dynamo-watcher after querying /v1/models on the deployment's frontend endpoint. Overwrites model and backend with ground-truth values.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
namestringRequired

DGD name

Body

Body sent by the dynamo-watcher after scraping /v1/models from the live frontend.

backendstring · nullableOptional
cluster_idstring · uuidRequired
modelstring · nullableOptional
namespacestringRequired
Responses
200

Updated

text/plain
stringOptional
post/v1/dynamo/deployments/{name}/scrape
POST /v1/dynamo/deployments/{name}/scrape HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 100

{
  "backend": null,
  "cluster_id": "123e4567-e89b-12d3-a456-426614174000",
  "model": null,
  "namespace": "text"
}
text

Compare recent cold-start and Cedana-restore startup latency.

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
namestringRequired

DGD name

Query parameters
cluster_idstring · uuidRequired

UUID of the cluster to filter by

namespacestring · nullableOptional

Kubernetes namespace

Responses
200

Cold versus restore latency distribution

application/json

Cold-start versus Cedana-restore startup latency for a deployment.

p50_saved_msinteger · nullableOptional

Milliseconds saved by restore at p50.

p50_speedupnumber · nullableOptional

Cold p50 divided by restore p50. Values above 1 mean restore is faster.

get/v1/dynamo/deployments/{name}/startup-comparison
GET /v1/dynamo/deployments/{name}/startup-comparison?cluster_id=123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "cold": null,
  "p50_saved_ms": null,
  "p50_speedup": null,
  "restore": null
}

Last updated

Was this helpful?