Dla programistów

Monitoring uptime sterowany ze skryptu

Pilnuj swoich API, zadań cron, portów i certyfikatów, twórz monitory i wyciszaj alerty z pipeline'u przez REST API, a gdy coś padnie, odbierz podpisany webhook. Zwykłe HTTP, bez agenta do instalowania.

  • Sprawdzenie co 60 sekund
  • REST API i podpisane webhooki
  • Logowanie przez GitHub
Utwórz monitor z wiersza poleceń
curl -X POST https://api.alertsleep.com/public/v1/monitors \
  -H "AuthToken: $ALERTSLEEP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "friendly_name": "Orders API",
    "url": "https://api.example.com/health",
    "type": "http",
    "interval_seconds": 60
  }'

Wepnij to w swój workflow

Wszystko poniżej to zwykłe zapytanie HTTP. Użyj curl, swojego CI albo dowolnego klienta HTTP.

Wycisz alerty na czas wdrożenia

Otwórz okno serwisowe z pipeline'u i zamknij je po zakończeniu deployu. Okno ma maksymalną długość, więc job, który padnie w połowie, nie wyciszy Twoich monitorów na zawsze.

# before the deploy: mute alerts for at most 15 minutes
START=$(date -u +%FT%TZ); END=$(date -u -d "+15 min" +%FT%TZ)
WINDOW_ID=$(curl -fsS -X POST https://api.alertsleep.com/public/v1/maintenance-windows \
  -H "AuthToken: $ALERTSLEEP_TOKEN" -H "Content-Type: application/json" \
  -d "{\"title\":\"Deploy $CI_COMMIT_SHORT_SHA\",\"starts_at\":\"$START\",
       \"ends_at\":\"$END\",\"monitor_ids\":[\"$MONITOR_ID\"]}" \
  | jq -r .maintenance_window.id)

./deploy.sh

# after it: end the window early
curl -fsS -X POST https://api.alertsleep.com/public/v1/maintenance-windows/$WINDOW_ID/end \
  -H "AuthToken: $ALERTSLEEP_TOKEN"

Heartbeaty z crona

Wywołaj /start, gdy zadanie rusza, żeby wyłapać także przebieg, który się zawiesi, a sam adres URL, gdy zakończy się sukcesem. Przy błędzie wywołaj /fail z kodem wyjścia, a e-mail wyjdzie od razu, a nie dopiero po okresie karencji.

# crontab: alert me if the nightly backup fails or never runs
# (one line in crontab)
0 3 * * * curl -fsS https://api.alertsleep.com/v1/ping/YOUR-TOKEN/start; /usr/local/bin/backup.sh && curl -fsS https://api.alertsleep.com/v1/ping/YOUR-TOKEN || curl -fsS https://api.alertsleep.com/v1/ping/YOUR-TOKEN/fail -d exit_code=$?

Reaguj na awarię w swoim kodzie

Integracja webhook wysyła JSON przy monitor.down, monitor.up i zdarzeniach certyfikatu. Gdy ustawisz sekret, każde zapytanie niesie podpis HMAC-SHA256 obejmujący znacznik czasu i treść, więc możesz odrzucać podrobione i powtórzone wywołania.

// Node: verify an AlertSleep webhook
const ts = req.headers['x-alertsleep-timestamp'];
const expected = 'sha256=' + crypto
  .createHmac('sha256', process.env.ALERTSLEEP_SECRET)
  .update(ts + '.' + rawBody).digest('hex');
const ok = crypto.timingSafeEqual(
  Buffer.from(expected),
  Buffer.from(req.headers['x-alertsleep-signature']));

// body: {"version":1,"event":"monitor.down",
//   "sent_at":"…","resource":{…},
//   "data":{"status":"down","reason":"HTTP 503 …"}}

Badge statusu w README

Każda publiczna strona statusu ma badge SVG z bieżącym stanem albo dostępnością z 30 dni, z linkiem do tej strony.

