Express.js
Express アプリ向けのステータスページと稼働監視
Express ルート、ミドルウェアチェーン、Node ワーカーを監視。レスポンスタイム通知、SSL、ホステッドページ、ヘッドレス API。
Express.js のステータスページを公開する 3 つの方法
必要な制御レベルを選択 — ノーコード、ローコード、フルヘッドレス。
ホステッド
Express.js エンドポイントを追加し status.yourdomain.com に CNAME を向けるだけ。5 分で完成。
埋め込みバッジ
SVG の稼働率・ステータスバッジを README やランディングに埋め込み。5 分ごとに自動更新。
この health エンドポイントを Express.js アプリに貼り付けます
コピペして PulseAPI を URL に向けるだけ。健康なら 200、劣化なら 503 を返します。
src/routes/health.ts
import { Router } from 'express'
import { db } from '../db'
import { redis } from '../redis'
const router = Router()
router.get('/health', async (_, res) => {
const checks: Record<string, string> = {}
try { await db.raw('select 1'); checks.database = 'ok' } catch { checks.database = 'fail' }
try { const pong = await redis.ping(); checks.cache = pong === 'PONG' ? 'ok' : 'fail' } catch { checks.cache = 'fail' }
const healthy = Object.values(checks).every((v) => v === 'ok')
res.status(healthy ? 200 : 503).json({
status: healthy ? 'healthy' : 'degraded',
...checks,
})
})
export { router as healthRouter }認証ミドルウェア前にマウント。下流の短タイムアウトでプローブが停滞しません。
Express.js アプリで壊れるもの — それを検知する方法
未処理の Promise rejection
古い Node では非同期バグでプロセスが静かにクラッシュします。Uptime チェックで 502 を数秒で検知。
ミドルウェア順序バグ
順序変更で特定パスに 500 が漏れます。マルチエンドポイント監視で可視化。
時間経過のメモリリーク
ゆるいリークは数時間後に問題化。レスポンスタイム監視で GC ポーズを検知。
ヘッドレス視点
当社のステータスページが気に入らない? Express.js で自作してください。
当社 API はホステッド UI と同じデータを返します。完全な OpenAPI 仕様書は api.pulseapi.tech/docs.
カスタムステータスページを描画する Express ハンドラ。
router.get('/status', async (_, res) => {
const r = await fetch('https://api.pulseapi.tech/status/acme', {
signal: AbortSignal.timeout(5000),
})
const data = await r.json()
res.render('status', { data })
})Express.js 監視 — FAQ
Express 4、5、Connect、Fastify で動作?
任意の Node HTTP フレームワーク。PulseAPI はアプリ外部で動きます。
BullMQ / Agenda キューを監視できますか?
はい。キュー深さとワーカーハートビートを返すエンドポイントを公開し、閾値と鮮度をアサート。
HTTPS リダイレクトを扱いますか?
はい。PulseAPI はリダイレクトを追跡し最終レスポンスに対してアサートします。
Express 内にステータスページを組み込めますか?
はい。ハンドラから Public API を呼び EJS/Pug/Handlebars で描画、または JSON をフロントへ返却。