Skip to content
Learni
Voir tous les tutoriels
DevOps

Comment configurer StatusPage pour monitorer vos services en 2026

Read in English

Introduction

En 2026, la transparence sur l'état de vos services est cruciale pour maintenir la confiance des clients et utilisateurs. StatusPage, service d'Atlassian, permet de créer des pages de statut publiques comme celles de GitHub ou Stripe, affichant en temps réel l'état des composants (operational, degraded, outage). Ce tutoriel intermédiaire vous guide pas à pas pour configurer une page professionnelle : création de components, gestion d'incidents via API, envoi de métriques, abonnés et intégrations monitoring.

Pourquoi c'est essentiel ? Une page StatusPage réduit les tickets support de 40-60% (selon Atlassian), améliore le SEO avec des métriques fraîches, et s'intègre nativement à Datadog, Pingdom ou UptimeRobot. Nous alternons interface web et automatisations API pour une approche hybride. À la fin, votre page sera production-ready, avec scripts curl copiables pour CI/CD. Temps estimé : 30 minutes pour un setup basique, extensible à des flux avancés.

Prérequis

  • Compte gratuit sur statuspage.io (plan Free suffit pour démarrer).
  • Connaissances de base en REST API et curl (ou Postman pour tests).
  • Outil de monitoring externe (UptimeRobot gratuit recommandé).
  • Éditeur de texte pour scripts bash/JSON.
  • Accès admin à un domaine pour custom URL (optionnel).

Étape 1 : Créer votre page StatusPage

Connectez-vous sur statuspage.io et cliquez New Status Page. Choisissez un nom (ex: "MonService Status"), sous-domaine (ex: monstatus.statuspage.io) et langue française. Activez la page publique dès la création.

Dans Dashboard > API, récupérez votre API token (format OAuth). Copiez-le sécurisé (ne le commitez pas en Git). Testez-le avec curl -H "Authorization: OAuth VOTRE_TOKEN" https://api.statuspage.io/v1/pages/VOTRE_PAGE_ID pour valider. Cette clé donne accès en lecture/écriture aux components, incidents et métriques. Analogie : c'est comme une clé API Stripe, à protéger comme un mot de passe root.

Lister les components existants

list-components.sh
#!/bin/bash

# Remplacez par votre token et page ID (trouvable dans URL dashboard: statuspage.io/{page_id})
TOKEN="VotreOAuthTokenICI"
PAGE_ID="VotrePageID"

curl -s -H "Authorization: OAuth $TOKEN" \
     https://api.statuspage.io/v1/pages/$PAGE_ID/components.json \
     | jq '.components[] | {name: .name, id: .id, status: .status}'

# Exécutez avec: chmod +x list-components.sh && ./list-components.sh
# Nécessite jq pour pretty-print (brew install jq ou apt install jq)

Ce script bash liste tous les components de votre page via l'API StatusPage. Il utilise curl avec auth OAuth et jq pour formater la réponse JSON. Remplacez TOKEN et PAGE_ID ; c'est le premier test API pour valider vos accès. Piège : sans jq, la sortie est brute ; toujours vérifier les quotas API (500 req/min).

Étape 2 : Ajouter un component

Les components représentent vos services (ex: API, DB, Frontend). Dans l'interface, allez à Components > New Component : nommez-le "API Backend", description "Gestion des requêtes users", groupe "Backend". Status par défaut : operational. Activez backups et third-party metrics pour métriques externes.

Créer un nouveau component via API

create-component.sh
#!/bin/bash

TOKEN="VotreOAuthTokenICI"
PAGE_ID="VotrePageID"
COMPONENT_NAME="API Backend"
DESCRIPTION="Gestion des requêtes utilisateurs"
GROUP_ID=""  # Laissez vide ou ID d'un groupe existant

curl -X POST -s -H "Authorization: OAuth $TOKEN" \
     -H "Content-Type: application/json" \
     https://api.statuspage.io/v1/pages/$PAGE_ID/components.json \
     -d '{"component":{"name":"'${COMPONENT_NAME}'","description":"'${DESCRIPTION}'","group_id":"'${GROUP_ID}'","status":"operational"}}' \
     | jq '.'

# Vérifiez en dashboard ou relancez list-components.sh

Ce script crée un component programmatiquement, idéal pour IaC ou CI/CD. Il POST un JSON avec nom, description et status initial. Utilisez variables pour réutilisabilité ; testez avec list-components.sh après. Piège : double quotes dans JSON bash – utilisez single quotes pour éviter escaping.

Étape 3 : Gérer les incidents

Les incidents notifient dégradations/outages. Dans UI : Incidents > New Incident, titre "Dégradation API", impact sur component, update avec résolution. Pour automatisation, utilisez API.

Publier un incident via API

create-incident.sh
#!/bin/bash

