Memory, ingest queue and document conversion health
const url = 'http://localhost:11044/api/v1/admin/system';const options = {method: 'GET', headers: {'X-Embabel-Api-Key': '<X-Embabel-Api-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”The appliance’s current system status
Memory, CPU, the document ingest queue, document conversion, and embedding coverage, read now
object
Active document converter, docling’s state, and conversion failures since start
object
The active converter’s name; ‘none’ when documents go straight to flat text extraction
Whether docling is the active converter and whether it answers
object
Whether docling is the active converter
Whether docling answered its health check just now. Null when it is not in use and was not asked.
Conversions that failed and fell back to flat text since the app started
The most recent of those, newest last
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
When the failure happened, as an ISO-8601 instant
Converter that failed, e.g. docling
Filename of the uploaded document; re-ingesting it once the converter is healthy is the remedy
The converter’s error message, or “no reason given” when it had none
Process and machine CPU load, and the processors the JVM may use
object
This app’s share of the CPU it may use, 0.0–1.0. Null when not yet measured.
Processors available to the JVM
The whole machine’s load, 0.0–1.0 — in a container, the container’s quota. Null when not yet measured.
Embedding model and its provider, and stored chunks still lacking an embedding
object
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.
The embedding model in use. Null when none is configured, so document features are off.
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
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.
Whether an embedding model is loaded. Model Runner loads one on the first request and unloads it when idle.
Who serves that model: ‘onnx’ runs inside the app; ‘Docker’ is Docker Model Runner on the host
Heap budget for document ingests, what running ingests hold of it, and how many wait
object
Heap concurrent ingests may reserve
Heap reserved by ingests running now
Ingests waiting for a running one to finish
JVM heap and container memory, in bytes
object
The container’s memory limit from cgroup v2. Null when unlimited or unreadable.
Memory the container uses now, from cgroup v2. Null when unreadable.
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.
The heap ceiling (-Xmx, or MaxRAMPercentage of the container). Null if the JVM sets none.
Heap in use now, garbage included; rises and falls between collections
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 }}
