[comment]: # ({d1387fc4-f9178426})
# sla.getsli

[comment]: # ({/d1387fc4-f9178426})

[comment]: # ({3fde2eb3-531f7cc6})
### Descripció

`object sla.getsli(object parameters)`

Aquest mètode permet calcular les dades de l'indicador de nivell de servei (SLI) per al Service Level Agreement (SLA).

::: noteclassic
Aquest mètode és disponible per a qualsevol mena d'usuaris. Els permisos per cridar al mètode es poden revocar a la configuració de rols d'usuaris. Per a més informació, veieu [Rols d'usuari](/manual/web_interface/frontend_sections/users/user_roles).
:::

[comment]: # ({/3fde2eb3-531f7cc6})

[comment]: # ({7b855c88-bcbf1cf2})
### Paràmetres

`(objecte)` Paràmetres que contenen l'ID de l'SLA, els períodes d'informe i, opcionalment,
els ID dels serveis - emprats per calcular l'SLI.

|Paràmetre|[Tipus](/manual/api/reference_commentary#data_types)|Descripció|
|--|--|------|
|slaid|ID|IDs dels serveis per als quals retornar informació de disponibilitat.<br><br>[Comportament del paràmetre](/manual/api/reference_commentary#parameter-behavior):<br>- *obligatori*|
|period\_from|timestamp|Data d'inici (inclosa) per a informar l'SLI.<br><br>Valor possible: marca de temps.|
|period\_to|timestamp|Data de finalització (exclusiva) per a la qual es notifica l'SLI.<br><br>Valor possible: marca de temps.|
|periods|matriu|Nombre preferit de períodes per informar.<br><br>Valors possibles: 1-100|
|serviceids|ID/array|ID dels serveis per als quals retornar l'SLI.|

[comment]: # ({/7b855c88-bcbf1cf2})

[comment]: # ({d1b5c39b-31bc72e4})
#### Partició de períodes

La taula següent mostra la disposició dels segments de període retornats en funció de combinacions de paràmetres.

::: noteclassic
Els períodes retornats no precederan el primer període disponible en funció de la data d'entrada en vigor de l'SLA i no superaran el període actual.
:::

|Paràmetres| | |Descripció|
|--|--|--|----|
|**període\_de**|**període\_a**|**períodes**| |
|-|-|-|Retorna els darrers 20 períodes.|
|-|-|N|Els darrers N períodes.|
|-|especificat|-|Els darrers 20 períodes abans de `període_fins`.|
|-|especificat|N|Els darrers N períodes abans de `període_fins`.|
|especificat|-|-|Primers 20 períodes que comencen amb `període_des de`.|
|especificat|-|N|Primers N períodes que comencen amb `període_des de`.|
|especificat|especificat|-|Fins a 100 períodes en el rang especificat.|
|especificat|especificat|N|N períodes en el rang especificat.|

[comment]: # ({/d1b5c39b-31bc72e4})

[comment]: # ({851bef09-b46f1257})
### Valors de retorn

`(objecte)` Retorna els resultats del càlcul.

|Propietat|[Tipus](/manual/api/reference_commentary#data_types)|Descripció|
|--|--|------|
|periods|matriu|Llista dels períodes informats.<br><br>Cada període informat es representa com un objecte format per:<br>- `period_from` - Data d'inici del període informat (marca de temps).<br>- `period_to`: data de finalització del període informat (marca de temps).<br><br>Els períodes s'ordenen per camp `period_from` ascendent.|
|serviceids|matriu|Llista d'ID de servei en els períodes informats.<br><br>L'ordre d'ordenació de la llista no és definit. Fins i tot si el paràmetre `serviceids` es va passar al mètode `sla.getsli`.|
|sli|matriu|SLI dades (com a **matriu bidimensional**) per a cada període i servei informats.<br><br>L'índex de la propietat `periods` s'empra com a **primera** dimensió de la propietat `sli`.<br><br>L'índex de la propietat `serviceids` s'empra com a **segona** dimensió de la propietat `sli`.|

[comment]: # ({/851bef09-b46f1257})

[comment]: # ({1aba19a3-ba0b5441})
#### Informació SLI

Les dades SLI retornades per a cada període i servei informats consisteixen en:

|Propietat|[Tipus](/manual/api/reference_commentary#data_types)|Descripció|
|--|--|------|
|uptime|enter|Quantitat de temps de servei en estat _OK_ durant el temps d'activitat programat, menys els temps d'inactivitat exclosos.|
|temps d'inactivitat|enter|Quantitat de temps que s'empra el servei en un estat _no correcte_ durant el temps d'activitat programat, menys els temps d'inactivitat exclosos.|
|sli|flotant|SLI (percentatge del temps d'activitat total), basat en temps d'activitat i temps d'inactivitat.|
|error\_budget|enter|Pressupost d'error (en segons), basat en l'SLI i l'SLO.|
|excluded\_downtimes|array|Matriu de temps d'inactivitat exclosos en aquest període d'informe.<br><br>Cada objecte contindrà els paràmetres següents:<br>- `name` - `(string)` Nom del temps d'inactivitat exclòs.<br>- `period_from ` - `(timestamp)` Data i hora d'inici (incloses) del temps d'inactivitat exclòs.<br>- `period_to` - `(timestamp)` Data i hora de finalització (exclosa) del temps d'inactivitat exclòs.<br><br>Els temps d'inactivitat exclosos s'ordenen per `period_from`, amb els períodes més recents primer.|

[comment]: # ({/1aba19a3-ba0b5441})

[comment]: # ({b41637d2-b41637d2})
### Exemples

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({b67c0708-610cd288})
#### Càlcul de l'SLI per a un SLA diari

Recupera dades SLI per a serveis amb els ID "1" i "4" que estan vinculats a l'SLA amb l'ID "1".
Recupera dades d'un únic període fins a "1761861599" (30 d'octubre de 2025 23:59:59 GMT+0200).
Com que el [període d'informe](/manual/it_services/sla) de l'SLA és diari, les dades SLI es recuperen des de "1761775200" (30 d'octubre de 2025 00:00:00 GMT+0200) fins a "1761861600" (31 d'octubre de 2025 00:00:00 GMT+0200).

[Petició](/manual/api#performing-requests):

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

Resposta:

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

[comment]: # ({/b67c0708-610cd288})

[comment]: # ({8a9ed5b7-c6c818e1})
#### Calcular SLI

Retorna SLI als servis amb IDs "50", "60" i "70" enllaçats a un SLA amb ID de "5".
Recupera dades per a tres períodes a partir de "1635724800" (1 de novembre de 2021 00:00:00 UTC). Com que el [període d'informe](/manual/it_services/sla) de l'SLA és mensual, les dades SLI es recuperen durant els tres mesos següents:

- Des de "1635724800" (1 de novembre de 2021 00:00:00 UTC) fins a "1638316800" (1 de desembre de 2021 00:00:00 UTC)
- Des de "1638316800" (1 de desembre de 2021 00:00:00 UTC) fins a "1640995200" (1 de gener de 2022 00:00:00 UTC)
- Des de "1640995200" (1 de gener de 2022 00:00:00 UTC) fins a "1643673600" (1 de febrer de 2022 00:00:00 UTC)

[Petició](/manual/api#performing-requests):

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

Resposta:

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

[comment]: # ({/8a9ed5b7-c6c818e1})

[comment]: # ({13a91d62-a5414084})
### Font

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

[comment]: # ({/13a91d62-a5414084})
