Skip to content

Мониторинг своего сайта

Если вы делаете свой собственный сайт или приложение — на Python/Django, Node.js, Go, Rust, на любом стеке — Monisite подойдёт без всяких настроек. Просто добавьте URL и забудьте. Но есть несколько best practices которые сделают мониторинг точнее и удобнее.

Минимум:

  • Главная страница (или landing page)
  • Health-эндпоинт — отдельный URL /health или /ping для технических проверок

Желательно:

  • Ключевые API-эндпоинты — авторизация, главные read-операции
  • Платёжные/критичные эндпоинты — отдельно

На бесплатном тарифе нет лимита на количество сайтов, поэтому добавляйте сколько нужно.

Best Practice: правильный health-эндпоинт

Section titled “Best Practice: правильный health-эндпоинт”

Хороший health-эндпоинт это:

Возвращает 200 OK если приложение работает
Возвращает 5xx если что-то критичное сломалось
Отвечает быстро (менее 1 секунды)
Не требует авторизации
Не нагружает БД сложными запросами

Пример на разных языках:

Python (FastAPI):

@app.get("/health")
async def health():
# Простая проверка — приложение запущено
return {"status": "ok"}

С проверкой БД:

@app.get("/health")
async def health(db: Session = Depends(get_db)):
try:
db.execute(text("SELECT 1"))
return {"status": "ok", "db": "ok"}
except Exception as e:
raise HTTPException(status_code=503, detail=f"DB unavailable: {e}")

Node.js (Express):

app.get('/health', (req, res) => {
res.json({ status: 'ok' });
});

Go:

http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("OK"))
})

Django:

def health(request):
return JsonResponse({"status": "ok"})
urlpatterns = [
path('health/', views.health),
# ...
]

Что НЕ делать в health-эндпоинте

Section titled “Что НЕ делать в health-эндпоинте”

Не зовите внешние API. Если ваш health зависит от Stripe API — при падении Stripe ваш сайт «упадёт», хотя сам сайт работает.

Не делайте тяжёлые БД-запросы. Health должен отвечать миллисекунды, не секунды.

Не возвращайте 200 если всё сломано. Health должен показывать реальное состояние.

Не требуйте авторизации. Monisite не отправляет токены — health должен быть открытым (на крайний случай — whitelisting по User-Agent).

Не пишите всю информацию о системе. Health = OK / Not OK. Без раскрытия версий ПО, имён БД и прочего что облегчает атаку.

Можно делать многоуровневые health-эндпоинты:

  • /health — простой, быстрый, проверяет что приложение запущено (10 ms)
  • /health/full — глубокий, проверяет БД, кэш, очереди, внешние сервисы (1-5 сек)

В Monisite мониторьте простой /health каждую минуту — это не нагружает. А /health/full сделайте для ручной диагностики или для внутренних дашбордов.

  1. Зарегистрируйтесь в Monisite

  2. Добавьте сайт через + Добавить сайт

  3. Введите URL — главную или health-эндпоинт

  4. По желанию добавьте несколько URL: главную + health + ключевые API — всё бесплатно

Особенности для разных стеков

Section titled “Особенности для разных стеков”

Микросервисная архитектура

Section titled “Микросервисная архитектура”

Если у вас несколько микросервисов — добавьте мониторинг каждого отдельно:

  • api.example.com/health
  • auth.example.com/health
  • payments.example.com/health

Так вы сразу видите какой именно сервис упал.

Для одностраничных приложений мониторьте:

  • HTML главной страницы — что фронт грузится
  • API-эндпоинт /health — что бэк работает

Без бэка фронт грузится но не работает — без обоих чеков вы не увидите частичное падение.

Серверлесс (Lambda, Cloudflare Workers)

Section titled “Серверлесс (Lambda, Cloudflare Workers)”

Workers тоже падают (cold start fail, превышение лимитов, deploy сломан). Мониторьте конкретные URL воркеров.

Канареечный (canary) деплой

Section titled “Канареечный (canary) деплой”

Если у вас blue-green или canary deployment — мониторьте обе версии отдельно. Если новая упала, старая держит — увидите сразу что новый деплой сломан, надо откатывать.

Если не разработчик но сайт самописный

Section titled “Если не разработчик но сайт самописный”

Если ваш сайт делал кто-то на заказ, и вы — владелец, а не разработчик:

  1. Попросите разработчика добавить простой /health эндпоинт
  2. Подключите мониторинг Monisite
  3. При падении — отправляйте разработчику скриншот алерта

Это снимает с вас «дежурство» — система сама ловит проблемы.

Для самописных проектов Monisite — простой и надёжный инструмент внешнего мониторинга (что вижу со стороны клиента). Дополняет внутренний мониторинг (Prometheus, Grafana), который видит инфраструктуру.

  • Проверка каждую минуту из 3 регионов
  • Уведомления в Telegram, MAX, email
  • Мониторинг SSL
  • Публичная страница статуса для клиентов
  • Бесплатно, без лимита сайтов

Подключить мониторинг →