object sla.getsli(object parameters)
Este método permite calcular os dados do Indicador de Nível de Serviço (SLI) para um Acordo de Nível de Serviço (SLA).
Este método está disponível para usuários de qualquer tipo. As permissões para chamar o método podem ser revogadas nas configurações de função do usuário. Veja Funções de usuário para mais informações.
(object) Parâmetros contendo o ID do SLA, períodos de relatório e, opcionalmente, os IDs dos serviços - para calcular o SLI.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| slaid | ID | ID do SLA para retornar informações de disponibilidade. Comportamento do parâmetro: - obrigatório |
| period_from | timestamp | Timestamp inicial (inclusivo) para relatar o SLI. Valores possíveis: Unix timestamp. |
| period_to | timestamp | Timestamp final (inclusivo) para relatar o SLI. Valores possíveis: Unix timestamp. |
| periods | integer | Número de períodos a serem relatados. Valores possíveis: 1-100 |
| serviceids | ID/array | IDs dos serviços para retornar o SLI. |
A tabela a seguir demonstra o arranjo dos períodos retornados com base nas combinações de parâmetros.
Os períodos retornados não precedem o primeiro período disponível (com base na data efetiva do SLA) e não excedem o período atual.
| Parâmetros | Períodos retornados | ||
|---|---|---|---|
| period_from | period_to | periods | |
| - | - | - | Últimos 20 períodos, incluindo o atual. |
| - | - | 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 | - | - | Primeiros 20 períodos a partir de period_from. |
| especificado | - | N | Primeiros N períodos a partir de period_from. |
| especificado | especificado | - | Até 100 períodos no intervalo especificado. |
| especificado | especificado | N | N períodos no intervalo especificado. |
(object) Retorna os resultados do cálculo.
| Propriedade | Tipo | Descrição |
|---|---|---|
| periods | array | Lista dos períodos reportados. Cada período reportado é representado como um objeto consistindo de: - period_from - (timestamp) Timestamp inicial (inclusivo) do período reportado.- period_to - (timestamp) Timestamp final (exclusivo) do período reportado.Os períodos são ordenados por period_from, com os períodos mais antigos aparecendo primeiro. |
| serviceids | array | Lista de IDs de serviços nos períodos reportados. A ordem de classificação da lista não é definida. Mesmo que o parâmetro serviceids tenha sido passado para o método sla.getsli. |
| sli | array | Dados SLI (como um array bidimensional) para cada período reportado e serviço. O índice da propriedade periods é usado como a primeira dimensão da propriedade sli.O índice da propriedade serviceids é usado como a segunda dimensão da propriedade sli. |
Os dados SLI retornados para cada período relatado e serviço consistem em:
| Propriedade | Tipo | Descrição |
|---|---|---|
| uptime | integer | Quantidade de tempo que o serviço permaneceu em estado OK durante o tempo de atividade programado, menos os períodos de inatividade excluídos. |
| downtime | integer | Quantidade de tempo que o serviço permaneceu em estado não OK durante o tempo de atividade programado, menos os períodos de inatividade excluídos. |
| sli | float | SLI (porcentagem do tempo total de atividade), com base no uptime e downtime. |
| error_budget | integer | Orçamento de erro (em segundos), com base no SLI e no SLO. |
| excluded_downtimes | array | Array de períodos de inatividade excluídos neste período de relatório. Cada objeto conterá os seguintes parâmetros: - name - (string) Nome do período de inatividade excluído.- period_from - (timestamp) Timestamp inicial (inclusivo) do período de inatividade excluído.- period_to - (timestamp) Timestamp final (exclusivo) do período de inatividade excluído.Os períodos de inatividade excluídos são classificados por period_from, com os períodos mais antigos aparecendo primeiro. |
Recupere os dados do SLI para os serviços com IDs "1" e "4" que estão vinculados ao SLA com ID "1". Recupere os dados para um único período até "1761861599" (30 de outubro de 2025 23:59:59 GMT+0200). Como o período de relatório do SLA é diário, os dados do SLI são recuperados de "1761775200" (30 de outubro de 2025 00:00:00 GMT+0200) a "1761861600" (31 de outubro 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 }Resposta:
{ "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 }Recupere os dados de SLI em serviços com IDs "50", "60" e "70" que estão vinculados ao SLA com ID "5". Recupere dados para três períodos a partir de "1635724800" (01 de novembro de 2021 00:00:00 UTC). Como o período de relatório do SLA é mensal, os dados de SLI são recuperados para os três meses seguintes:
{ "jsonrpc": "2.0", "method": "sla.getsli", "params": { "slaid": "5", "serviceids": [ 50, 60, 70 ], "periods": 3, "period_from": "1635724800" }, "id": 1 }Resposta:
{ "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() em ui/include/classes/api/services/CSla.php