aj-geddes avatar

uptime-monitoring

Implement uptime monitoring and status page systems for tracking service availability. Use when moni

提供方 aj-geddes|开源

Uptime Monitoring

Table of Contents

Overview

Set up comprehensive uptime monitoring with health checks, status pages, and incident tracking to ensure visibility into service availability.

When to Use

  • Service availability tracking
  • Health check implementation
  • Status page creation
  • Incident management
  • SLA monitoring

Quick Start

Minimal working example:

// Node.js health check
const express = require("express");
const app = express();

app.get("/health", (req, res) => {
  res.json({
    status: "ok",
    timestamp: new Date().toISOString(),
    uptime: process.uptime(),
  });
});

app.get("/health/deep", async (req, res) => {
  const health = {
    status: "ok",
    checks: {
      database: "unknown",
      cache: "unknown",
      externalApi: "unknown",
    },
  };

  try {
    const dbResult = await db.query("SELECT 1");
    health.checks.database = dbResult ? "ok" : "error";
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Health Check EndpointsHealth Check Endpoints
Python Health ChecksPython Health Checks
Uptime Monitor with HeartbeatUptime Monitor with Heartbeat
Public Status Page APIPublic Status Page API
Kubernetes Health ProbesKubernetes Health Probes

Best Practices

✅ DO

  • Implement comprehensive health checks
  • Check all critical dependencies
  • Use appropriate timeout values
  • Track response times
  • Store check history
  • Monitor uptime trends
  • Alert on status changes
  • Use standard HTTP status codes

❌ DON'T

  • Check only application process
  • Ignore external dependencies
  • Set timeouts too low
  • Alert on every failure
  • Use health checks for load balancing
  • Expose sensitive information