diff --git a/ocis-pkg/handlers/checkgrpc.go b/ocis-pkg/handlers/checkgrpc.go new file mode 100644 index 0000000000..5018f42349 --- /dev/null +++ b/ocis-pkg/handlers/checkgrpc.go @@ -0,0 +1,22 @@ +package handlers + +import ( + "context" + "fmt" + + "google.golang.org/grpc/credentials/insecure" + + "google.golang.org/grpc" +) + +// NewGRPCCheck checks the reachability of a grpc server. +func NewGRPCCheck(address string) func(ctx context.Context) error { + return func(_ context.Context) error { + conn, err := grpc.NewClient(address, grpc.WithTransportCredentials(insecure.NewCredentials())) + if err != nil { + return fmt.Errorf("could not connect to grpc server: %v", err) + } + _ = conn.Close() + return nil + } +} diff --git a/services/search/pkg/server/debug/server.go b/services/search/pkg/server/debug/server.go index 85136a94de..dc12c2b4b2 100644 --- a/services/search/pkg/server/debug/server.go +++ b/services/search/pkg/server/debug/server.go @@ -14,7 +14,8 @@ func Server(opts ...Option) (*http.Server, error) { checkHandler := handlers.NewCheckHandler( handlers.NewCheckHandlerConfiguration(). - WithLogger(options.Logger), + WithLogger(options.Logger). + WithCheck("grpc reachability", handlers.NewGRPCCheck(options.Config.GRPC.Addr)), ) return debug.NewService( diff --git a/services/settings/pkg/server/debug/server.go b/services/settings/pkg/server/debug/server.go index 99179d7d48..242b1bfd04 100644 --- a/services/settings/pkg/server/debug/server.go +++ b/services/settings/pkg/server/debug/server.go @@ -15,7 +15,8 @@ func Server(opts ...Option) (*http.Server, error) { checkHandler := handlers.NewCheckHandler( handlers.NewCheckHandlerConfiguration(). WithLogger(options.Logger). - WithCheck("web reachability", handlers.NewHTTPCheck(options.Config.HTTP.Addr)), + WithCheck("web reachability", handlers.NewHTTPCheck(options.Config.HTTP.Addr)). + WithCheck("grpc reachability", handlers.NewGRPCCheck(options.Config.GRPC.Addr)), ) return debug.NewService( diff --git a/services/thumbnails/pkg/server/debug/server.go b/services/thumbnails/pkg/server/debug/server.go index 99179d7d48..242b1bfd04 100644 --- a/services/thumbnails/pkg/server/debug/server.go +++ b/services/thumbnails/pkg/server/debug/server.go @@ -15,7 +15,8 @@ func Server(opts ...Option) (*http.Server, error) { checkHandler := handlers.NewCheckHandler( handlers.NewCheckHandlerConfiguration(). WithLogger(options.Logger). - WithCheck("web reachability", handlers.NewHTTPCheck(options.Config.HTTP.Addr)), + WithCheck("web reachability", handlers.NewHTTPCheck(options.Config.HTTP.Addr)). + WithCheck("grpc reachability", handlers.NewGRPCCheck(options.Config.GRPC.Addr)), ) return debug.NewService(