api

package
v0.0.0-...-dc878bb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package api 实现 gRPC API 服务。

提供完整的时序数据库远程访问接口,兼容常见的时序数据库操作语义。

服务列表:

Write:             单点写入
WriteBatch:        批量写入
QueryRange:        范围查询
ListMeasurements:  枚举 Measurement
CreateMeasurement: 创建 Measurement
DropMeasurement:   删除 Measurement
ListDatabases:     枚举数据库
CreateDatabase:    创建数据库
DropDatabase:      删除数据库
Health:            健康检查

错误处理:

所有方法在失败时返回 gRPC 错误,使用 status.Errorf 设置适当的错误码。
成功时返回带 Success=true 的响应。

使用方法:

// 服务端
service := api.New(engine)
grpcServer := grpc.NewServer()
types.RegisterMicroTSServer(grpcServer, service)

// 客户端 (使用生成的 types 包)
client := types.NewMicroTSClient(conn)
resp, err := client.Write(ctx, &types.WriteRequest{...})

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ToProtoPointRow

func ToProtoPointRow(row *types.PointRow) *types.Row

ToProtoPointRow 将 types.PointRow 转换为 types.Row。

参数:

  • row: 内部 PointRow 结构,可以为 nil

返回:

  • *types.Row: 转换后的 gRPC Row 结构

说明:

如果输入为 nil,返回 nil。
当前实现仅转换时间戳和标签,字段转换待完善。

Types

type MicroTSService

type MicroTSService struct {
	types.UnimplementedMicroTSServer
	// contains filtered or unexported fields
}

MicroTSService 实现 gRPC MicroTS 服务。

提供时序数据库的核心操作接口,包括写入、查询和管理功能。

字段说明:

  • UnimplementedMicroTSServer: 嵌入 gRPC 生成的未实现桩,确保向前兼容
  • engine: 存储引擎实例

并发安全:

gRPC 框架保证每个请求在独立 goroutine 中处理。
service 的无状态设计确保并发安全。

使用示例:

eng, _ := engine.New(&engine.Config{...})
service := api.New(eng)

grpcServer := grpc.NewServer()
types.RegisterMicroTSServer(grpcServer, service)
listener, _ := net.Listen("tcp", ":50051")
grpcServer.Serve(listener)

func New

func New(eng *engine.Engine) *MicroTSService

New 创建 gRPC 服务实例。

参数:

  • eng: 存储引擎实例

返回:

  • *MicroTSService: 服务实例

func (*MicroTSService) CreateDatabase

CreateDatabase 处理创建数据库请求。

参数:

  • ctx: gRPC 上下文
  • req: 创建请求,包含数据库名称

返回:

  • *types.CreateDatabaseResponse: 创建结果
  • error: 创建失败时返回 gRPC 错误

func (*MicroTSService) CreateMeasurement

CreateMeasurement 处理创建 Measurement 请求。

参数:

  • ctx: gRPC 上下文
  • req: 创建请求,包含数据库和 Measurement 名称

返回:

  • *types.CreateMeasurementResponse: 创建结果
  • error: 创建失败时返回 gRPC 错误

func (*MicroTSService) DropDatabase

DropDatabase 处理删除数据库请求。

参数:

  • ctx: gRPC 上下文
  • req: 删除请求,包含数据库名称

返回:

  • *types.DropDatabaseResponse: 删除结果
  • error: 删除失败时返回 gRPC 错误

func (*MicroTSService) DropMeasurement

DropMeasurement 处理删除 Measurement 请求。

参数:

  • ctx: gRPC 上下文
  • req: 删除请求,包含数据库和 Measurement 名称

返回:

  • *types.DropMeasurementResponse: 删除结果
  • error: 删除失败时返回 gRPC 错误

func (*MicroTSService) Health

Health 处理健康检查请求。

参数:

  • ctx: gRPC 上下文
  • req: 健康检查请求(当前为空)

返回:

  • *types.HealthResponse: 健康状态响应
  • error: 处理失败时返回 gRPC 错误

响应字段:

  • Healthy: 服务是否健康
  • Version: 服务版本号

典型用途:

用于负载均衡器健康检查、Kubernetes liveness/readiness 探针。

func (*MicroTSService) ListDatabases

ListDatabases 处理列出数据库请求。

参数:

  • ctx: gRPC 上下文
  • req: 列表请求(当前为空)

返回:

  • *types.ListDatabasesResponse: 数据库列表
  • error: 查询失败时返回 gRPC 错误

func (*MicroTSService) ListMeasurements

ListMeasurements 处理列出 Measurement 请求。

参数:

  • ctx: gRPC 上下文
  • req: 列表请求,包含数据库名称

返回:

  • *types.ListMeasurementsResponse: Measurement 列表
  • error: 查询失败时返回 gRPC 错误

func (*MicroTSService) QueryRange

QueryRange 处理范围查询请求。

参数:

  • ctx: gRPC 上下文
  • req: 查询请求,包含时间范围和过滤条件

返回:

  • *types.QueryRangeResponse: 查询结果
  • error: 查询失败时返回 gRPC 错误

func (*MicroTSService) Write

Write 处理单点写入请求。

参数:

  • ctx: gRPC 上下文
  • req: 写入请求,包含 DataPoint

返回:

  • *types.WriteResponse: 写入响应,Success=true 表示成功
  • error: 处理失败时返回 gRPC 错误

func (*MicroTSService) WriteBatch

WriteBatch 处理批量写入请求。

参数:

  • ctx: gRPC 上下文
  • req: 批量写入请求,包含多个 DataPoint

返回:

  • *types.WriteBatchResponse: 批量写入响应
  • error: 处理失败时返回 gRPC 错误

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL