Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

sla.getsli

Descrição

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.

Parâmetros

(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.

Particionamento de períodos

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.

Valores de retorno

(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.

Dados 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.

Exemplos

Calculando o SLI para um SLA diário

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).

Requisição:

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

Calculando SLI para um SLA mensal

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:

  • De "1635724800" (01 de novembro de 2021 00:00:00 UTC) até "1638316800" (01 de dezembro de 2021 00:00:00 UTC)
  • De "1638316800" (01 de dezembro de 2021 00:00:00 UTC) até "1640995200" (01 de janeiro de 2022 00:00:00 UTC)
  • De "1640995200" (01 de janeiro de 2022 00:00:00 UTC) até "1643673600" (01 de fevereiro de 2022 00:00:00 UTC)

Requisição:

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

Fonte

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