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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/health_checks/redis/redis_abstract_check.rb')
-rw-r--r--lib/gitlab/health_checks/redis/redis_abstract_check.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/gitlab/health_checks/redis/redis_abstract_check.rb b/lib/gitlab/health_checks/redis/redis_abstract_check.rb
new file mode 100644
index 00000000000..ecad4b06ea9
--- /dev/null
+++ b/lib/gitlab/health_checks/redis/redis_abstract_check.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module HealthChecks
+ module Redis
+ module RedisAbstractCheck
+ include SimpleAbstractCheck
+
+ def check_up
+ successful?(check)
+ end
+
+ private
+
+ def redis_instance_class_name
+ Gitlab::Redis.const_get(redis_instance_name.camelize, false)
+ end
+
+ def metric_prefix
+ "redis_#{redis_instance_name}_ping"
+ end
+
+ def redis_instance_name
+ name.sub(/_check$/, '')
+ end
+
+ def successful?(result)
+ result == 'PONG'
+ end
+
+ # rubocop: disable CodeReuse/ActiveRecord
+ def check
+ catch_timeout 10.seconds do
+ redis_instance_class_name.with(&:ping)
+ end
+ end
+ # rubocop: enable CodeReuse/ActiveRecord
+ end
+ end
+ end
+end