sla.getsli
Opis
object sla.getsli(object parameters)
Ta metoda umożliwia obliczanie danych Service Level Indicator (SLI) dla Service Level Agreement (SLA).
Ta metoda jest dostępna dla użytkowników dowolnego typu. Uprawnienia do wywołania metody można odebrać w ustawieniach roli użytkownika. Zobacz Role użytkowników , aby uzyskać więcej informacji.
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).
{
"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)
{
"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