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).
{
"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