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

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

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

`object sla.getsli(object parameters)`

Este método permite calcular los datos del Indicador de Nivel de Servicio (SLI) para un Acuerdo de Nivel de Servicio (SLA).

::: noteclassic
Este método está disponible para usuarios de cualquier tipo. Los permisos para llamar al método pueden ser revocados en la configuración de roles de usuario. Consulte [Roles de usuario](/manual/web_interface/frontend_sections/users/user_roles) para más información.
:::

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

[comment]: # ({880cf558-bcbf1cf2})
### Parámetros

`(object)` Parámetros que contienen el ID del SLA, los períodos de informe y, opcionalmente,
los IDs de los servicios para calcular el SLI.

|Parámetro|[Tipo](/manual/api/reference_commentary#data-types)|Descripción|
|--|--|------|
|slaid|ID|ID del SLA para devolver la información de disponibilidad.<br><br>[Comportamiento del parámetro](/manual/api/reference_commentary#parameter-behavior):<br>- *requerido*|
|period\_from|timestamp|Marca de tiempo de inicio (inclusive) para informar el SLI.<br><br>Valores posibles: marca de tiempo Unix.|
|period\_to|timestamp|Marca de tiempo de finalización (inclusive) para informar el SLI.<br><br>Valores posibles: marca de tiempo Unix.|
|periods|integer|Número de períodos a informar.<br><br>Valores posibles: 1-100|
|serviceids|ID/array|IDs de los servicios para devolver el SLI.|

[comment]: # ({/880cf558-bcbf1cf2})

[comment]: # ({d1b5c39b-31bc72e4})
#### División de períodos

La siguiente tabla muestra la disposición de los períodos devueltos en función de las combinaciones de parámetros.

::: noteclassic
Los períodos devueltos no preceden al primer período disponible (basado en la fecha efectiva del SLA) y no exceden el período actual.
:::

|Parámetros|<|<|Períodos devueltos|
|-|-|-|-------|
|**period\_from**|**period\_to**|**periods**|   |
|-|-|-|Últimos 20 períodos, incluido el actual.|
|-|-|N|Últimos N períodos.|
|-|especificado|-|Últimos 20 períodos antes de `period_to`.|
|-|especificado|N|Últimos N períodos antes de `period_to`.|
|especificado|-|-|Primeros 20 períodos comenzando con `period_from`.|
|especificado|-|N|Primeros N períodos comenzando con `period_from`.|
|especificado|especificado|-|Hasta 100 períodos en el rango especificado.|
|especificado|especificado|N|N períodos en el rango especificado.|

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

[comment]: # ({26e4fdd7-b46f1257})
### Valores de retorno

`(object)` Devuelve los resultados del cálculo.

|Propiedad|[Tipo](/manual/api/reference_commentary#data-types)|Descripción|
|--|--|------|
|periods|array|Lista de los periodos informados.<br><br>Cada periodo informado se representa como un objeto que consta de:<br>- `period_from` - `(timestamp)` Marca de tiempo de inicio (inclusive) del periodo informado.<br>- `period_to` - `(timestamp)` Marca de tiempo de finalización (exclusive) del periodo informado.<br><br>Los periodos se ordenan por `period_from`, apareciendo primero los más antiguos.|
|serviceids|array|Lista de IDs de servicios en los periodos informados.<br><br>El orden de clasificación de la lista no está definido. Incluso si se pasó el parámetro `serviceids` al método `sla.getsli`.|
|sli|array|Datos SLI (como **matriz bidimensional**) para cada periodo y servicio informado.<br><br>El índice de la propiedad `periods` se utiliza como la **primera** dimensión de la propiedad `sli`.<br><br>El índice de la propiedad `serviceids` se utiliza como la **segunda** dimensión de la propiedad `sli`.|

[comment]: # ({/26e4fdd7-b46f1257})

[comment]: # ({1b312b3d-ba0b5441})
#### Datos SLI

Los datos SLI devueltos para cada período informado y servicio consisten en:

|Propiedad|[Tipo](/manual/api/reference_commentary#data-types)|Descripción|
|--|--|------|
|uptime|integer|Cantidad de tiempo que el servicio estuvo en estado _OK_ durante el tiempo de actividad programado, menos los tiempos de inactividad excluidos.|
|downtime|integer|Cantidad de tiempo que el servicio estuvo en estado _no OK_ durante el tiempo de actividad programado, menos los tiempos de inactividad excluidos.|
|sli|float|SLI (porcentaje del tiempo total de actividad), basado en uptime y downtime.|
|error\_budget|integer|Error budget (en segundos), basado en el SLI y el SLO.|
|excluded\_downtimes|array|Array de tiempos de inactividad excluidos en este período de informe.<br><br>Cada objeto contendrá los siguientes parámetros:<br>- `name` - `(string)` Nombre del tiempo de inactividad excluido.<br>- `period_from` - `(timestamp)` Marca de tiempo de inicio (inclusive) del tiempo de inactividad excluido.<br>- `period_to` - `(timestamp)` Marca de tiempo de finalización (exclusiva) del tiempo de inactividad excluido.<br><br>Los tiempos de inactividad excluidos se ordenan por `period_from`, apareciendo primero los períodos más tempranos.|

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

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

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

[comment]: # ({b67c0708-610cd288})
#### Calcular SLI para un SLA diario

Recuperar datos de SLI para los servicios con ID "1" y "4" que están vinculados al SLA con ID "1".
Recuperar datos para un solo periodo hasta "1761861599" (30 de octubre de 2025 23:59:59 GMT+0200).
Dado que el [periodo de informe](/manual/it_services/sla) del SLA es diario, los datos de SLI se recuperan desde "1761775200" (30 de octubre de 2025 00:00:00 GMT+0200) hasta "1761861600" (31 de octubre de 2025 00:00:00 GMT+0200).

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

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

Respuesta:

```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]: # ({d21e6bab-c6c818e1})
#### Calcular el SLI para un SLA mensual

Recuperar los datos de SLI de los servicios con IDs "50", "60" y "70" que están vinculados al SLA con ID "5".
Recuperar datos para tres períodos a partir de "1635724800" (01 Nov 2021 00:00:00 UTC).
Dado que el [período de informe](/manual/it_services/sla) del SLA es mensual, los datos de SLI se recuperan para los siguientes tres meses:

-   Desde "1635724800" (01 Nov 2021 00:00:00 UTC) hasta "1638316800" (01 Dic 2021 00:00:00 UTC)
-   Desde "1638316800" (01 Dic 2021 00:00:00 UTC) hasta "1640995200" (01 Ene 2022 00:00:00 UTC)
-   Desde "1640995200" (01 Ene 2022 00:00:00 UTC) hasta "1643673600" (01 Feb 2022 00:00:00 UTC)

[Solicitud](/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
}
```

Respuesta:

```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]: # ({/d21e6bab-c6c818e1})

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

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

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