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

Richiesta:

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

Richiesta:

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