sla.getsli
Descrizione
object sla.getsli(object parameters)
Questo metodo consente di calcolare i dati del Service Level Indicator (SLI) per un Service Level Agreement (SLA).
Questo metodo è disponibile per utenti di qualsiasi tipo. Le autorizzazioni per chiamare il metodo possono essere revocate nelle impostazioni del ruolo utente. Vedere User roles per ulteriori informazioni.
Parametri
(object) Parametri contenenti l'ID dello SLA, i periodi di reporting e, facoltativamente,
gli ID dei servizi per i quali calcolare lo SLI.
| Parametro | Type | Descrizione |
|---|---|---|
| slaid | ID | ID dello SLA per il quale restituire le informazioni sulla disponibilità. Comportamento del parametro: - obbligatorio |
| period_from | timestamp | Timestamp iniziale (incluso) per il quale riportare lo SLI. Valori possibili: timestamp Unix. |
| period_to | timestamp | Timestamp finale (incluso) per il quale riportare lo SLI. Valori possibili: timestamp Unix. |
| periods | integer | Numero di periodi da riportare. Valori possibili: 1-100 |
| serviceids | ID/array | ID dei servizi per i quali restituire lo SLI. |
Suddivisione dei periodi
La tabella seguente mostra la disposizione delle sezioni di periodo restituite in base alle combinazioni dei parametri.
I periodi restituiti non precedono il primo periodo disponibile (in base alla data di entrata in vigore dello SLA) e non superano il periodo corrente.
| Parametri | Periodi restituiti | ||
|---|---|---|---|
| period_from | period_to | periods | |
| - | - | - | Ultimi 20 periodi, incluso quello corrente. |
| - | - | N | Ultimi N periodi. |
| - | specified | - | Ultimi 20 periodi prima di period_to. |
| - | specified | N | Ultimi N periodi prima di period_to. |
| specified | - | - | Primi 20 periodi a partire da period_from. |
| specified | - | N | Primi N periodi a partire da period_from. |
| specified | specified | - | Fino a 100 periodi nell'intervallo specificato. |
| specified | specified | N | N periodi nell'intervallo specificato. |
Valori restituiti
(object) Restituisce i risultati del calcolo.
| Proprietà | Type | Descrizione |
|---|---|---|
| periods | array | Elenco dei periodi riportati. Ciascun periodo riportato è rappresentato come un oggetto composto da: - period_from - (timestamp) Timestamp iniziale (incluso) del periodo riportato.- period_to - (timestamp) Timestamp finale (escluso) del periodo riportato.I periodi sono ordinati per period_from, con i periodi più vecchi visualizzati per primi. |
| serviceids | array | Elenco degli ID dei servizi nei periodi riportati. L'ordine di ordinamento dell'elenco non è definito. Anche se il parametro serviceids è stato passato al metodo sla.getsli. |
| sli | array | Dati SLI (come array bidimensionale) per ciascun periodo riportato e servizio. L'indice della proprietà periods viene utilizzato come prima dimensione della proprietà sli.L'indice della proprietà serviceids viene utilizzato come seconda dimensione della proprietà sli. |
Dati SLI
I dati SLI restituiti per ciascun periodo riportato e servizio consistono in:
| Proprietà | Type | Descrizione |
|---|---|---|
| uptime | integer | Quantità di tempo in cui il servizio è rimasto in stato OK durante il tempo di attività pianificato, al netto dei tempi di inattività esclusi. |
| downtime | integer | Quantità di tempo in cui il servizio è rimasto in stato not OK durante il tempo di attività pianificato, al netto dei tempi di inattività esclusi. |
| sli | float | SLI (percentuale del tempo di attività totale), basato su uptime e downtime. |
| error_budget | integer | Budget di errore (in secondi), basato su SLI e SLO. |
| excluded_downtimes | array | Array dei tempi di inattività esclusi in questo periodo di reporting. Ciascun oggetto conterrà i seguenti parametri: - name - (string) Nome del tempo di inattività escluso.- period_from - (timestamp) Timestamp iniziale (incluso) del tempo di inattività escluso.- period_to - (timestamp) Timestamp finale (escluso) del tempo di inattività escluso.I tempi di inattività esclusi sono ordinati per period_from, con i periodi più iniziali visualizzati per primi. |
Esempi
Calcolo dell'SLI per un SLA giornaliero
Recupera i dati SLI per i servizi con ID "1" e "4" collegati all'SLA con ID "1". Recupera i dati per un singolo periodo fino a "1761861599" (30 ott 2025 23:59:59 GMT+0200). Poiché il periodo di reporting dell'SLA è giornaliero, i dati SLI vengono recuperati da "1761775200" (30 ott 2025 00:00:00 GMT+0200) a "1761861600" (31 ott 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
}
Risposta:
{
"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
}
Calcolo dell'SLI per un SLA mensile
Recupera i dati SLI sui servizi con ID "50", "60" e "70" collegati all'SLA con ID "5". Recupera i dati per tre periodi a partire da "1635724800" (01 nov 2021 00:00:00 UTC). Poiché il periodo di reporting dell'SLA è mensile, i dati SLI vengono recuperati per i tre mesi seguenti:
- Da "1635724800" (01 nov 2021 00:00:00 UTC) a "1638316800" (01 dic 2021 00:00:00 UTC)
- Da "1638316800" (01 dic 2021 00:00:00 UTC) a "1640995200" (01 gen 2022 00:00:00 UTC)
- Da "1640995200" (01 gen 2022 00:00:00 UTC) a "1643673600" (01 feb 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
}
Risposta:
{
"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
}
Fonte
CSla::getSli() in ui/include/classes/api/services/CSla.php