Skip to main content

Django Reusable app that uses Celery Inspect command to monitor workers/tasks via the Django REST Framework

Project description

# django-celery-inspect

Django reusable-app that uses Celery Inspect command to monitor workers via the [Django REST Framework](https://github.com/tomchristie/django-rest-framework).

The main idea is to be able to monitor celery workers from another external service or server via a REST API and figure out if they are running or not by using celery's own [Inspect API]
(http://docs.celeryproject.org/en/latest/userguide/workers.html#inspecting-workers).

## Quick start

1. Install:

pip install django-celery-inspect

2. Add "celery_inspect" to your INSTALLED_APPS setting like this:

INSTALLED_APPS = [

...
'celery_inspect',
]

3. Add the following to your urls.py:

url(r'^api/v1/celery-inspect/', include('celery_inspect.urls', namespace='celery_inspect')),

4. If you Desire to use DRF's Authentication to protect these endpoints (Optional).

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
}

## Usage:

1. http://localhost:8000/api/v1/celery-inspect/ping/

{
"worker2@localhost:8000": {
"ok": "pong"
},
"worker1@localhost:8000": {
"ok": "pong"
}
}

2. http://localhost:8000/api/v1/celery-inspect/active/

{
"worker2@localhost:8000": [],
"worker1@localhost:8000": []
}

3. http://localhost:8000/api/v1/celery-inspect/registered/

{
"worker2@localhost:8000": [
"core.tasks.db_backup",
"core.tasks.send_queued_emails",
"yy.tasks.assign_to_mongo",
"xx.tasks.check_for_new_registered",
"xx.tasks.create_and_associate_manager",
"qq.celery.debug_task"
],
"worker1@localhost:8000": [
"core.tasks.db_backup",
"core.tasks.send_queued_emails",
"yy.tasks.assign_to_mongo",
"xx.tasks.check_for_new_registered",
"xx.tasks.create_and_associate_manager",
"qq.celery.debug_task"
]
}

4. http://localhost:8000/api/v1/celery-inspect/scheduled/

{
"worker2@localhost:8000": [],
"worker1@localhost:8000": []
}



### If for some reason you can only deal with status codes (This feature will only work if you have django-celery installed)

1. http://localhost:8000/api/v1/celery-inspect/active-status/

- Returns 200 if all workers in WorkerState are up.
- Returns 404 if workers are down (WorkerState != then inspect()).
- Returns 501 if djcelery a.k.a django-celery is not installed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-celery-inspect-0.2.1.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

django_celery_inspect-0.2.1-py2.py3-none-any.whl (9.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-celery-inspect-0.2.1.tar.gz.

File metadata

File hashes

Hashes for django-celery-inspect-0.2.1.tar.gz
Algorithm Hash digest
SHA256 5b824bae357ef86696b09a0e654c5a5769e66ebee7546e0c61d17136476c7f42
MD5 bd4203056c5fd9aa5677afc50e4feac1
BLAKE2b-256 7fa06f669b367d58e41e0c37e2e4f74445cfb8d6c5d0fc692cb0cd0c7edbc798

See more details on using hashes here.

File details

Details for the file django_celery_inspect-0.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_celery_inspect-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 31da8603dd2ef9214e01bf0501429fbcd326346de2023d2104068d248fbb99f4
MD5 84afaa2f7d2adf550e6558a813211408
BLAKE2b-256 1c1a5065c1da51098404ba3bbd7dbf29d8137c94f9cb397caaed4be3914a286f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page