Dla zespołów DevOps

Monitoring z zewnątrz, którym steruje Twój pipeline

AlertSleep sprawdza Twoje publiczne endpointy, porty, certyfikaty i zadania cykliczne spoza Twojej sieci, potwierdza awarię, zanim kogokolwiek obudzi, i przyjmuje polecenia z CI przez zwykłe REST API. Na serwerach nic nie instalujesz.

  • Sprawdzenie co 60 sekund
  • Okna serwisowe z CI
  • SMS-y i połączenia telefoniczne w cenie
Wycisz alerty na czas deployu w dowolnym CI, które uruchomi curl
# .github/workflows/deploy.yml
- name: Mute AlertSleep during the deploy
  env:
    ALERTSLEEP_TOKEN: ${{ secrets.ALERTSLEEP_TOKEN }}
    MONITOR_ID: ${{ vars.ALERTSLEEP_MONITOR_ID }}
  run: |
    curl -fsS -X POST https://api.alertsleep.com/public/v1/maintenance-windows \
      -H "AuthToken: $ALERTSLEEP_TOKEN" \
      -H "Content-Type: application/json" \
      -d "{\"title\":\"Deploy ${GITHUB_SHA::7}\",
           \"starts_at\":\"$(date -u +%FT%TZ)\",
           \"ends_at\":\"$(date -u -d '+20 min' +%FT%TZ)\",
           \"monitor_ids\":[\"$MONITOR_ID\"]}"

Steruj z pipeline'u

Żadnej wtyczki do instalowania i aktualizowania: każdy krok to jedno zapytanie HTTP.

Monitoruj nową usługę

Po pierwszym wdrożeniu usługi utwórz jej monitor w tym samym jobie i zachowaj zwrócone id na kolejne kroki.

# after a new service is deployed: watch its health endpoint
curl -fsS -X POST https://api.alertsleep.com/public/v1/monitors \
  -H "AuthToken: $ALERTSLEEP_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"friendly_name\":\"$SERVICE (prod)\",
       \"url\":\"https://$SERVICE.example.com/healthz\",
       \"type\":\"http\",\"interval_seconds\":60}" \
  | jq -r .monitor.id

Wyłącz serwer z ruchu

Wstrzymaj jego monitory na czas drenowania albo przebudowy i wznów je, gdy serwer wróci. Wstrzymany monitor nie wysyła alertów.

# taking a server out of service: stop checking it
curl -fsS -X PUT https://api.alertsleep.com/public/v1/monitors/$MONITOR_ID \
  -H "AuthToken: $ALERTSLEEP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status": "paused"}'

# back in service
curl -fsS -X PUT https://api.alertsleep.com/public/v1/monitors/$MONITOR_ID \
  -H "AuthToken: $ALERTSLEEP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status": "up"}'

Udowodnij, że backup się wykonał

Zgłoś start, sukces albo kod wyjścia. Przebieg, który nie wystartuje, nie skończy się albo zakończy błędem, oznacza e-mail.

#!/usr/bin/env bash
# nightly backup: report the start, the success or the exit code
set -o pipefail
PING=https://api.alertsleep.com/v1/ping/YOUR-TOKEN
curl -fsS "$PING/start"
if pg_dump "$DATABASE_URL" | gzip > /backups/db.sql.gz; then
  curl -fsS "$PING"
else
  curl -fsS "$PING/fail" -d exit_code=$? -d message="pg_dump failed"
fi

Publiczne API pod /public/v1, z tokenem API w nagłówku AuthToken, do 500 zapytań na minutę na token. Okno serwisowe trwa maksymalnie 24 godziny, więc pipeline, który padnie w połowie, nie wyciszy Twoich monitorów na zawsze. Więcej przykładów dla programistów

Mniej fałszywych alarmów o 3 w nocy

Alert, który okazuje się niczym, uczy ignorować następny.

Potwierdzenie z drugiej lokalizacji

Gdy sprawdzenie HTTP albo słowa kluczowego się nie powiedzie, to samo zapytanie od razu powtarzamy z drugiej, niezależnej lokalizacji. Jeśli stamtąd przejdzie, nikt nie zostaje obudzony.

Kolejne nieudane sprawdzenia

Wybierz, ile nieudanych sprawdzeń z rzędu, od 1 do 10, otwiera incydent, gdy nie ma drugiej opinii, na przykład przy monitorze portu.

Okna serwisowe

Planowane prace nie wywołują alertów i nie obniżają Twojej dostępności. Otwórz okno w panelu albo z pipeline'u i zamknij je wcześniej, gdy skończysz.

Własny timeout

Od 5 do 60 sekund dla każdego monitora, więc wolny, ale sprawny endpoint zostaje zielony, a zawieszony robi się czerwony.

Kanały dla każdego monitora

Produkcja może do Ciebie dzwonić, a staging tylko pisze na kanale czatu.

Wiadomość, gdy jest po wszystkim

