docker-compose ps
печатает все сервисы внутри композиции.Мне нужно добавить проверку работоспособности для kafka.
Для приложений я добавил curl в образ докера и проверил их конечную точку работоспособности.Например, в Spring Boot я могу запустить активатор здоровья.
my-service-1:
healthcheck:
test: ["CMD", "curl", "-f", "http://my-service-1:8080/actuator/health"]
interval: 8s
timeout: 6s
retries: 10
Для mongodb я добавил скрипт, который запускается из docker-compose healthcheck
if mongo --quiet "localhost/test" --eval 'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'; then
exit 0
fi
exit 1
Обратите внимание, мы также используем JMXАгент по сбору метрикса с кафки.Тем не менее, сейчас я ищу очень простое решение, которое просто говорит, здоров ли Кафка (работает, доступен).Для этой простой проверки мне все равно, использует ли она сообщения или заблокирована.
То, что я пробовал
kafka-topics --zookeeper zookeeper-1:2181 --list 2>& 1
, которая печатает все темы кафки.Как вернуть 1, если нет тем или kafka недоступен?
Что если у нас несколько экземпляров zookeper?