Runtime Observability
The Observer API reports immediate status for queues, the vector database, models, locks, retrieval, and the file system.
Observer API
The observer API provides detailed component-level monitoring.
observer.queue
1. API Implementation Overview
Get queue system status (embedding and semantic processing queues). Shows pending, in-progress, completed, and error counts for each queue.
Code Entry Points:
openviking/server/routers/observer.py:observer_queue- HTTP routeopenviking/service/debug_service.py:ObserverService.queue- Core implementationopenviking/storage/observers/queue_observer.py- Queue observer
2. Interface and Parameters
No parameters.
3. Usage Examples
HTTP API
GET /api/v1/observer/queuecurl -X GET http://localhost:1933/api/v1/observer/queue \
-H "X-API-Key: your-key"Python SDK
print(client.observer.queue())
# Output:
# [queue] (healthy)
# Queue Pending In Progress Processed Errors Total
# Embedding 0 0 10 0 10
# Semantic 0 0 10 0 10
# TOTAL 0 0 20 0 20TypeScript SDK
console.log(await client.queueStatus());Go SDK
status, err := client.QueueStatus(ctx)
if err != nil {
return err
}
fmt.Println(status["is_healthy"])CLI
ov observer queueResponse Example
{
"status": "ok",
"result": {
"name": "queue",
"is_healthy": true,
"has_errors": false,
"status": "Queue Pending In Progress Processed Errors Total\nEmbedding 0 0 10 0 10\nSemantic 0 0 10 0 10\nTOTAL 0 0 20 0 20"
},
"time": 0.1
}observer.vikingdb
1. API Implementation Overview
Get VikingDB status (collections, indexes, vector counts).
Code Entry Points:
openviking/server/routers/observer.py:observer_vikingdb- HTTP routeopenviking/service/debug_service.py:ObserverService.vikingdb- Core implementationopenviking/storage/observers/vikingdb_observer.py- VikingDB observercrates/ov_cli/src/commands/observer.rs- CLI command
2. Interface and Parameters
No parameters.
3. Usage Examples
HTTP API
GET /api/v1/observer/vikingdbcurl -X GET http://localhost:1933/api/v1/observer/vikingdb \
-H "X-API-Key: your-key"Python SDK
print(client.observer.vikingdb())
# Output:
# [vikingdb] (healthy)
# Collection Index Count Vector Count Status
# context 1 55 OK
# TOTAL 1 55
# Access specific attributes
print(client.observer.vikingdb().is_healthy) # True
print(client.observer.vikingdb().status) # Status table stringTypeScript SDK
console.log(await client.vikingDBStatus());Go SDK
status, err := client.VikingDBStatus(ctx)
if err != nil {
return err
}
fmt.Println(status["is_healthy"])CLI
ov observer vikingdbResponse Example
{
"status": "ok",
"result": {
"name": "vikingdb",
"is_healthy": true,
"has_errors": false,
"status": "Collection Index Count Vector Count Status\ncontext 1 55 OK\nTOTAL 1 55"
},
"time": 0.1
}observer.models
1. API Implementation Overview
Get aggregated model subsystem status (VLM, embedding, rerank). Checks if each model provider is healthy and available.
Code Entry Points:
openviking/server/routers/observer.py:observer_models- HTTP routeopenviking/service/debug_service.py:ObserverService.models- Core implementationopenviking/storage/observers/models_observer.py- Models observercrates/ov_cli/src/commands/observer.rs- CLI command
2. Interface and Parameters
No parameters.
3. Usage Examples
HTTP API
GET /api/v1/observer/modelscurl -X GET http://localhost:1933/api/v1/observer/models \
-H "X-API-Key: your-key"Python SDK
print(client.observer.models())
# Output:
# [models] (healthy)
# provider_model healthy detail
# dense_embedding yes ...
# rerank yes ...
# vlm yes ...TypeScript SDK
console.log(await client.modelsStatus());Go SDK
status, err := client.ModelsStatus(ctx)
if err != nil {
return err
}
fmt.Println(status["is_healthy"])CLI
ov observer modelsResponse Example
{
"status": "ok",
"result": {
"name": "models",
"is_healthy": true,
"has_errors": false,
"status": "provider_model healthy detail\ndense_embedding yes ...\nrerank yes ...\nvlm yes ..."
},
"time": 0.1
}observer.lock
1. API Implementation Overview
Get distributed lock system status.
Code Entry Points:
openviking/server/routers/observer.py:observer_lock- HTTP routeopenviking/service/debug_service.py:ObserverService.lock- Core implementationopenviking/storage/observers/lock_observer.py- Lock observercrates/ov_cli/src/commands/observer.rs- CLI command
2. Interface and Parameters
No parameters.
3. Usage Examples
HTTP API
GET /api/v1/observer/lockcurl -X GET http://localhost:1933/api/v1/observer/lock \
-H "X-API-Key: your-key"The public SDKs and CLI do not currently expose a lock-specific observer method. Use the HTTP API for this component; ov observer system includes it in the aggregate status.
Response Example
{
"status": "ok",
"result": {
"name": "lock",
"is_healthy": true,
"has_errors": false,
"status": "..."
},
"time": 0.1
}observer.retrieval
1. API Implementation Overview
Get retrieval quality metrics.
Code Entry Points:
openviking/server/routers/observer.py:observer_retrieval- HTTP routeopenviking/service/debug_service.py:ObserverService.retrieval- Core implementationopenviking/storage/observers/retrieval_observer.py- Retrieval observercrates/ov_cli/src/commands/observer.rs- CLI command
2. Interface and Parameters
No parameters.
3. Usage Examples
HTTP API
GET /api/v1/observer/retrievalcurl -X GET http://localhost:1933/api/v1/observer/retrieval \
-H "X-API-Key: your-key"CLI
ov observer retrievalResponse Example
{
"status": "ok",
"result": {
"name": "retrieval",
"is_healthy": true,
"has_errors": false,
"status": "..."
},
"time": 0.1
}observer.filesystem
1. API Implementation Overview
Get filesystem operation metrics.
Code Entry Points:
openviking/server/routers/observer.py:observer_filesystem- HTTP routeopenviking/service/debug_service.py:ObserverService.filesystem- Core implementationopenviking/storage/observers/filesystem_observer.py- Filesystem observercrates/ov_cli/src/commands/observer.rs- CLI command
2. Interface and Parameters
No parameters.
3. Usage Examples
HTTP API
GET /api/v1/observer/filesystemcurl -X GET http://localhost:1933/api/v1/observer/filesystem \
-H "X-API-Key: your-key"CLI
ov observer filesystemResponse Example
{
"status": "ok",
"result": {
"name": "filesystem",
"is_healthy": true,
"has_errors": false,
"status": "..."
},
"time": 0.1
}observer.system
1. API Implementation Overview
Get overall system status, including all components (queue, vikingdb, models, lock, retrieval).
Code Entry Points:
openviking/server/routers/observer.py:observer_system- HTTP routeopenviking/service/debug_service.py:ObserverService.system- Core implementationcrates/ov_cli/src/commands/observer.rs- CLI command
2. Interface and Parameters
No parameters.
3. Usage Examples
HTTP API
GET /api/v1/observer/systemcurl -X GET http://localhost:1933/api/v1/observer/system \
-H "X-API-Key: your-key"Python SDK
print(client.observer.system())
# Output:
# [queue] (healthy)
# ...
#
# [vikingdb] (healthy)
# ...
#
# [models] (healthy)
# ...
#
# [system] (healthy)TypeScript SDK
console.log(await client.getStatus());Go SDK
status, err := client.GetStatus(ctx)
if err != nil {
return err
}
fmt.Println(status["is_healthy"])CLI
ov observer systemResponse Example
{
"status": "ok",
"result": {
"is_healthy": true,
"errors": [],
"components": {
"queue": {
"name": "queue",
"is_healthy": true,
"has_errors": false,
"status": "..."
},
"vikingdb": {
"name": "vikingdb",
"is_healthy": true,
"has_errors": false,
"status": "..."
},
"models": {
"name": "models",
"is_healthy": true,
"has_errors": false,
"status": "..."
},
"lock": {
"name": "lock",
"is_healthy": true,
"has_errors": false,
"status": "..."
},
"retrieval": {
"name": "retrieval",
"is_healthy": true,
"has_errors": false,
"status": "..."
}
}
},
"time": 0.1
}Related Documentation
- Metrics - Prometheus scraping
- System Status - health and consistency checks