TOKEN="VotreOAuthTokenICI"
PAGE_ID="VotrePageID"
COMPONENT_ID="IDduComponentCree"  # De list-components.sh

curl -X POST -s -H "Authorization: OAuth $TOKEN" \
     -H "Content-Type: application/json" \
     https://api.statuspage.io/v1/pages/$PAGE_ID/incidents.json \
     -d '{"incident":{"name":"Dégradation performance API","status":"investigating","components":[{"id":"'${COMPONENT_ID}'","status":"partial_outage"}],"body":"Investigation en cours, impact sur 20% des requêtes."}}' \
     | jq '.incident | {id: .id, name: .name, status: .status}'

# Résolvez plus tard: PATCH /incidents/{incident_id}.json avec status: "resolved"

Crée un incident avec impact sur un component spécifique, status investigating et partial_outage. Parfait pour alertes monitoring (PagerDuty trigger). Notez l'array components pour multi-sélection. Piège : status vals strictes (operational/degraded/major_outage); toujours update vers resolved.

Étape 4 : Configurer les métriques

Metrics affichent graphiques (uptime, latency). UI : Metrics > New Metric, source Graph (New Relic) ou Back-end (custom API). Pour custom, utilisez endpoint /pages/{id}/metrics/{metric_id}/data-points.json.

Payload JSON pour métrique custom

metric-data.json
{
  "data": {
    "timestamp": "2026-01-01T12:00:00+00:00",
    "value": 99.5,
    "values": {
      "success_rate": 99.5,
      "latency_p95": 250
    }
  }
}

JSON payload pour poster une data-point métrique (uptime % ou latency ms). Envoyez via curl POST à /pages/{page_id}/metrics/{metric_id}/data-points.json. Timestamp ISO8601 obligatoire ; values pour multi-métriques. Piège : timezone UTC, ou graph brisé.

Envoyer une métrique via curl

post-metric.sh
#!/bin/bash

TOKEN="VotreOAuthTokenICI"
PAGE_ID="VotrePageID"
METRIC_ID="VotreMetricID"  # Créez d'abord en UI

curl -X POST -s -H "Authorization: OAuth $TOKEN" \
     -H "Content-Type: application/json" \
     https://api.statuspage.io/v1/pages/$PAGE_ID/metrics/$METRIC_ID/data-points.json \
     -d @metric-data.json \
     | jq '.'

# Automatisez en cron ou GitHub Actions toutes les 5min

POST le JSON metric-data.json vers l'API pour updater graph live. Créez metric en UI d'abord (type Back-end). Idéal cronjob monitoring. Piège : rate limit 100/min ; batch si high-freq.

Étape 5 : Abonnés et notifications

Subscribers : UI > Subscribers > New Subscriber, email/Slack/RSS, routing rules (ex: only critical). API pour bulk.

Ajouter un abonné via API

create-subscriber.sh
#!/bin/bash

TOKEN="VotreOAuthTokenICI"
PAGE_ID="VotrePageID"

curl -X POST -s -H "Authorization: OAuth $TOKEN" \
     -H "Content-Type: application/json" \
     https://api.statuspage.io/v1/pages/$PAGE_ID/subscribers.json \
     -d '{"subscriber":{"name":"Equipe Dev","email":"dev@monentreprise.com","policy":{"send_reports":"daily","send_outages":"always","send_maintenance":"always"}}} ' \
     | jq '.subscriber | {id: .id, email: .email}'

# Routing: ajoutez "components": ["id1","id2"] pour filtre

Crée abonné email avec policy notifications (daily reports, always outages). Étendez à Slack webhook via UI. Piège : policy keys exactes ; testez avec incident pour valider.

Bonnes pratiques

  • Automatisez tout : Intégrez API à PagerDuty/New Relic pour incidents auto ; cron pour métriques.
  • Routing subscribers : Segmentez par component (ex: sales@ pour frontend only) pour réduire bruit.
  • Custom domain/Branding : Ajoutez CNAME vers votredomaine.com/status (plan Pro), CSS custom pour match brand.
  • Backups metrics : Multi-sources (UptimeRobot + internal probe) pour résilience.
  • Sécurité : Rotate token quarterly, RBAC si équipe multi-users (plan Enterprise).

Erreurs courantes à éviter

  • Token invalide : Vérifiez OAuth prefix ; régenérez si 401 Unauthorized.
  • Status mismatch : Components et incidents doivent aligner (partial_outage sur component si investigating).
  • Métriques non-graphées : Timestamp futur/past >7j ignoré ; toujours UTC.
  • Pas de notifs : Vérifiez policy subscriber et webhooks Slack (test via UI).

Pour aller plus loin

  • Docs officielles : StatusPage API.
  • Intégrez Terraform : Provider StatusPage pour IaC.
  • Alternatives self-hosted : Upptime ou Cachet.
  • Découvrez nos formations DevOps Learni pour monitoring avancé (Prometheus, Grafana).