sla.getsli

Beschreibung

object sla.getsli(object parameters)

Mit dieser Methode können die Daten des Service Level Indicator (SLI) für ein Service Level Agreement (SLA) berechnet werden.

Diese Methode ist für Benutzer aller Typen verfügbar. Die Berechtigungen zum Aufrufen der Methode können in den Einstellungen der Benutzerrolle entzogen werden. Weitere Informationen finden Sie unter Benutzerrollen.

Parameter

(object) Parameter, die die SLA-ID, Berichtszeiträume und optional die IDs der Services enthalten, für die der SLI berechnet werden soll.

Parameter Type Beschreibung
slaid ID ID des SLA, für das Verfügbarkeitsinformationen zurückgegeben werden sollen.

Parameter behavior:
- required
period_from timestamp Startzeitstempel (einschließlich), für den der SLI gemeldet werden soll.

Mögliche Werte: Unix-Zeitstempel.
period_to timestamp Endzeitstempel (einschließlich), für den der SLI gemeldet werden soll.

Mögliche Werte: Unix-Zeitstempel.
periods integer Anzahl der zu meldenden Zeiträume.

Mögliche Werte: 1-100
serviceids ID/array IDs der Services, für die der SLI zurückgegeben werden soll.

Aufteilung von Zeiträumen

Die folgende Tabelle veranschaulicht die Anordnung der zurückgegebenen Zeitraumabschnitte basierend auf Parameterkombinationen.

Zurückgegebene Zeiträume liegen nicht vor dem ersten verfügbaren Zeitraum (basierend auf dem Gültigkeitsdatum des SLA) und überschreiten nicht den aktuellen Zeitraum.

Parameter Zurückgegebene Zeiträume
period_from period_to periods
- - - Letzte 20 Zeiträume, einschließlich des aktuellen.
- - N Letzte N Zeiträume.
- angegeben - Letzte 20 Zeiträume vor period_to.
- angegeben N Letzte N Zeiträume vor period_to.
angegeben - - Erste 20 Zeiträume beginnend mit period_from.
angegeben - N Erste N Zeiträume beginnend mit period_from.
angegeben angegeben - Bis zu 100 Zeiträume im angegebenen Bereich.
angegeben angegeben N N Zeiträume im angegebenen Bereich.

Rückgabewerte

(object) Gibt die Ergebnisse der Berechnung zurück.

Eigenschaft Type Beschreibung
periods array Liste der gemeldeten Zeiträume.

Jeder gemeldete Zeitraum wird als Objekt dargestellt, das aus Folgendem besteht:
- period_from - (timestamp) Startzeitstempel (einschließlich) des gemeldeten Zeitraums.
- period_to - (timestamp) Endzeitstempel (ausschließlich) des gemeldeten Zeitraums.

Die Zeiträume sind nach period_from sortiert, wobei die frühesten Zeiträume zuerst erscheinen.
serviceids array Liste der Service-IDs in den gemeldeten Zeiträumen.

Die Sortierreihenfolge der Liste ist nicht definiert. Auch dann nicht, wenn der Parameter serviceids an die Methode sla.getsli übergeben wurde.
sli array SLI-Daten (als zweidimensionales Array) für jeden gemeldeten Zeitraum und Service.

Der Index der Eigenschaft periods wird als erste Dimension der Eigenschaft sli verwendet.

Der Index der Eigenschaft serviceids wird als zweite Dimension der Eigenschaft sli verwendet.

SLI-Daten

Die für jeden gemeldeten Zeitraum und Service zurückgegebenen SLI-Daten bestehen aus:

Eigenschaft Type Beschreibung
uptime integer Zeitspanne, die der Service während der geplanten Verfügbarkeit im Status OK verbracht hat, abzüglich der ausgeschlossenen Ausfallzeiten.
downtime integer Zeitspanne, die der Service während der geplanten Verfügbarkeit im Status not OK verbracht hat, abzüglich der ausgeschlossenen Ausfallzeiten.
sli float SLI (in Prozent der gesamten Verfügbarkeitszeit), basierend auf uptime und downtime.
error_budget integer Fehlerbudget (in Sekunden), basierend auf dem SLI und dem SLO.
excluded_downtimes array Array der ausgeschlossenen Ausfallzeiten in diesem Berichtszeitraum.

Jedes Objekt enthält die folgenden Parameter:
- name - (string) Name der ausgeschlossenen Ausfallzeit.
- period_from - (timestamp) Startzeitstempel (einschließlich) der ausgeschlossenen Ausfallzeit.
- period_to - (timestamp) Endzeitstempel (ausschließlich) der ausgeschlossenen Ausfallzeit.

Ausgeschlossene Ausfallzeiten werden nach period_from sortiert, wobei die frühesten Zeiträume zuerst erscheinen.

Beispiele

Berechnung des SLI für ein tägliches SLA

Rufen Sie SLI-Daten für Services mit den IDs „1“ und „4“ ab, die mit dem SLA mit der ID „1“ verknüpft sind. Rufen Sie Daten für einen einzelnen Zeitraum bis „1761861599“ (30. Okt. 2025 23:59:59 GMT+0200) ab. Da der Berichtszeitraum des SLA täglich ist, werden SLI-Daten von „1761775200“ (30. Okt. 2025 00:00:00 GMT+0200) bis „1761861600“ (31. Okt. 2025 00:00:00 GMT+0200) abgerufen.

Anfrage:

{
    "jsonrpc": "2.0",
    "method": "sla.getsli",
    "params": {
        "slaid": "1",
        "serviceids": [
            1,
            4
        ],
        "periods": 1,
        "period_to": 1761861599
    },
    "id": 1
}

Antwort:

{
    "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
}

Berechnung des SLI für eine monatliche SLA

Rufen Sie SLI-Daten für Services mit den IDs "50", "60" und "70" ab, die mit der SLA mit der ID "5" verknüpft sind. Rufen Sie Daten für drei Zeiträume ab, beginnend mit "1635724800" (01. Nov. 2021 00:00:00 UTC). Da der Berichtszeitraum der SLA monatlich ist, werden SLI-Daten für die folgenden drei Monate abgerufen:

  • Von "1635724800" (01. Nov. 2021 00:00:00 UTC) bis "1638316800" (01. Dez. 2021 00:00:00 UTC)
  • Von "1638316800" (01. Dez. 2021 00:00:00 UTC) bis "1640995200" (01. Jan. 2022 00:00:00 UTC)
  • Von "1640995200" (01. Jan. 2022 00:00:00 UTC) bis "1643673600" (01. Feb. 2022 00:00:00 UTC)

Anfrage:

{
    "jsonrpc": "2.0",
    "method": "sla.getsli",
    "params": {
        "slaid": "5",
        "serviceids": [
            50,
            60,
            70
        ],
        "periods": 3,
        "period_from": 1635724800
    },
    "id": 1
}

Antwort:

{
    "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
}

Quelle

CSla::getSli() in ui/include/classes/api/services/CSla.php