Une surveillance depuis l'extérieur pilotable depuis votre pipeline
AlertSleep vérifie vos endpoints publics, vos ports, vos certificats et vos tâches planifiées depuis l'extérieur de votre réseau, confirme chaque échec avant d'alerter qui que ce soit, et reçoit ses instructions de votre CI via une simple API REST. Rien à installer sur vos serveurs.
- Vérification toutes les 60 secondes
- Fenêtres de maintenance depuis la CI
- SMS et appels téléphoniques inclus
# .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\"]}"
Ce que vous pouvez surveiller
Tout ce qui est accessible depuis Internet et dont dépendent vos utilisateurs ou vos tâches.
Pilotez-le depuis le pipeline
Aucun plugin à installer ni à maintenir à jour : chaque étape est une requête HTTP.
Surveiller un nouveau service
Après le premier déploiement d'un service, créez son moniteur dans la même tâche et conservez l'identifiant renvoyé pour les étapes suivantes.
# 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.idRetirer un serveur du service
Mettez ses moniteurs en pause pendant qu'il est vidé ou reconstruit, puis réactivez-les à son retour. Un moniteur en pause n'envoie aucune alerte.
# 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"}'Prouver que la sauvegarde a tourné
Signalez le démarrage, le succès ou le code de sortie. Une exécution qui ne démarre jamais, ne se termine jamais ou échoue déclenche l'envoi d'un 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"
fiAPI publique sur /public/v1, un jeton d'API dans l'en-tête AuthToken, jusqu'à 500 requêtes par minute et par jeton. Une fenêtre de maintenance dure au maximum 24 heures : un pipeline qui plante en cours de route ne peut donc pas rendre vos moniteurs muets pour de bon. Plus d'exemples pour les développeurs
Moins de fausses alertes à 3 h du matin
Une alerte qui se révèle sans objet apprend à chacun à ignorer la suivante.
Confirmation depuis un second emplacement
Échecs consécutifs
Fenêtres de maintenance
Votre propre délai d'attente
Des canaux par moniteur
Prévenu quand c'est terminé
Où partent les alertes
Tous les canaux activés sur un moniteur sont alertés au même moment.
- L'alerte indique ce qui a échoué : le code de statut, le délai dépassé, l'erreur DNS, de connexion ou TLS, ou le mot-clé manquant.
- Le webhook envoie du JSON lors des événements monitor.down, monitor.up et des événements de certificat, signé en HMAC-SHA256 lorsque vous définissez un secret.
- Les SMS et les appels téléphoniques sont inclus dans le forfait, à partir de $59 par an, sous forme de quota mensuel, sans packs de crédits à acheter.
- Les appels téléphoniques et les SMS peuvent être rédigés en anglais, allemand, français, espagnol, polonais ou tchèque.
Ce qu'AlertSleep n'est pas
Pour que vous le sachiez avant de vous inscrire.
- Il vérifie depuis l'extérieur et n'atteint donc que des adresses publiques. Les services situés sur un réseau privé ou derrière un VPN ne peuvent pas être surveillés, et il n'y a aucun agent à installer.
- Il enregistre la disponibilité et le temps de réponse, pas des métriques : ni CPU ni mémoire, ni performances des requêtes, pools de connexions ou retard de réplication, ni logs ni traces.
- Il ne découvre rien automatiquement. Il n'y a pas d'intégration Kubernetes ; chaque endpoint ou port est un moniteur que vous créez, dans le tableau de bord ou via l'API.
- Il n'y a ni plugins de CI, ni provider Terraform, ni configuration YAML. curl dans une étape de pipeline fait le même travail.
- Il n'y a pas d'intégration PagerDuty ou Opsgenie, ni de rotation d'astreinte. Le webhook générique peut alimenter un outil qui accepte les webhooks entrants.
- Une vérification de port se limite à une connexion TCP ; UDP n'est pas pris en charge.
Questions fréquemment posées
Comment AlertSleep s'intègre-t-il à un pipeline CI/CD ?
Comment éviter les alertes pendant un déploiement ?
AlertSleep peut-il surveiller Kubernetes ?
Puis-je surveiller des bases de données et des services internes ?
AlertSleep s'intègre-t-il à PagerDuty ou Opsgenie ?
En combien de temps serai-je informé d'une panne ?
Existe-t-il un provider Terraform ou une configuration YAML ?
Puis-je l'essayer gratuitement ?
Placez votre premier endpoint sous surveillance
Ajoutez-le dans le tableau de bord ou en un seul appel d'API, puis coupez ses alertes depuis votre prochain déploiement. Essai gratuit de 14 jours, sans carte bancaire.