sla.getsli
Description
object sla.getsli(object parameters)
Cette méthode permet de calculer les données de l’indicateur de niveau de service (SLI) pour un accord de niveau de service (SLA).
Cette méthode est disponible pour les utilisateurs de tout type. Les autorisations permettant d’appeler la méthode peuvent être révoquées dans les paramètres du rôle utilisateur. Voir User roles pour plus d’informations.
Paramètres
(object) Paramètres contenant l’ID du SLA, les périodes de rapport et, éventuellement,
les ID des services pour lesquels calculer le SLI.
| Paramètre | Type | Description |
|---|---|---|
| slaid | ID | ID du SLA pour lequel retourner les informations de disponibilité. Comportement des paramètres : - obligatoire |
| period_from | timestamp | Horodatage de début (inclus) pour lequel rapporter le SLI. Valeurs possibles : horodatage Unix. |
| period_to | timestamp | Horodatage de fin (inclus) pour lequel rapporter le SLI. Valeurs possibles : horodatage Unix. |
| periods | integer | Nombre de périodes à rapporter. Valeurs possibles : 1-100 |
| serviceids | ID/array | ID des services pour lesquels retourner le SLI. |
Partitionnement des périodes
Le tableau suivant illustre l’organisation des tranches de périodes renvoyées selon les combinaisons de paramètres.
Les périodes renvoyées ne précèdent pas la première période disponible (en fonction de la date d’effet du SLA) et ne dépassent pas la période en cours.
| Paramètres | Périodes renvoyées | ||
|---|---|---|---|
| period_from | period_to | periods | |
| - | - | - | 20 dernières périodes, y compris la période en cours. |
| - | - | N | N dernières périodes. |
| - | specified | - | 20 dernières périodes avant period_to. |
| - | specified | N | N dernières périodes avant period_to. |
| specified | - | - | 20 premières périodes à partir de period_from. |
| specified | - | N | N premières périodes à partir de period_from. |
| specified | specified | - | Jusqu’à 100 périodes dans la plage spécifiée. |
| specified | specified | N | N périodes dans la plage spécifiée. |
Valeurs de retour
(object) Renvoie les résultats du calcul.
| Propriété | Type | Description |
|---|---|---|
| periods | array | Liste des périodes rapportées. Chaque période rapportée est représentée comme un objet composé de : - period_from - (timestamp) Horodatage de début (inclusif) de la période rapportée.- period_to - (timestamp) Horodatage de fin (exclusif) de la période rapportée.Les périodes sont triées par period_from, les plus anciennes apparaissant en premier. |
| serviceids | array | Liste des ID de service dans les périodes rapportées. L’ordre de tri de la liste n’est pas défini. Même si le paramètre serviceids a été transmis à la méthode sla.getsli. |
| sli | array | Données SLI (sous la forme d’un tableau à deux dimensions) pour chaque période rapportée et service. L’index de la propriété periods est utilisé comme première dimension de la propriété sli.L’index de la propriété serviceids est utilisé comme deuxième dimension de la propriété sli. |
Données SLI
Les données SLI renvoyées pour chaque période de rapport et service comprennent :
| Propriété | Type | Description |
|---|---|---|
| uptime | integer | Durée pendant laquelle le service est resté dans un état OK pendant le temps de fonctionnement planifié, moins les temps d'arrêt exclus. |
| downtime | integer | Durée pendant laquelle le service est resté dans un état not OK pendant le temps de fonctionnement planifié, moins les temps d'arrêt exclus. |
| sli | float | SLI (pourcentage du temps de fonctionnement total), basé sur uptime et downtime. |
| error_budget | integer | Budget d'erreur (en secondes), basé sur le SLI et le SLO. |
| excluded_downtimes | array | Tableau des temps d'arrêt exclus dans cette période de rapport. Chaque objet contiendra les paramètres suivants : - name - (string) Nom du temps d'arrêt exclu.- period_from - (timestamp) Horodatage de début (inclusif) du temps d'arrêt exclu.- period_to - (timestamp) Horodatage de fin (exclusif) du temps d'arrêt exclu.Les temps d'arrêt exclus sont triés par period_from, les périodes les plus anciennes apparaissant en premier. |
Exemples
Calcul du SLI pour un SLA quotidien
Récupérez les données SLI pour les services ayant les ID « 1 » et « 4 » qui sont liés au SLA ayant l’ID « 1 ». Récupérez les données pour une seule période jusqu’à « 1761861599 » (30 oct. 2025 23:59:59 GMT+0200). Étant donné que la période de rapport du SLA est quotidienne, les données SLI sont récupérées de « 1761775200 » (30 oct. 2025 00:00:00 GMT+0200) à « 1761861600 » (31 oct. 2025 00:00:00 GMT+0200).
Requête :
{
"jsonrpc": "2.0",
"method": "sla.getsli",
"params": {
"slaid": "1",
"serviceids": [
1,
4
],
"periods": 1,
"period_to": 1761861599
},
"id": 1
}
Réponse :
{
"jsonrpc": "2.0",
"result": {
"periods": [
{
"period_from": 1761775200,
"period_to": 1761861600
}
],
"serviceids": [
1,
4
],
"sli": [
[
{
"uptime": 43843,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance OCT",
"period_from": 1761825600,
"period_to": 1761829200
}
]
},
{
"uptime": 32225,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": []
}
]
]
},
"id": 1
}
Calcul du SLI pour un SLA mensuel
Récupérez les données SLI des services ayant les ID "50", "60" et "70" qui sont liés au SLA ayant l’ID "5". Récupérez les données pour trois périodes à partir de "1635724800" (01 nov. 2021 00:00:00 UTC). Comme la période de rapport du SLA est mensuelle, les données SLI sont récupérées pour les trois mois suivants :
- De "1635724800" (01 nov. 2021 00:00:00 UTC) à "1638316800" (01 déc. 2021 00:00:00 UTC)
- De "1638316800" (01 déc. 2021 00:00:00 UTC) à "1640995200" (01 janv. 2022 00:00:00 UTC)
- De "1640995200" (01 janv. 2022 00:00:00 UTC) à "1643673600" (01 févr. 2022 00:00:00 UTC)
Requête :
{
"jsonrpc": "2.0",
"method": "sla.getsli",
"params": {
"slaid": "5",
"serviceids": [
50,
60,
70
],
"periods": 3,
"period_from": 1635724800
},
"id": 1
}
Réponse :
{
"jsonrpc": "2.0",
"result": {
"periods": [
{
"period_from": 1635724800,
"period_to": 1638316800
},
{
"period_from": 1638316800,
"period_to": 1640995200
},
{
"period_from": 1640995200,
"period_to": 1643673600
}
],
"serviceids": [
50,
60,
70
],
"sli": [
[
{
"uptime": 1186212,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Nov 25 - Dec 01",
"period_from": 1637836212,
"period_to": 1638316800
}
]
},
{
"uptime": 1186212,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Nov 25 - Dec 01",
"period_from": 1637836212,
"period_to": 1638316800
}
]
},
{
"uptime": 1186212,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Nov 25 - Dec 01",
"period_from": 1637836212,
"period_to": 1638316800
}
]
}
],
[
{
"uptime": 1147548,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Dec 02 - Dec 10",
"period_from": 1638439200,
"period_to": 1639109652
}
]
},
{
"uptime": 1147548,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Dec 02 - Dec 10",
"period_from": 1638439200,
"period_to": 1639109652
}
]
},
{
"uptime": 1147548,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Dec 02 - Dec 10",
"period_from": 1638439200,
"period_to": 1639109652
}
]
}
],
[
{
"uptime": 1674000,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": []
},
{
"uptime": 1674000,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": []
},
{
"uptime": 1674000,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": []
}
]
]
},
"id": 1
}
Source
CSla::getSli() dans ui/include/classes/api/services/CSla.php