gitlab-org--gitlab-foss/lib/gitlab/gitaly_client/health_check_service.rb
Stan Hu 8671261309 Add a gRPC health check to ensure Gitaly is up
This will enable Geo to skip shards that not operational.

Relates to gitlab-org/gitlab-ee#4329
2018-01-24 15:47:27 -08:00

19 lines
557 B
Ruby

module Gitlab
module GitalyClient
class HealthCheckService
def initialize(storage)
@storage = storage
end
# Sends a gRPC health ping to the Gitaly server for the storage shard.
def check
request = Grpc::Health::V1::HealthCheckRequest.new
response = GitalyClient.call(@storage, :health_check, :check, request, timeout: GitalyClient.fast_timeout)
{ success: response&.status == :SERVING }
rescue GRPC::BadStatus => e
{ success: false, message: e.to_s }
end
end
end
end