Skip to main content

Django app to show system status

Project description

Build Status Pypi

Status page application.

Installation

Install the package

pip install django-statusboard

Add the following applications to your Django projects

INSTALLED_APPS += [
    'django.contrib.humanize',
    'rest_framework',
    'statusboard',
]

Update your urlconf:

# myproject/urls.py
urlpatterns += [
    url(r'^statusboard/$', include('statusboard.urls')),
]

Update your database

./manage migrate

Configuration

You can configure the app using the dict STATUSBOARD in settings.py:

STATUSBOARD = {
    "INCIDENT_DAYS_IN_INDEX": 7,
    "OPEN_INCIDENT_IN_INDEX": True,
}
  • INCIDENT_DAYS_IN_INDEX: number of days to show in index (1 = today).

  • OPEN_INCIDENT_IN_INDEX: show not fixed incidents in index.

Customize pages

The following blocks are customizable in statusboard/base.html:

  • title: title of the page

  • branding: branding in fixed navbar

  • bootstrap_theme: bootstrap theme

  • header: header of the page

  • userlinks: links in the header

  • footer: footer div

  • style: CSS files

  • script: JavaScript files

Example: change branding and title

Django 1.8

Copy statusboard/templates/statusboard/base.html in one of your templates dir and edit the file.

Django >= 1.9

In Django >= 1.9, the templates can be extended recursively (see https://docs.djangoproject.com/en/1.9/releases/1.9/#templates).

Create a statusboard/base.html in one of your templates dir:

{% extends `statusboard/base.html %}

{% block title %}
ACME, Inc.
{% endblock %}

{% block branding %}
<a class="navbar-brand" href="{% url 'statusboard:index' %}">ACME status</a>
{% endblock %}

Notifications

django-statusboard doesn’t provide an out-of-the-box notification system, but it’s easy to implement using django signals.

Moreover, django-statusboard tracks the previous status of a service (Service._status).

from django.dispatch import receiver
from django.db.models.signals import post_save
from django.core.mail import mail_admins

from statusboard import Service

@receiver(post_save, sender=Service)
def notify_service_update(sender, instance, **kwargs):
    # Send an email to admins if the service is getting worse, otherwise do nothing.
    if instance.status > instance._status:
        mail_admins("Alert", "Service {} is {}".format(instance.name, instance.get_status_display()))

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-statusboard-0.5.4.tar.gz (206.2 kB view hashes)

Uploaded Source

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