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

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

[comment]: # ({c14d4f5b-59cbeb46})
### 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/administration/user_roles).
:::

[comment]: # ({/c14d4f5b-59cbeb46})

[comment]: # ({8e1eab8c-2578ebd6})
### Paràmetres

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

| Paramètre | [Type](/manual/api/reference_commentary#data_types) | Description |
|-------------------------|-----------------------------------------------------|-------------------------------------------------------------------------------------|
| **slaid**<br>(obligatori) | string | ID dels serveis per als quals retornar la informació de lliure/ocupat. |
| period\_from | timestamp | Data d'inici (inclosa) per a la qual cal informar SLI.<br><br>Valors possibles: marca de temps. |
| period\_to | timestamp | Data de finalització (exclosa) per a la qual cal informar de l'SLI.<br><br>Valors possibles: marca de temps. |
| periods | integer | Nombre preferit de períodes per informar.<br><br>Valors possibles: 1-100 |
| serviceids | string/array | ID dels serveis pels quals retornar l'SLI. |

[comment]: # ({/8e1eab8c-2578ebd6})

[comment]: # ({4f871495-c2dd0229})
#### 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 pas el període actual.
:::

| Paràmetres | | | Descripció |
|-------------------|----------------|-------------- |------------------------------------------------- -------------------------------------------------- -----------------|
| **període\_des de** | **període\_fins** | **períodes** | |
| - | - | - | Torna els darrers 20 períodes. |
| - | - | especificat | Retorna els últims períodes especificats pel paràmetre **períodes**. |
| - | especificat | - | Retorna els darrers 20 períodes abans de la data **període\_a** especificada. |
| - | especificat | especificat | Retorna els últims períodes especificats pel paràmetre **períodes** abans de la data especificada **període\_a**. |
| especificat | - | - | Retorna els 20 primers períodes que comencen amb la data especificada **període\_a partir de**. |
| especificat | - | especificat | Retorna els primers períodes especificats pel paràmetre **períodes** començant per la data especificada **període\_a partir de**. |
| especificat | especificat | - | Torna fins a 100 períodes dins de l'interval de dates especificat. |
| especificat | especificat | especificat | Retorna els períodes especificats pel paràmetre **períodes** dins de l'interval de dates especificat. |

[comment]: # ({/4f871495-c2dd0229})

[comment]: # ({c53779c9-b47d03dc})
### Valors de retorn

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

| Propietat | [Tipus](/manual/api/reference_commentary#data_types) | Descripció |
|------------|-----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| periods | array | Llista de 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 final del període informat (marca de temps).<br><br>Els períodes s'ordenen per valors creixents del camp `period_from`. |
| serviceids | array | Llista d'ID de servei en períodes informats.<br><br>L'ordre d'ordenació de la llista no és definit, tot i que el paràmetre `serviceids` s'ha passat al mètode `sla.getsli`. |
| sli | array | Dades SLI (com a **matriu bidimensional**) per a cada període i servei informat.<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]: # ({/c53779c9-b47d03dc})

[comment]: # ({1f1baf4f-782f6e34})
#### Dades SLI

Les dades SLI retornades per a cada període de temps i servei informats inclouen:

| Propietat | [Tipus](/manual/api/reference_commentary#data_types) | Descripció |
|------------|-----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| uptime | integer | Temps de servei en estat _OK_ durant la disponibilitat planificada, menys temps d'inactivitat exclòs.|
| downtime | integer | Temps de servei passat en un estat _no correcte_ durant la disponibilitat planificada, menys el temps d'inactivitat exclòs. |
| sli | float | SLI (percentatge del temps d'activitat total), basat en temps d'activitat i temps d'inactivitat.|
| error\_budget | integer | Pressupost d'error (en segons), basat en SLI i SLO.|
| excluded\_downtimes | array | Taula de temps d'inactivitat exclosos durant aquest període d'informe.<br><br>Cada objecte contindrà els paràmetres següents:<br>- _name_ - Nom del temps d'inactivitat exclòs.<br>- _period\_from_ - Data i hora d'inici (incloses) del temps d'inactivitat exclòs.<br>- _period\_to_ - Data i hora de finalització (exclòs) del temps d'inactivitat exclòs.<br><br>Els temps d'inactivitat exclosos s'ordenen segons el camp period_from creixent. |

[comment]: # ({/1f1baf4f-782f6e34})

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

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

[comment]: # ({52972d76-e6513a45})
#### Càlcul de l'SLI

Retorna l'SLI dels serveis amb IDs "50", "60" i "70", vinculats a un SLA amb ID de "5".
Retorna la data per 3 períodes a partir de "1635724800" (1er de Novembre de 2021 00:00:00 UTC).
Des que el [període de l'informe](/manual/it_services/sla) de l'SLA és mensual, la informació SLI es recupera per als tres mesos següents:

-Des de  "1635724800" (Nov 01 2021 00:00:00 UTC) fins a "1638316800" (Dec 01 2021 00:00:00 UTC)
-Des de "1638316800" (Dec 01 2021 00:00:00 UTC) fins a "1640995200" (Jan 01 2022 00:00:00 UTC)
-Des de "1640995200" (Jan 01 2022 00:00:00 UTC) fins a "1643673600" (Feb 01 2022 00:00:00 UTC)

Petició:

```json
{
    "jsonrpc": "2.0",
    "method": "sla.getsli",
    "params": {
        "slaid": "5",
        "serviceids": [
            50,
            60,
            70
        ],
        "periods": 3,
        "period_from": "1635724800"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "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]: # ({/52972d76-e6513a45})

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

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

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