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