sla.getsli

Opis

object sla.getsli(object parameters)

Ta metoda umożliwia obliczenie danych wskaźnika poziomu usługi (SLI) dla umowy o gwarantowanym poziomie usług (SLA).

Ta metoda jest dostępna dla użytkowników dowolnego typu. Uprawnienia do wywołania tej metody mogą zostać cofnięte w ustawieniach roli użytkownika. Więcej informacji można znaleźć w sekcji Role użytkowników.

Parametry

(object) Parametry zawierające identyfikator SLA, okresy raportowania oraz opcjonalnie identyfikatory usług, dla których ma zostać obliczony wskaźnik SLI.

Parametr Typ Opis
slaid ID Identyfikator SLA, dla którego mają zostać zwrócone informacje o dostępności.

Zachowanie parametru:
- wymagany
period_from timestamp Początkowy znacznik czasu (włącznie), dla którego ma zostać zaraportowany wskaźnik SLI.

Możliwe wartości: znacznik czasu Unix.
period_to timestamp Końcowy znacznik czasu (włącznie), dla którego ma zostać zaraportowany wskaźnik SLI.

Możliwe wartości: znacznik czasu Unix.
periods integer Liczba okresów do zaraportowania.

Możliwe wartości: 1-100
serviceids ID/array Identyfikatory usług, dla których ma zostać zwrócony wskaźnik SLI.

Podział na okresy

Poniższa tabela przedstawia układ zwracanych wycinków okresów na podstawie kombinacji parametrów.

Zwracane okresy nie poprzedzają pierwszego dostępnego okresu (na podstawie daty wejścia SLA w życie) i nie wykraczają poza bieżący okres.

Parametry Zwracane okresy
period_from period_to periods
- - - Ostatnie 20 okresów, w tym bieżący.
- - N Ostatnie N okresów.
- specified - Ostatnie 20 okresów przed period_to.
- specified N Ostatnie N okresów przed period_to.
specified - - Pierwsze 20 okresów zaczynając od period_from.
specified - N Pierwsze N okresów zaczynając od period_from.
specified specified - Do 100 okresów w określonym zakresie.
specified specified N N okresów w określonym zakresie.

Zwracane wartości

(object) Zwraca wyniki obliczenia.

Właściwość Type Opis
periods array Lista raportowanych okresów.

Każdy raportowany okres jest reprezentowany jako obiekt składający się z:
- period_from - (timestamp) Początkowy znacznik czasu (włącznie) raportowanego okresu.
- period_to - (timestamp) Końcowy znacznik czasu (wyłącznie) raportowanego okresu.

Okresy są sortowane według period_from, przy czym najwcześniejsze okresy pojawiają się jako pierwsze.
serviceids array Lista identyfikatorów usług w raportowanych okresach.

Kolejność sortowania listy nie jest określona. Nawet jeśli parametr serviceids został przekazany do metody sla.getsli.
sli array Dane SLI (jako tablica dwuwymiarowa) dla każdego raportowanego okresu i usługi.

Indeks właściwości periods jest używany jako pierwszy wymiar właściwości sli.

Indeks właściwości serviceids jest używany jako drugi wymiar właściwości sli.

Dane SLI

Dane SLI zwracane dla każdego raportowanego okresu i serwisu obejmują:

Właściwość Type Opis
uptime integer Czas, przez jaki serwis znajdował się w stanie OK podczas zaplanowanego czasu działania, pomniejszony o wykluczone przestoje.
downtime integer Czas, przez jaki serwis znajdował się w stanie not OK podczas zaplanowanego czasu działania, pomniejszony o wykluczone przestoje.
sli float SLI (procent całkowitego czasu działania), na podstawie czasu działania i przestoju.
error_budget integer Budżet błędów (w sekundach), na podstawie SLI i SLO.
excluded_downtimes array Tablica wykluczonych przestojów w tym okresie raportowania.

Każdy obiekt będzie zawierał następujące parametry:
- name - (string) Nazwa wykluczonego przestoju.
- period_from - (timestamp) Znacznik czasu rozpoczęcia (włącznie) wykluczonego przestoju.
- period_to - (timestamp) Znacznik czasu zakończenia (wyłącznie) wykluczonego przestoju.

Wykluczone przestoje są sortowane według period_from, przy czym najwcześniejsze okresy są wyświetlane jako pierwsze.

Przykłady

Obliczanie SLI dla dziennego SLA

Pobierz dane SLI dla usług o identyfikatorach „1” i „4”, które są powiązane ze SLA o identyfikatorze „1”. Pobierz dane dla jednego okresu do „1761861599” (30 paź 2025 23:59:59 GMT+0200). Ponieważ okres raportowania SLA jest dzienny, dane SLI są pobierane od „1761775200” (30 paź 2025 00:00:00 GMT+0200) do „1761861600” (31 paź 2025 00:00:00 GMT+0200).

Żądanie:

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

Odpowiedź:

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

Obliczanie SLI dla miesięcznego SLA

Pobierz dane SLI o usługach o identyfikatorach „50”, „60” i „70”, które są powiązane ze SLA o identyfikatorze „5”. Pobierz dane dla trzech okresów rozpoczynających się od „1635724800” (01 lis 2021 00:00:00 UTC). Ponieważ okres raportowania SLA jest miesięczny, dane SLI są pobierane dla następujących trzech miesięcy:

  • Od „1635724800” (01 lis 2021 00:00:00 UTC) do „1638316800” (01 gru 2021 00:00:00 UTC)
  • Od „1638316800” (01 gru 2021 00:00:00 UTC) do „1640995200” (01 sty 2022 00:00:00 UTC)
  • Od „1640995200” (01 sty 2022 00:00:00 UTC) do „1643673600” (01 lut 2022 00:00:00 UTC)

Żądanie:

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

Odpowiedź:

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

Źródło

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