Skip to content

Memory, ingest queue and document conversion health

GET
/api/v1/admin/system
curl --request GET \
--url http://localhost:11044/api/v1/admin/system \
--header 'X-Embabel-Api-Key: <X-Embabel-Api-Key>'

Heap after the last collection against its ceiling, the container’s memory limit, the ingest budget in use and how many ingests wait for it, and whether docling answers and has failed recently, and how many stored chunks have no embedding. A null value is unknown, never zero.

The appliance’s current system status

Media typeapplication/json

Memory, CPU, the document ingest queue, document conversion, and embedding coverage, read now

object
conversion
required

Active document converter, docling’s state, and conversion failures since start

object
converter
required

The active converter’s name; ‘none’ when documents go straight to flat text extraction

string
docling
required

Whether docling is the active converter and whether it answers

object
inUse
required

Whether docling is the active converter

boolean
reachable

Whether docling answered its health check just now. Null when it is not in use and was not asked.

boolean
failuresSinceStart
required

Conversions that failed and fell back to flat text since the app started

integer format: int64
recentFailures
required

The most recent of those, newest last

Array<object>

One document conversion that failed and fell back to flat text extraction, losing headings and tables; listed in the conversion section of GET /admin/system

object
at
required

When the failure happened, as an ISO-8601 instant

string format: date-time
converter
required

Converter that failed, e.g. docling

string
document
required

Filename of the uploaded document; re-ingesting it once the converter is healthy is the remedy

string
reason
required

The converter’s error message, or “no reason given” when it had none

string
cpu
required

Process and machine CPU load, and the processors the JVM may use

object
processLoad

This app’s share of the CPU it may use, 0.0–1.0. Null when not yet measured.

number format: double
processors
required

Processors available to the JVM

integer format: int32
systemLoad

The whole machine’s load, 0.0–1.0 — in a container, the container’s quota. Null when not yet measured.

number format: double
embeddings
required

Embedding model and its provider, and stored chunks still lacking an embedding

object
chunksWithoutEmbedding

Chunks stored with no embedding, which vector search cannot return — left by an embedding request that failed during ingest. A re-embed, which runs only when the embedding model changes, fills them. Null when the graph could not be read; refreshed at most every 30 seconds.

integer format: int64
model

The embedding model in use. Null when none is configured, so document features are off.

string
modelRunner

What Docker Model Runner says about its embedding model now. Null when the model is not served by Docker Model Runner, or it did not answer.

object
busy
required

Whether that model is serving a request now. It runs on the host, outside the app’s container, so its CPU is not in the cpu figures.

boolean
loaded
required

Whether an embedding model is loaded. Model Runner loads one on the first request and unloads it when idle.

boolean
provider

Who serves that model: ‘onnx’ runs inside the app; ‘Docker’ is Docker Model Runner on the host

string
ingest
required

Heap budget for document ingests, what running ingests hold of it, and how many wait

object
budgetBytes
required

Heap concurrent ingests may reserve

integer format: int64
inUseBytes
required

Heap reserved by ingests running now

integer format: int64
waiting
required

Ingests waiting for a running one to finish

integer format: int32
memory
required

JVM heap and container memory, in bytes

object
containerLimitBytes

The container’s memory limit from cgroup v2. Null when unlimited or unreadable.

integer format: int64
containerUsedBytes

Memory the container uses now, from cgroup v2. Null when unreadable.

integer format: int64
heapAfterGcBytes

Heap in use straight after the most recent garbage collection — the closest cheap reading of what the app actually holds. Null until the first collection.

integer format: int64
heapMaxBytes

The heap ceiling (-Xmx, or MaxRAMPercentage of the container). Null if the JVM sets none.

integer format: int64
heapUsedBytes
required

Heap in use now, garbage included; rises and falls between collections

integer format: int64

Example generated

{
"conversion": {
"converter": "example",
"docling": {
"inUse": true,
"reachable": true
},
"failuresSinceStart": 1,
"recentFailures": [
{
"at": "2026-04-15T12:00:00Z",
"converter": "example",
"document": "example",
"reason": "example"
}
]
},
"cpu": {
"processLoad": 1,
"processors": 1,
"systemLoad": 1
},
"embeddings": {
"chunksWithoutEmbedding": 1,
"model": "example",
"modelRunner": {
"busy": true,
"loaded": true
},
"provider": "example"
},
"ingest": {
"budgetBytes": 1,
"inUseBytes": 1,
"waiting": 1
},
"memory": {
"containerLimitBytes": 1,
"containerUsedBytes": 1,
"heapAfterGcBytes": 1,
"heapMaxBytes": 1,
"heapUsedBytes": 1
}
}