Powiadomienie o przywróceniu po pierwszym udanym sprawdzeniu, a incydent z przyczyną zostaje w historii.

Dokąd trafiają alerty

Każdy kanał włączony w monitorze dostaje alert w tym samym momencie.

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, połączenia lub TLS albo brakujące słowo kluczowe.
  • Webhook wysyła JSON przy monitor.down, monitor.up i zdarzeniach certyfikatu, podpisany HMAC-SHA256, gdy ustawisz sekret.
  • SMS-y i połączenia telefoniczne są w cenie planu, od $59 rocznie, jako miesięczny limit, bez dokupowania pakietów kredytów.
  • Połączenia telefoniczne i SMS-y mogą być po angielsku, niemiecku, francusku, hiszpańsku, polsku albo czesku.

To Twój stack czy dostawca?

Sprawdź usługi chmurowe, hostingowe i deweloperskie, na których stoi Twoja infrastruktura. Każda strona pokazuje nasze własne sprawdzenia i oficjalne incydenty dostawcy.

Czym AlertSleep nie jest

Sprawdź, zanim założysz konto.

  • Sprawdza z zewnątrz, więc dociera tylko do publicznych adresów. Usług w sieci prywatnej albo za VPN nie da się monitorować i nie ma agenta do zainstalowania.
  • Zapisuje dostępność i czas odpowiedzi, nie metryki: bez CPU i pamięci, bez wydajności zapytań, pul połączeń czy opóźnienia replikacji, bez logów i trace'ów.
  • Niczego sam nie wykrywa. Nie ma integracji z Kubernetes; każdy endpoint czy port to monitor, który tworzysz w panelu albo przez API.
  • Nie ma wtyczek do CI, providera Terraform ani konfiguracji w YAML. curl w kroku pipeline'u zrobi to samo.
  • Nie ma integracji z PagerDuty ani Opsgenie ani rotacji dyżurów. Ogólny webhook możesz skierować do narzędzia, które przyjmuje przychodzące webhooki.
  • Sprawdzenie portu to połączenie TCP i nic więcej; UDP nie jest obsługiwane.

Najczęściej Zadawane Pytania

Jak AlertSleep wpasowuje się w pipeline CI/CD?

Przez REST API, curl-em albo dowolnym klientem HTTP w kroku pipeline'u. Otwórz okno serwisowe przed deployem i zamknij je po nim, utwórz monitor dla nowej usługi albo wstrzymaj monitory serwera, który wyłączasz z ruchu. Nie trzeba instalować żadnych wtyczek.

Jak uniknąć alertów w trakcie deployu?

Otwórz okno serwisowe dla monitorów, których dotyczy wdrożenie, w panelu albo POST-em na /public/v1/maintenance-windows, i zamknij je po zakończeniu deployu. Sprawdzenia trwają dalej, ale alerty nie wychodzą, a okno nie obniża Twojej dostępności. Okno trwa maksymalnie 24 godziny.

Czy AlertSleep może monitorować Kubernetes?

Może monitorować to, co Kubernetes wystawia publicznie: hosty ingressów, endpointy health i porty TCP na publicznych load balancerach. Nie komunikuje się z klastrem, nie wykrywa usług i nie widzi podów, więc każdy endpoint to monitor, który tworzysz ręcznie albo przez API z joba wdrożeniowego.

Czy mogę monitorować bazy danych i usługi wewnętrzne?

Tylko jeśli są osiągalne z internetu. Monitor portu otwiera połączenie TCP z publicznym adresem i zgłasza, czy zostało przyjęte. Adresy prywatne są odrzucane, a wydajności zapytań ani opóźnienia replikacji nie mierzymy.

Czy AlertSleep integruje się z PagerDuty albo Opsgenie?

Nie bezpośrednio. Alerty trafiają na e-mail, SMS, połączenia telefoniczne, Slack, Microsoft Teams, Discord, Telegram, WhatsApp i ogólny, podpisany webhook. Jeśli korzystasz z narzędzia dyżurowego, skieruj webhook do jego integracji, która przyjmuje przychodzące webhooki.

Jak szybko dowiem się o awarii?

Sprawdzenia idą co 60 sekund. Nieudane sprawdzenie HTTP albo słowa kluczowego od razu powtarzamy z drugiej lokalizacji, a gdy obie się zgadzają, alert wychodzi natychmiast. Monitory portów czekają na ustawioną przez Ciebie liczbę kolejnych nieudanych sprawdzeń.

Czy jest provider Terraform albo konfiguracja w YAML?

Nie. Monitory tworzysz w panelu albo przez REST API, które skrypt lub krok pipeline'u może wywołać, żeby monitory nadążały za tym, co wdrażasz.

Czy mogę wypróbować za darmo?

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

Weź pod obserwację pierwszy endpoint

Dodaj go w panelu albo jednym wywołaniem API, a potem wycisz z najbliższego deployu. Wypróbuj za darmo przez 14 dni, bez karty.