You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the healthcheck endpoint checks both rabbitmq and redis, and this will be fetched from CELERY_BROKER_URL.
But in practice, only one of these two will be used.
Currently, this means that one of the checks will always be failing. This is an issue, because the endpoint returns a 500 error if any of the checks are failing, so we can't use any automated checking tools that will just check the status code.
I think there are 2 ways to go about this:
Have separate REDIS_URL and RABBITMQ_URL configs, and choose the BROKER_URL from one of them (preferring one over the other if both are supplied), and only add a healthcheck for each of those if they're supplied.
Have separate BROKER_URL, REDIS_URL, and RABBITMQ_URL, and use the celery healthcheck to check the BROKER_URL, and the redis and rabbitmq healthchecks to check the others, also only adding the healthchecks if the config values are supplied.
I think the issue for 2 is that if the celery worker is down, we don't want to be alerting or restarting the django web process, because there's nothing wrong with it, the issue is with the celery worker. But we still want to be able to alert if Django cannot contact the message broker. For that reason I'm leaning towards 1.
The text was updated successfully, but these errors were encountered:
Currently, the healthcheck endpoint checks both rabbitmq and redis, and this will be fetched from
CELERY_BROKER_URL
.But in practice, only one of these two will be used.
Currently, this means that one of the checks will always be failing. This is an issue, because the endpoint returns a
500
error if any of the checks are failing, so we can't use any automated checking tools that will just check the status code.I think there are 2 ways to go about this:
REDIS_URL
andRABBITMQ_URL
configs, and choose theBROKER_URL
from one of them (preferring one over the other if both are supplied), and only add a healthcheck for each of those if they're supplied.BROKER_URL
,REDIS_URL
, andRABBITMQ_URL
, and use thecelery
healthcheck to check theBROKER_URL
, and the redis and rabbitmq healthchecks to check the others, also only adding the healthchecks if the config values are supplied.I think the issue for 2 is that if the celery worker is down, we don't want to be alerting or restarting the django web process, because there's nothing wrong with it, the issue is with the celery worker. But we still want to be able to alert if Django cannot contact the message broker. For that reason I'm leaning towards 1.
The text was updated successfully, but these errors were encountered: