Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/praefect/main.go2
-rw-r--r--internal/praefect/service/checks.go19
2 files changed, 16 insertions, 5 deletions
diff --git a/cmd/praefect/main.go b/cmd/praefect/main.go
index 078db25df..daed37853 100644
--- a/cmd/praefect/main.go
+++ b/cmd/praefect/main.go
@@ -436,7 +436,7 @@ func run(
protoregistry.GitalyProtoPreregistered,
nodeSet.Connections(),
primaryGetter,
- service.AllChecks(),
+ service.ReadinessChecks(),
)
)
metricsCollectors = append(metricsCollectors, transactionManager, coordinator, repl)
diff --git a/internal/praefect/service/checks.go b/internal/praefect/service/checks.go
index 9bf5e7bb0..37f51256c 100644
--- a/internal/praefect/service/checks.go
+++ b/internal/praefect/service/checks.go
@@ -38,9 +38,10 @@ const (
Fatal = "fatal"
)
-// Check is a struct representing a check on the health of a Gitaly cluster's setup. These are separate from the "healthcheck"
-// concept which is more concerned with the health of the praefect service. These checks are meant to diagnose any issues with
-// the praefect cluster setup itself and will be run on startup/restarts.
+// Check represents a check to be performed to validate Gitaly cluster health.
+// Checks are used to diagnose issues with Praefect cluster setup through the
+// Praefect CLI `check` subcommand and also performed through the invoking of
+// the readiness RPC.
type Check struct {
Run func(ctx context.Context) error
Name string
@@ -62,6 +63,16 @@ func AllChecks() []CheckFunc {
}
}
+// ReadinessChecks returns the checks invoked by the Praefect readiness RPC.
+func ReadinessChecks() []CheckFunc {
+ return []CheckFunc{
+ NewPraefectMigrationCheck,
+ NewGitalyNodeConnectivityCheck,
+ NewPostgresReadWriteCheck,
+ NewUnavailableReposCheck,
+ }
+}
+
// NewPraefectMigrationCheck returns a Check that checks if all praefect migrations have run
func NewPraefectMigrationCheck(conf config.Config, w io.Writer, quiet bool) *Check {
return &Check{
@@ -204,7 +215,7 @@ func NewUnavailableReposCheck(conf config.Config, w io.Writer, quiet bool) *Chec
}
// NewClockSyncCheck returns a function that returns a check that verifies if system clock is in sync.
-func NewClockSyncCheck(clockDriftCheck func(ntpHost string, driftThreshold time.Duration) (bool, error)) func(_ config.Config, _ io.Writer, _ bool) *Check {
+func NewClockSyncCheck(clockDriftCheck func(ntpHost string, driftThreshold time.Duration) (bool, error)) CheckFunc {
return func(conf config.Config, w io.Writer, quite bool) *Check {
return &Check{
Name: "clock synchronization",