Django

Statusseite und Uptime-Monitoring für Django-Anwendungen

Überwache Django-Views, Datenbank, Celery-Worker und Cache. Alerts bei Latenz-Spikes oder toten Workern. Gehostete Statusseite oder headless via API.

Drei Wege für eine Statusseite für Django

Wähle die Kontrolltiefe — kein Code, Low-Code oder Full Headless.

Gehostet

Django-Endpoint hinzufügen, CNAME auf status.deinedomain.com zeigen, fertig. In 5 Minuten.

Headless

Public API nutzen, eigene UI direkt in der Django-App bauen. Volle Kontrolle über Design und Branding.

API ansehen

Eingebettete Badges

SVG-Uptime- und -Status-Badges in README oder Landing Page einbauen. Aktualisiert sich alle 5 Minuten.

Diesen Health-Endpoint in deine Django-App einfügen

Kopieren, einfügen, PulseAPI auf die URL richten. 200 gesund, 503 degradiert.

health/views.py
from django.db import connection
from django.http import JsonResponse
from django.core.cache import cache
from django.views.decorators.http import require_GET


@require_GET
def health(request):
    checks = {}
    try:
        with connection.cursor() as cur:
            cur.execute("SELECT 1")
        checks["database"] = "ok"
    except Exception:
        checks["database"] = "fail"
    try:
        cache.set("health-probe", "1", 5)
        checks["cache"] = "ok" if cache.get("health-probe") == "1" else "fail"
    except Exception:
        checks["cache"] = "fail"
    healthy = all(v == "ok" for v in checks.values())
    return JsonResponse(
        {"status": "healthy" if healthy else "degraded", **checks},
        status=200 if healthy else 503,
    )

Verdrahte die View in urls.py mit /health/. Schließe Auth-Middleware aus. PulseAPI parst die JSON-Antwort und kann auf spezifische Felder "ok" asserten.

Was in Django-Apps kaputt geht — und wie man es fängt

Halb angewandte Migrationen

Eine fehlgeschlagene Migration beim Deploy hinterlässt die App in einem seltsamen Zustand. Der Live-/health-Endpoint-Check fängt das sofort ab.

Stille Celery-Worker

Worker können ohne Crash aufhören zu konsumieren. Expose einen Health-Endpoint, der einen No-Op-Task enqueuet — PulseAPI alertiert bei Stillstand.

Erschöpfter Connection-Pool

Lang laufende Queries erschöpfen den Pool, neue Requests laufen ins Timeout. Response-Time-Assertions bringen das an die Oberfläche, bevor Nutzer es merken.

Headless-Ansatz

Statusseite gefällt dir nicht? Bau sie in Django selbst.

Unsere API liefert dieselben Daten wie unsere gehostete UI. Volle OpenAPI-Spec unter api.pulseapi.tech/docs.

Eine eigene Statusseite innerhalb von Django rendern — unsere API aus einer View abrufen.
import requests
from django.shortcuts import render


def status_view(request):
    data = requests.get(
        "https://api.pulseapi.tech/status/acme", timeout=5,
    ).json()
    return render(request, "status.html", {"data": data})

Django-Monitoring — FAQ

Funktioniert es mit Django REST framework, Django Channels oder purem Django?

Mit allen. PulseAPI ruft die angegebene URL auf und asserted auf die Antwort. Der interne Stack ist egal.

Wie überwache ich Celery-Worker?

Expose einen Health-Endpoint, der einen trivialen Task mit .delay() dispatched und mit kurzem Timeout auf das Ergebnis wartet. 503 zurückgeben, wenn der Task nicht fertig wird.

Kann ich es mit Staging nutzen?

Ja. Ein Endpoint pro Umgebung, taggen. Staging-Endpoints lassen sich aus der öffentlichen Statusseite ausblenden, Alerts bleiben.

Kann ich die Statusseite in Django selbst hosten?

Ja — die Headless API liefert dieselben Daten wie die gehostete Seite. In einer View abrufen, an ein Template übergeben, fertig.

Deine Django-App in 5 Minuten überwachen

Kostenloser Tarif. Keine Kreditkarte. Endpoint hinzufügen, Alerts erhalten.