<!-- README.md -->
[![Status](https://status.alertsleep.com/your-page/badge.svg)](https://status.alertsleep.com/your-page)

<!-- 30-day uptime instead of the current state -->
![Uptime](https://status.alertsleep.com/your-page/badge.svg?type=uptime)

Publiczne API pod /public/v1, z tokenem API w nagłówku AuthToken, do 500 zapytań na minutę na token.

Alerty tam, gdzie już jesteś

Kanały wybierasz osobno dla każdego monitora. Nieudane sprawdzenie najpierw powtarzamy z drugiej lokalizacji, więc chwilowy problem po naszej stronie sieci nikogo nie budzi.

E-mail SMS Telefon Slack Microsoft Teams Discord Telegram WhatsApp Webhook
Wszystkie integracje
  • Alert mówi, co zawiodło: kod statusu, timeout, błąd DNS lub TLS albo brakujące słowo kluczowe.
  • Po pierwszym udanym sprawdzeniu dostajesz powiadomienie o przywróceniu.
  • SMS-y i połączenia telefoniczne są w cenie planu, od $59 rocznie.
  • Alerty mogą być po angielsku, niemiecku, francusku, hiszpańsku, polsku albo czesku.

To u nich czy u Ciebie?

Gdy deploy się wywala albo API łapie timeouty, sprawdź usługi, na których stoi Twój stack. Każda strona pokazuje nasze własne sprawdzenia i oficjalne incydenty dostawcy.

Konto, któremu powierzysz tokeny

Monitory przechowują dane dostępowe do Twoich systemów, więc konto chronimy tak, jak na to zasługuje.

Logowanie przez GitHub

Albo przez Google lub Microsoft, albo hasłem. Możesz powiązać kilka metod z jednym kontem.

Uwierzytelnianie dwuskładnikowe

Kody TOTP z dowolnej aplikacji uwierzytelniającej, z jednorazowymi kodami odzyskiwania.

Zaszyfrowane dane dostępowe

Nagłówki monitorów, hasła Basic Auth i ustawienia integracji przechowujemy w postaci zaszyfrowanej.

Tokeny API do unieważnienia

Osobny token dla każdego pipeline'u czy skryptu, przy każdym data ostatniego użycia, a usuniesz go jednym kliknięciem.

Czym AlertSleep nie jest

Zdecyduj, zanim założysz konto.

  • Nie ma CLI, SDK ani providera Terraform. API to zwykły JSON przez HTTPS, więc wystarczy curl albo dowolna biblioteka HTTP.
  • To nie jest APM ani narzędzie do logów: bez trace'ów, bez śledzenia błędów, bez metryk od prawdziwych użytkowników.
  • Jeden monitor wysyła jedno zapytanie. Wieloetapowe scenariusze i asercje schematu JSON umieść we własnym endpoincie health.
  • Sprawdzenia idą z jednej lokalizacji, a każdą awarię potwierdzamy z drugiej; nie mamy sieci punktów pomiarowych w wielu krajach.

Najczęściej Zadawane Pytania

Czy AlertSleep ma API?

Tak. Publiczne REST API pozwala listować, tworzyć, edytować i usuwać monitory, odczytywać ich sprawdzenia i incydenty oraz zarządzać oknami serwisowymi. Utwórz token w panelu i wysyłaj go w nagłówku AuthToken; każdy token pozwala na 500 zapytań na minutę.

Czy jest CLI albo SDK?

Nie. API to zwykły JSON przez HTTPS, więc wystarczy curl w skrypcie shellowym lub jobie CI albo dowolny klient HTTP w Twoim języku.

Jak wstrzymać alerty na czas wdrożenia?

Otwórz okno serwisowe dla monitorów, których dotyczy wdrożenie, w panelu albo POST-em z pipeline'u, i zamknij je po zakończeniu deployu. Sprawdzenia trwają dalej, ale alerty nie wychodzą, a okno nie obniża Twojej dostępności.

Jak monitorować zadanie cron albo worker kolejki?

Utwórz monitor cron z harmonogramem, podanym jako interwał albo wyrażenie cron ze strefą czasową, i z okresem karencji. Zadanie po zakończeniu wywołuje swój adres URL; jeśli sygnał nie dotrze na czas albo zadanie wywoła /fail, dostajesz e-mail.

Jak zweryfikować podpis webhooka?

Ustaw sekret w integracji webhook. Każde zapytanie niesie wtedy nagłówki X-AlertSleep-Timestamp i X-AlertSleep-Signature: sha256=, a po nim HMAC-SHA256 ze znacznika czasu, kropki i surowej treści. Policz tę samą wartość swoim sekretem, porównaj w stałym czasie i odrzucaj stare znaczniki czasu.

Czy mogę monitorować API za uwierzytelnianiem?

Tak. Wyślij token Bearer albo klucz API w nagłówku lub użyj Basic Auth. Dane dostępowe przechowujemy w postaci zaszyfrowanej i dołączamy je także do sprawdzenia potwierdzającego z drugiej lokalizacji.

Jak często wykonywane są sprawdzenia?

Co 60 sekund w każdym planie. Awarię od razu powtarzamy z drugiej lokalizacji, a gdy obie się zgadzają, alert wychodzi natychmiast.

Czy mogę wypróbować za darmo?

Tak. Oba plany zaczynają się od 14-dniowego okresu próbnego z API, webhookami i alertami SMS, bez karty. Po okresie próbnym płacisz od $59 rocznie.

Dodaj pierwszy endpoint w kilka minut

Utwórz monitor w panelu albo jednym wywołaniem API. Wypróbuj za darmo przez 14 dni, bez karty.