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).
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 para más información.
(object) Parámetros que contienen el ID del SLA, los períodos de informe y, opcionalmente, los ID de los servicios para calcular el SLI.
| Parámetro | Tipo | Descripción |
|---|---|---|
| slaid | ID | ID del SLA para devolver la información de disponibilidad. Comportamiento del parámetro: - obligatorio |
| period_from | timestamp | Marca de tiempo de inicio (inclusive) para informar el SLI. Valores posibles: marca de tiempo Unix. |
| period_to | timestamp | Marca de tiempo de finalización (inclusive) para informar el SLI. Valores posibles: marca de tiempo Unix. |
| periods | integer | Número de períodos a informar. Valores posibles: 1-100 |
| serviceids | ID/array | ID de los servicios para devolver el SLI. |
La siguiente tabla muestra la disposición de los períodos devueltos en función de las combinaciones de parámetros.
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. |
(object) Devuelve los resultados del cálculo.
| Propiedad | Tipo | Descripción |
|---|---|---|
| periods | array | Lista de los periodos reportados. Cada periodo reportado se representa como un objeto que consta de: - period_from - (timestamp) Marca de tiempo de inicio (inclusive) del periodo reportado.- period_to - (timestamp) Marca de tiempo de finalización (exclusiva) del periodo reportado.Los periodos se ordenan por period_from, apareciendo primero los periodos más antiguos. |
| serviceids | array | Lista de IDs de servicios en los periodos reportados. 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 una matriz bidimensional) para cada periodo reportado y servicio. El índice de la propiedad periods se utiliza como la primera dimensión de la propiedad sli.El índice de la propiedad serviceids se utiliza como la segunda dimensión de la propiedad sli. |
Los datos SLI devueltos para cada periodo informado y servicio consisten en:
| Propiedad | Tipo | 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 periodo de informe. Cada objeto contendrá los siguientes parámetros: - name - (string) Nombre del tiempo de inactividad excluido.- period_from - (timestamp) Marca de tiempo de inicio (inclusive) del tiempo de inactividad excluido.- period_to - (timestamp) Marca de tiempo de finalización (exclusiva) del tiempo de inactividad excluido.Los tiempos de inactividad excluidos se ordenan por period_from, apareciendo primero los periodos más tempranos. |
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 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).
{
"jsonrpc": "2.0",
"method": "sla.getsli",
"params": {
"slaid": "1",
"serviceids": [
1,
4
],
"periods": 1,
"period_to": 1761861599,
},
"id": 1
}Respuesta:
{
"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
}Recuperar datos de SLI sobre los servicios con IDs "50", "60" y "70" que están vinculados al SLA con ID "5". Recuperar datos para tres periodos comenzando desde "1635724800" (01 Nov 2021 00:00:00 UTC). Dado que el periodo de informe del SLA es mensual, los datos de SLI se recuperan para los siguientes tres meses:
{
"jsonrpc": "2.0",
"method": "sla.getsli",
"params": {
"slaid": "5",
"serviceids": [
50,
60,
70
],
"periods": 3,
"period_from": "1635724800"
},
"id": 1
}Respuesta:
{
"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
}CSla::getSli() en ui/include/classes/api/services/CSla.php