Feature idea: diagnostics in admin panel

Hi,
This is a feature idea. Often Django connects to external systems such as:

  • database
  • memcached
  • redis
  • celery
  • qcluster
  • email

Imagine there was a new page built into the admin panel, “system connectivity”, with all those items listed, and they could be “green” or “red”, showing the health of the connections.

A visual, basic control panel screen with a brief list of systems, and their status.

If no cache (memcached, redis) is available, perhaps a message recommending the administrator install one.

Each of the connections is tested somehow. Store and retrieve a value from redis. Or, send an outgoing email. Add the ability to customize the list by including more systems.

Could the code introspect? “you appear to be using queuing (or caching, or email), however that system is not online…”

In the future, more intelligence could be added to the diagnostics. How much traffic is going to each of those components. Can it be determined when there is a bottleneck.

Even if Django has been installed correctly originally, years later with new team members, it’s convenient to have an at-a-glance view such as an instrument panel.

Welcome @sdarwin !

This sounds like an excellent idea for a third-party package!

There’s no need for this to be part of core Django. Everything you’re describing here could be implemented as a separate app. Or, possibly even as a plugin for Django Debug Toolbar.

Have you checked djangopackages.org to see if such a tool has already been created? Maybe it exists in parts that could be pulled together into a coherent whole.

Thanks @KenWhitesell. I was just informed about django-health-check. That is probably the answer! If not exactly the same, it seems to match most of what I was imagining to start with.