mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
feat: implement grpc health service checking database connection (#4499)
This commit is contained in:
21
server/router/api/v1/health_service.go
Normal file
21
server/router/api/v1/health_service.go
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package v1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"google.golang.org/grpc/codes"
|
||||||
|
"google.golang.org/grpc/health/grpc_health_v1"
|
||||||
|
"google.golang.org/grpc/status"
|
||||||
|
|
||||||
|
"github.com/usememos/memos/store"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (s *APIV1Service) Check(ctx context.Context,
|
||||||
|
_ *grpc_health_v1.HealthCheckRequest) (*grpc_health_v1.HealthCheckResponse, error) {
|
||||||
|
history, err := s.Store.GetDriver().FindMigrationHistoryList(ctx, &store.FindMigrationHistory{})
|
||||||
|
if err != nil || len(history) == 0 {
|
||||||
|
return nil, status.Errorf(codes.Unavailable, "not available")
|
||||||
|
}
|
||||||
|
|
||||||
|
return &grpc_health_v1.HealthCheckResponse{Status: grpc_health_v1.HealthCheckResponse_SERVING}, nil
|
||||||
|
}
|
@@ -11,6 +11,7 @@ import (
|
|||||||
"github.com/labstack/echo/v4/middleware"
|
"github.com/labstack/echo/v4/middleware"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials/insecure"
|
"google.golang.org/grpc/credentials/insecure"
|
||||||
|
"google.golang.org/grpc/health/grpc_health_v1"
|
||||||
"google.golang.org/grpc/reflection"
|
"google.golang.org/grpc/reflection"
|
||||||
|
|
||||||
v1pb "github.com/usememos/memos/proto/gen/api/v1"
|
v1pb "github.com/usememos/memos/proto/gen/api/v1"
|
||||||
@@ -19,6 +20,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type APIV1Service struct {
|
type APIV1Service struct {
|
||||||
|
grpc_health_v1.UnimplementedHealthServer
|
||||||
|
|
||||||
v1pb.UnimplementedWorkspaceServiceServer
|
v1pb.UnimplementedWorkspaceServiceServer
|
||||||
v1pb.UnimplementedWorkspaceSettingServiceServer
|
v1pb.UnimplementedWorkspaceSettingServiceServer
|
||||||
v1pb.UnimplementedAuthServiceServer
|
v1pb.UnimplementedAuthServiceServer
|
||||||
@@ -46,6 +49,7 @@ func NewAPIV1Service(secret string, profile *profile.Profile, store *store.Store
|
|||||||
Store: store,
|
Store: store,
|
||||||
grpcServer: grpcServer,
|
grpcServer: grpcServer,
|
||||||
}
|
}
|
||||||
|
grpc_health_v1.RegisterHealthServer(grpcServer, apiv1Service)
|
||||||
v1pb.RegisterWorkspaceServiceServer(grpcServer, apiv1Service)
|
v1pb.RegisterWorkspaceServiceServer(grpcServer, apiv1Service)
|
||||||
v1pb.RegisterWorkspaceSettingServiceServer(grpcServer, apiv1Service)
|
v1pb.RegisterWorkspaceSettingServiceServer(grpcServer, apiv1Service)
|
||||||
v1pb.RegisterAuthServiceServer(grpcServer, apiv1Service)
|
v1pb.RegisterAuthServiceServer(grpcServer, apiv1Service)
|
||||||
|
Reference in New Issue
Block a user