# 集群操作

# 创建快照(用于备份)

在指定目录中创建 Typesense 节点状态和数据的即时快照。

之后您可以备份生成的快照目录,并根据需要将其恢复为数据目录。

# 示例响应

# 定义

POST ${TYPESENSE_HOST}/operations/snapshot

# 参数

参数名称 是否必填 描述
snapshot_path 服务器上用于保存快照的目录路径。

# 压缩磁盘数据库

Typesense 使用 RocksDB 将文档存储在磁盘上。如果您频繁进行写入或更新操作,运行底层 RocksDB 数据库的压缩操作可能会带来好处。这可以减少数据库的大小并降低读取延迟。

虽然数据库在此操作期间 不会 阻塞,但我们建议在非高峰时段运行此操作。

curl -H "X-TYPESENSE-API-KEY: ${TYPESENSE_API_KEY}" -X POST http://localhost:8108/operations/db/compact

# 定义

POST ${TYPESENSE_HOST}/operations/db/compact

# 重新选举 Leader(领导者)

触发一个 follower 节点(跟随者节点)发起 raft 投票流程,从而触发 leader 重新选举。

一旦此命令执行成功,你执行该操作的 follower 节点将成为新的 leader。

# 示例响应

# 定义

POST ${TYPESENSE_HOST}/operations/vote

# 慢请求日志开关

启用对超过设定时间阈值的请求进行日志记录。

默认值:-1(禁用慢请求日志记录)

慢请求会被记录到主日志文件中,前缀为 SLOW REQUEST

# 示例响应

# 定义

POST ${TYPESENSE_HOST}/config

# 清除缓存

使用 use_cache 参数发送的搜索请求响应会被缓存在 LRU 缓存中。要完全清除此缓存:

curl -H "X-TYPESENSE-API-KEY: ${TYPESENSE_API_KEY}" -X POST \
  http://localhost:8108/operations/cache/clear

# 定义

POST ${TYPESENSE_HOST}/operations/cache/clear

# 集群指标

获取当前 RAM、CPU、磁盘和网络使用指标。

# 示例响应

# 接口定义

GET ${TYPESENSE_HOST}/metrics.json

Prometheus 集成

如果您使用 Prometheus,这里有一个社区维护的项目可以定期轮询此端点并将数据导出到 Prometheus:

https://github.com/imatefx/typesense-prometheus-exporter (opens new window)

# API 统计信息

获取 API 端点的统计信息。

此端点返回过去 10 秒内所有请求的平均每秒请求数和延迟时间。

# 示例响应

# 定义

GET ${TYPESENSE_HOST}/stats.json

Prometheus 集成

如果您使用 Prometheus,这里有一个社区维护的项目,可以让您定期轮询此端点并将数据导出到 Prometheus:

https://github.com/imatefx/typesense-prometheus-exporter (opens new window)

# 健康状态

获取 Typesense 节点的健康信息。

# 示例响应

当节点内存/磁盘不足时,API 响应会额外包含一个 resource_error 字段,其值为 OUT_OF_DISK(磁盘不足)或 OUT_OF_MEMORY(内存不足)。

# 定义

GET ${TYPESENSE_HOST}/health

# 调试

获取 Typesense 节点的调试信息。

# 示例响应

version 表示当前运行的 Typesense 版本号。

通过 state 字段的值可以判断节点是主节点(LEADER)还是从节点(FOLLOWER):

状态值 节点角色
1 主节点
4 从节点

# 定义

GET ${TYPESENSE_HOST}/debug