Как использовать CustomHealthCheck с гемом health_check в ruby? - PullRequest
0 голосов
/ 02 октября 2018

С официального сайта health_check мы знаем, что он может добавить блок config.add_custom_check в файл конфигурации:

https://github.com/ianheggie/health_check

# Add one or more custom checks that return a blank string if ok, or an error message if there is an error
config.add_custom_check do
  CustomHealthCheck.perform_check # any code that returns blank on success and non blank string upon failure
end

# Add another custom check with a name, so you can call just specific custom checks. This can also be run using
# the standard 'custom' check.
# You can define multiple tests under the same name - they will be run one after the other.
config.add_custom_check('sometest') do
  CustomHealthCheck.perform_another_check # any code that returns blank on success and non blank string upon failure
end

Но о CustomHealthCheck class, как его определить?

Для okcomputer gem он предлагает способ, подобный следующему:

https://github.com/sportngin/okcomputer

# config/initializers/okcomputer.rb
class MyCustomCheck < OkComputer::Check
  def check
    if rand(10).even?
      mark_message "Even is great!"
    else
      mark_failure
      mark_message "We don't like odd numbers"
    end
  end
end

OkComputer::Registry.register "check_for_odds", MyCustomCheck.new

Не нашелиспользование около health_check драгоценный камень.


Обновление

Я пробовал:

Добавить эти источники в файл config/initializers/health_check.rb:

class CustomHealthCheck
  def perform_check
    if rand(10).even?
      p "Even is great!"
    else                                                                                                            
      p "We don't like odd numbers"
    end
  end
end

HealthCheck.setup do |config|
...

Выполнить curl -v localhost:3000/health_check.json, получил:

{"healthy":false,"message":"health_check failed: undefined method `perform_check' for CustomHealthCheck:Class"}%

Обновление 2

Отредактированный источник в config/initializers/health_check.rb:

class CustomHealthCheck
  def self.perform_check
    p 'OK'
  end
end

HealthCheck.setup do |config|
...

Получил:

{"healthy":false,"message":"health_check failed: OK"}%

1 Ответ

0 голосов
/ 02 октября 2018

Успех определяется возвращением пустой или пустой строки.Прямо сейчас ваш perform_check всегда возвращает строку «ОК», которая будет рассматриваться как сбой.

Попробуйте получить проходную проверку работоспособности:

class CustomHealthCheck
  def self.perform_check
    everything_is_good = true # or call some method to do more elaborate checking
    return everything_is_good ? "" : "We've got Problems"
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...