Calculez la disponibilité à partir des incidents
Un mois de 30 jours, soit 43 200 minutes, avec trois pannes totalisant 45 minutes donne un peu moins de 99,9 % de disponibilité, soit deux neuf. Saisissez la période et la durée des pannes dans la même unité. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Période
- 43 200 minutes
- Incidents
- 10, 20, 15
- Nombre d'incidents
- 3 minutes
- Durée totale des incidents
- 45
- Temps disponible
- 43 155
- Pourcentage de disponibilité
- 99,8958333333
Transformez une fenêtre de surveillance et ses durées d’incident en un résultat de disponibilité clair. Ce calculateur additionne les interruptions, vérifie qu’elles tiennent dans la période, les soustrait du temps surveillé et fournit le pourcentage ainsi que la classification en neuf. Choisissez des secondes, minutes, heures ou jours et conservez la même unité partout. Le calcul est déterministe, sans réseau, calendrier, horodatage ni hypothèse de chevauchement.
Préparez une période et des durées fiables
Commencez par l’intervalle complet du rapport, par exemple 30 jours, 720 heures ou 43,200 minutes. Répertoriez ensuite chaque incident ayant réduit la disponibilité pendant cet intervalle. Utilisez une liste vide si aucune interruption n’a eu lieu.
Le calculateur considère les durées comme distinctes et ne détecte pas leur chevauchement ; regroupez donc au préalable les incidents simultanés d’un même service. La période doit être positive et chaque durée finie et non négative. Si leur somme dépasse la période, la demande est refusée au lieu de produire une disponibilité négative trompeuse.
Comprenez le pourcentage et les neuf
Les durées sont d’abord additionnées. Ce total est soustrait de la période ; le temps disponible est divisé par la période complète, puis multiplié par 100. Un résultat de 99.9 pour cent signifie que l’interruption représente un millième de l’intervalle.
La classification prend la partie entière du logarithme décimal négatif de la fraction indisponible : 0.001 donne trois neuf et 0.0001 en donne quatre. Les valeurs intermédiaires restent dans la catégorie inférieure. Sans incident, le résultat indique une disponibilité parfaite et omet tout nombre fini de neuf.
Exploitez le résultat dans vos rapports
Les champs conviennent aux synthèses et aux automatisations. Avant publication, vérifiez que la période correspond aux dates du rapport et que la maintenance planifiée suit la politique annoncée. Pour contrôler un objectif de service, comparez le pourcentage au seuil contractuel, pas seulement au libellé.
Une entrée invalide signale souvent des doublons, des unités mélangées ou des rapports incompatibles.
Cas d’usage
Publiez un bilan mensuel
Associez la durée du mois aux incidents confirmés pour obtenir un taux vérifiable et sa classification.
Contrôlez un objectif de service
Calculez la disponibilité mesurée avant de la comparer à un seuil ou à une politique de budget d’erreur.
Validez un export d’incidents
Repérez les rapports impossibles où les interruptions dépassent la fenêtre, souvent à cause de doublons ou d’unités mélangées.
Questions fréquentes
Quelles unités puis-je utiliser ?
Utilisez des secondes, minutes, heures ou jours. La période et toutes les durées doivent partager l’unité choisie.
Comment les neuf sont-ils classés ?
Le nombre fini est la partie entière du logarithme décimal négatif de la fraction indisponible, sans arrondi supérieur.
Que se passe-t-il sans incident ?
Une liste vide ou uniquement des durées nulles donne 100 pour cent et une disponibilité parfaite, sans nombre fini de neuf.
Les incidents qui se chevauchent sont-ils gérés ?
Non. Les durées sont additionnées telles quelles ; regroupez d’abord les interruptions simultanées du même service.
Pourquoi un résultat juste sous 99,9 % ne compte-t-il que deux neuf ?
Parce que les valeurs situées entre deux seuils exacts restent dans la classe inférieure. Trois neuf tolèrent au plus un millième de la période en panne, et 45 minutes sur 43 200 dépassent un peu ce seuil : le résultat ne revendique donc pas un objectif non atteint.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/web/status-page-uptime-percent \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"period":60,"incidents":[10,20,15]}'const res = await fetch("https://api.kit.forhosting.com/web/status-page-uptime-percent", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"period": 60,
"incidents": [
10,
20,
15
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/status-page-uptime-percent",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"period": 60,
"incidents": [
10,
20,
15
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/status-page-uptime-percent", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"period":60,"incidents":[10,20,15]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"period":60,"incidents":[10,20,15]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/status-page-uptime-percent", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"period": 60,
"incidents": [
10,
20,
15
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.status_page_uptime_percent",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_incidents | 10000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Préparez une période et des durées fiables
La période et les incidents doivent partager une unité.
Comprenez le pourcentage et les neuf
Le pourcentage est arrondi à douze décimales pour stabiliser le JSON, tandis que la classification emploie le rapport non arrondi.
Exploitez le résultat dans vos rapports
Le nombre d’incidents confirme les durées évaluées ; les temps d’interruption et de disponibilité conservent l’unité ; le pourcentage et son libellé communiquent le résultat. Le navigateur facilite les contrôles ponctuels, tandis qu’une requête API coûte $0.002 dans vos processus automatisés.
Questions techniques
Combien coûte un calcul par API ?
Chaque requête API coûte $0.002. Vous pouvez aussi exécuter le même calcul déterministe dans le navigateur.