Skip to content

运行观测

Observer API 提供队列、向量库、模型、锁、检索和文件系统等组件的即时状态。

Observer API

Observer API 提供详细的组件级监控。

observer.queue

1. API 实现介绍

获取队列系统状态(embedding 和语义处理队列)。显示各队列的待处理、进行中、已完成和错误数量。

代码入口:

  • openviking/server/routers/observer.py:observer_queue - HTTP 路由
  • openviking/service/debug_service.py:ObserverService.queue - 核心实现
  • openviking/storage/observers/queue_observer.py - 队列观察者

2. 接口和参数说明

无参数。

3. 使用示例

HTTP API

GET /api/v1/observer/queue
bash
curl -X GET http://localhost:1933/api/v1/observer/queue \
  -H "X-API-Key: your-key"

Python SDK

python
print(client.observer.queue())
# 输出:
# [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       20

TypeScript SDK

typescript
console.log(await client.queueStatus());

Go SDK

go
status, err := client.QueueStatus(ctx)
if err != nil {
    return err
}
fmt.Println(status["is_healthy"])

CLI

bash
ov observer queue

响应示例

json
{
  "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 实现介绍

获取 VikingDB 状态(集合、索引、向量数量)。

代码入口:

  • openviking/server/routers/observer.py:observer_vikingdb - HTTP 路由
  • openviking/service/debug_service.py:ObserverService.vikingdb - 核心实现
  • openviking/storage/observers/vikingdb_observer.py - VikingDB 观察者
  • crates/ov_cli/src/commands/observer.rs - CLI 命令

2. 接口和参数说明

无参数。

3. 使用示例

HTTP API

GET /api/v1/observer/vikingdb
bash
curl -X GET http://localhost:1933/api/v1/observer/vikingdb \
  -H "X-API-Key: your-key"

Python SDK

python
print(client.observer.vikingdb())
# 输出:
# [vikingdb] (healthy)
# Collection  Index Count  Vector Count  Status
# context     1            55            OK
# TOTAL       1            55

# 访问特定属性
print(client.observer.vikingdb().is_healthy)  # True
print(client.observer.vikingdb().status)      # 状态表字符串

TypeScript SDK

typescript
console.log(await client.vikingDBStatus());

Go SDK

go
status, err := client.VikingDBStatus(ctx)
if err != nil {
    return err
}
fmt.Println(status["is_healthy"])

CLI

bash
ov observer vikingdb

响应示例

json
{
  "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 实现介绍

获取模型子系统的聚合状态(VLM、embedding、rerank)。检查各模型提供者是否健康可用。

代码入口:

  • openviking/server/routers/observer.py:observer_models - HTTP 路由
  • openviking/service/debug_service.py:ObserverService.models - 核心实现
  • openviking/storage/observers/models_observer.py - 模型观察者
  • crates/ov_cli/src/commands/observer.rs - CLI 命令

2. 接口和参数说明

无参数。

3. 使用示例

HTTP API

GET /api/v1/observer/models
bash
curl -X GET http://localhost:1933/api/v1/observer/models \
  -H "X-API-Key: your-key"

Python SDK

python
print(client.observer.models())
# 输出:
# [models] (healthy)
# provider_model         healthy  detail
# dense_embedding        yes      ...
# rerank                 yes      ...
# vlm                    yes      ...

TypeScript SDK

typescript
console.log(await client.modelsStatus());

Go SDK

go
status, err := client.ModelsStatus(ctx)
if err != nil {
    return err
}
fmt.Println(status["is_healthy"])

CLI

bash
ov observer models

响应示例

json
{
  "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 实现介绍

获取分布式锁系统状态。

代码入口:

  • openviking/server/routers/observer.py:observer_lock - HTTP 路由
  • openviking/service/debug_service.py:ObserverService.lock - 核心实现
  • openviking/storage/observers/lock_observer.py - 锁观察者
  • crates/ov_cli/src/commands/observer.rs - CLI 命令

2. 接口和参数说明

无参数。

3. 使用示例

HTTP API

GET /api/v1/observer/lock
bash
curl -X GET http://localhost:1933/api/v1/observer/lock \
  -H "X-API-Key: your-key"

公开 SDK 和 CLI 目前没有单独的 lock observer 方法。请使用 HTTP API 查询该组件;ov observer system 会在汇总状态中包含它。

响应示例

json
{
  "status": "ok",
  "result": {
    "name": "lock",
    "is_healthy": true,
    "has_errors": false,
    "status": "..."
  },
  "time": 0.1
}

observer.retrieval

1. API 实现介绍

获取检索质量指标。

代码入口:

  • openviking/server/routers/observer.py:observer_retrieval - HTTP 路由
  • openviking/service/debug_service.py:ObserverService.retrieval - 核心实现
  • openviking/storage/observers/retrieval_observer.py - 检索观察者
  • crates/ov_cli/src/commands/observer.rs - CLI 命令

2. 接口和参数说明

无参数。

3. 使用示例

HTTP API

GET /api/v1/observer/retrieval
bash
curl -X GET http://localhost:1933/api/v1/observer/retrieval \
  -H "X-API-Key: your-key"

CLI

bash
ov observer retrieval

响应示例

json
{
  "status": "ok",
  "result": {
    "name": "retrieval",
    "is_healthy": true,
    "has_errors": false,
    "status": "..."
  },
  "time": 0.1
}

observer.filesystem

1. API 实现介绍

获取文件系统操作指标。

代码入口:

  • openviking/server/routers/observer.py:observer_filesystem - HTTP 路由
  • openviking/service/debug_service.py:ObserverService.filesystem - 核心实现
  • openviking/storage/observers/filesystem_observer.py - 文件系统观察者
  • crates/ov_cli/src/commands/observer.rs - CLI 命令

2. 接口和参数说明

无参数。

3. 使用示例

HTTP API

GET /api/v1/observer/filesystem
bash
curl -X GET http://localhost:1933/api/v1/observer/filesystem \
  -H "X-API-Key: your-key"

CLI

bash
ov observer filesystem

响应示例

json
{
  "status": "ok",
  "result": {
    "name": "filesystem",
    "is_healthy": true,
    "has_errors": false,
    "status": "..."
  },
  "time": 0.1
}

observer.system

1. API 实现介绍

获取整体系统状态,包括所有组件(queue、vikingdb、models、lock、retrieval)。

代码入口:

  • openviking/server/routers/observer.py:observer_system - HTTP 路由
  • openviking/service/debug_service.py:ObserverService.system - 核心实现
  • crates/ov_cli/src/commands/observer.rs - CLI 命令

2. 接口和参数说明

无参数。

3. 使用示例

HTTP API

GET /api/v1/observer/system
bash
curl -X GET http://localhost:1933/api/v1/observer/system \
  -H "X-API-Key: your-key"

Python SDK

python
print(client.observer.system())
# 输出:
# [queue] (healthy)
# ...
#
# [vikingdb] (healthy)
# ...
#
# [models] (healthy)
# ...
#
# [system] (healthy)

TypeScript SDK

typescript
console.log(await client.getStatus());

Go SDK

go
status, err := client.GetStatus(ctx)
if err != nil {
    return err
}
fmt.Println(status["is_healthy"])

CLI

bash
ov observer system

响应示例

json
{
  "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
}

相关文档

Released under the Apache-2.0 License.