Django

Django アプリ向けのステータスページと稼働監視

Django ビュー、データベース、Celery ワーカー、キャッシュを監視。レイテンシ急増やワーカー停止時にアラート。ホステッド型または API 経由のヘッドレス利用が可能。

Django のステータスページを公開する 3 つの方法

必要な制御レベルを選択 — ノーコード、ローコード、フルヘッドレス。

ホステッド

Django エンドポイントを追加し status.yourdomain.com に CNAME を向けるだけ。5 分で完成。

ヘッドレス

Public API を使って Django アプリ内に独自 UI を構築。デザインとブランディングを完全制御。

API を見る

埋め込みバッジ

SVG の稼働率・ステータスバッジを README やランディングに埋め込み。5 分ごとに自動更新。

この health エンドポイントを Django アプリに貼り付けます

コピペして PulseAPI を URL に向けるだけ。健康なら 200、劣化なら 503 を返します。

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,
    )

urls.py で /health/ にビューを接続します。認証ミドルウェアからは除外してください。PulseAPI は JSON をパースし、特定フィールドが "ok" であることをアサートできます。

Django アプリで壊れるもの — それを検知する方法

適用失敗マイグレーション

デプロイ時のマイグレーション失敗はアプリを不整合な状態にします。/health エンドポイントの外形監視で即座に検知できます。

無音になる Celery ワーカー

ワーカーはクラッシュせずに消費停止することがあります。no-op タスクを投入するヘルスエンドポイントを公開すれば、停止時にアラートできます。

コネクションプール枯渇

長時間クエリでプールが枯渇し新規リクエストがタイムアウトします。レスポンスタイム監視でユーザーが気づく前に発見できます。

ヘッドレス視点

当社のステータスページが気に入らない? Django で自作してください。

当社 API はホステッド UI と同じデータを返します。完全な OpenAPI 仕様書は api.pulseapi.tech/docs.

Django のビューから API を呼び出し、独自のステータスページを描画します。
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 監視 — FAQ

Django REST framework、Django Channels、素の Django で動きますか?

すべてで動作します。PulseAPI は指定 URL を呼びレスポンスをアサートするだけなので、内部スタックは問いません。

Celery ワーカーの監視方法は?

.delay() で軽量タスクを投入して短いタイムアウトで結果を読むヘルスエンドポイントを公開してください。タスクが完了しなければ 503 を返します。

ステージングでも使えますか?

はい。環境ごとにエンドポイントを作成しタグ付けできます。公開ステータスページからステージングを非表示にしつつアラートだけ受け取れます。

Django 内でステータスページをセルフホストできますか?

はい。ヘッドレス API はホステッド UI と同じデータを返します。ビューで取得しテンプレートに渡すだけです。

Django アプリの監視を 5 分で開始

無料プラン、クレジットカード不要。エンドポイントを追加して障害時にアラート。