mirror of
https://github.com/mudler/LocalAI.git
synced 2026-07-08 15:28:23 -04:00
The /backend/monitor endpoint is routed as GET but its handler bound the
model name from a request body, which is invalid per REST and breaks
Swagger UI and OpenAPI codegen tools that refuse to send bodies with GET.
Switch to reading ?model=<name> as a query parameter and update the
Swagger annotation, regenerated spec files, and documentation. The
handler still falls back to body binding when the query parameter is
absent, so existing clients sending {"model": "..."} continue to work.
Fixes #9207
Signed-off-by: Adira Denis Muhando <dennisadira@gmail.com>
3.0 KiB
3.0 KiB
+++ disableToc = false title = "Backend Monitor" weight = 20 url = "/features/backend-monitor/" +++
LocalAI provides endpoints to monitor and manage running backends. The /backend/monitor endpoint reports the status and resource usage of loaded models, and /backend/shutdown allows stopping a model's backend process.
Monitor API
- Method:
GET - Endpoints:
/backend/monitor,/v1/backend/monitor
Request
The model to monitor is passed as a query parameter:
| Parameter | Type | Required | Location | Description |
|---|---|---|---|---|
model |
string |
Yes | query | Name of the model to monitor |
For backwards compatibility, a JSON body with the same field is still accepted when the model query parameter is not set, but new clients should use the query parameter.
Response
Returns a JSON object with the backend status:
| Field | Type | Description |
|---|---|---|
state |
int |
Backend state: 0 = uninitialized, 1 = busy, 2 = ready, -1 = error |
memory |
object |
Memory usage information |
memory.total |
uint64 |
Total memory usage in bytes |
memory.breakdown |
object |
Per-component memory breakdown (key-value pairs) |
If the gRPC status call fails, the endpoint falls back to local process metrics:
| Field | Type | Description |
|---|---|---|
memory_info |
object |
Process memory info (RSS, VMS) |
memory_percent |
float |
Memory usage percentage |
cpu_percent |
float |
CPU usage percentage |
Usage
curl "http://localhost:8080/backend/monitor?model=my-model"
Example response
{
"state": 2,
"memory": {
"total": 1073741824,
"breakdown": {
"weights": 536870912,
"kv_cache": 268435456
}
}
}
Shutdown API
- Method:
POST - Endpoints:
/backend/shutdown,/v1/backend/shutdown
Request
| Parameter | Type | Required | Description |
|---|---|---|---|
model |
string |
Yes | Name of the model to shut down |
Usage
curl -X POST http://localhost:8080/backend/shutdown \
-H "Content-Type: application/json" \
-d '{"model": "my-model"}'
Response
Returns 200 OK with the shutdown confirmation message on success.
Error Responses
| Status Code | Description |
|---|---|
| 400 | Invalid or missing model name |
| 500 | Backend error or model not loaded |