# service.getsla

### Описание

`объект service.getsla(объект параметры)`

Этот метод позволяет рассчитывать информацию о доступности услуг.

### Параметры

`(объект)` Параметры, которые содержат ID услуг и интервалов времени для
расчёта SLA.

|Параметр|Тип|Описание|
|----------------|------|----------------|
|serviceids|строка/массив|ID услуг, по которым необходимо получить информацию о доступности.|
|intervals|массив|Интервалы времени, за которые необходимо получить информацию о доступности слоев услуг.<br><br>Каждый интервал времени должен иметь следующие параметры:<br>- `from` - *(штамп времени)* время начала интервала;<br>- `to` - *(штамп времени)* время конца интервала.|

### Возвращаемые значения

`(объект)` Возвращает следующую информацию о доступности по каждой
услуге под соответствующим ID услуги.

|Свойство|Тип|Описание|
|----------------|------|----------------|
|status|целое число|Текущее состояние услуги.<br><br>Обратитесь к [странице объекта услуги](object#услуга) для получения более подробных сведений о состояних услуг.|
|problems|массив|Триггеры, которые в данный момент находятся в состоянии проблема и связаны либо с услугой или с её дочерними услугами.|
|sla|массив|Данные SLA за каждый период времени.<br><br>Каждый объект SLA имеет следующие свойства:<br>- `from` - *(штамп времени)* время начала интервала;<br>- `to` - *(штамп времени)* время конца интервала;<br>- `sla` - *(дробное число)* SLA за заданный интервал времени;<br>- `okTime` - *(целое число)* время, которое услуга была в состоянии ОК, в секундах;<br>- `problemTime` - *(целое число)* время, которое услуга была в состоянии проблема, в секундах;<br>- `downtimeTime` - *(целое число)* время, которое услуга была в запланированном состоянии недоступности, в секундах.|

### Примеры

#### Получение информации о доступности услуги

Получение информации о доступности услуги в течении недели.

Запрос:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "service.getsla",
    "params": {
        "serviceids": "2",
        "intervals": [
            {
                "from": 1352452201,
                "to": 1353057001
            }
        ]
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

Ответ:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "2": {
            "status": "3",
            "problems": {
                "13904": {
                    "triggerid": "13904",
                    "expression": "{13359}=0",
                    "description": "Service unavailable",
                    "url": "",
                    "status": "0",
                    "value": "1",
                    "priority": "3",
                    "lastchange": "1352967420",
                    "comments": "",
                    "error": "",
                    "templateid": "0",
                    "type": "0",
                    "value_flags": "0",
                    "flags": "0"
                }
            },
            "sla": [
                {
                    "from": 1352452201,
                    "to": 1353057001,
                    "sla": 97.046296296296,
                    "okTime": 586936,
                    "problemTime": 17864,
                    "downtimeTime": 0
                }
            ]
        }
    },
    "id": 1
}
```

### Смотрите также

-   [Триггер](/ru/manual/api/reference/trigger/object#триггер)

### Исходный код

CService::getSla() в
*frontends/php/include/classes/api/services/CService.php*.
