Получение статистики энергопотребления серверных шкафов
В API BILLmanager реализованы три функции:
Получение списка арендованных стоек
get_rack_list - получение списка арендованных стоек (выводит номера стоек, относящихся к активным услугам аренды)
Формат запроса:
GET https://bill.miran.ru/billmgr?authinfo={username:password}&func=get_rack_list&out={json,xml}
Query-параметры:
Название |
Описание |
Тип |
Обязательный параметр |
Допустимые значения |
authinfo |
Параметры авторизации в BILLmanager |
Строка |
Да |
имя_пользователя:пароль |
func |
Наименование функции запроса |
Строка |
Да |
get_rack_list |
out |
Наименование типа формата ответа |
Строка |
Да |
json или xml |
XX.YY.ZZZ - полный номер стойки
XX - номер ЦОД
YY - Номер серверного зала
ZZZ - Порядковый номер стойки в зале
Формат успешного ответа:
JSON
{
"doc": {
...,
"racks": {
"rack": [
{
"$": "XX.YY.ZZZ"
},
...
]
},
"tparams": {
"out": {
"$": "json"
},
"func": {
"$": "get_rack_list"
}
}
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<doc ...>
<racks>
<rack>XX.YY.ZZZ</rack>
...
</racks>
<tparams>
<out>xml</out>
<func>get_rack_list</func>
</tparams>
...
</doc>
Формат ответа с ошибкой:
JSON
{
"doc": {
"error": {
..,
"default": {
"$": "Во время выполнения запроса произошла ошибка"
},
"message": {
"$": "описание_ошибки"
},
"msg": {
"$": "Во время выполнения запроса произошла ошибка"
},
"stack": {
"action": {
...,
"$": "get_rack_list"
}
},
"status_code": {
"$": "код_ошибки"
}
}
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<error ...>
<status_code>код_ошибки</status_code>
<message>описание_ошибки</message>
<stack>
<action ...>get_rack_list</action>
</stack>
<default>Во время выполнения запроса произошла ошибка</default>
<msg>Во время выполнения запроса произошла ошибка</msg>
</error>
</doc>
При возникновении ошибки на стороне модуля выводится код ошибки и краткое описание.
Коды ошибок:
500. Internal Error - внутренняя ошибка модуля, связанная с недоступностью сервиса.
При ошибке на стороне BILLmanager возможны иные виды ответа с ошибкой.
Например:
некорректные данные в authinfo;
некорректное название функции;
некорректный тип формата ответа.
Получение текущего энергопотребления стойки
get_rack_energy_consumption - получение энергопотребления стойки
Формат запроса
GET https://bill.miran.ru/billmgr?authinfo={username:password}&func=get_rack_energy_consumption&rack_number={XX.YY.ZZZ}&out={json,xml}
Query-параметры:
Название |
Описание |
Тип |
Обязательный параметр |
Допустимые значения |
authinfo |
Параметры авторизации в BILLmanager |
Строка |
Да |
имя_пользователя:пароль |
func |
Наименование функции запроса |
Строка |
Да |
get_rack_energy_consumption |
rack_number |
Полный номер стойки |
Строка |
Да |
XX.YY.ZZZ XX - номер ЦОД; YY - номер зала; ZZZ - номер стойки в зале. |
out |
Наименование типа формата ответа |
Строка |
Да |
json или xml |
XX.YY.ZZZ - полный номер стойки.
XX - Номер ЦОД;
YY - Номер зала;
ZZZ - Номер стойки в зале.
unix_timestamp - время выполнения запроса в формате Unix-времени с указанием миллисекунд.
value - значение энергопотребления в ваттах в момент времени unix_timestamp.
Формат успешного ответа:
JSON
{
"doc": {
...,
"rack_number": {
"$": "XX.YY.ZZZ"
},
"timestamp": {
"$": "unix_timestamp"
},
"value": {
"$": "value"
},
"tparams": {
"out": {
"$": "json"
},
"rack_number": {
"$": "XX.YY.ZZZ"
},
"func": {
"$": "get_rack_energy_consumption"
}
}
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<doc ...>
<rack_number>XX.YY.ZZZ</rack_number>
<timestamp>unix_timestamp</timestamp>
<value>value</value>
<tparams>
<out>xml</out>
<rack_number>XX.YY.ZZZ</rack_number>
<func>get_rack_energy_consumption</func>
</tparams>
...
</doc>
Формат ответа с ошибкой:
JSON
{
"doc": {
"error": {
...,
"default": {
"$": "Во время выполнения запроса произошла ошибка"
},
"message": {
"$": "описание_ошибки"
},
"msg": {
"$": "Во время выполнения запроса произошла ошибка"
},
"stack": {
"action": {
...,
"$": "get_rack_energy_consumption"
}
},
"status_code": {
"$": "код_ошибки"
}
}
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<error ...>
<status_code>код_ошибки</status_code>
<message>описание_ошибки</message>
<stack>
<action ...>get_rack_energy_consumption</action>
</stack>
<default>Во время выполнения запроса произошла ошибка</default>
<msg>Во время выполнения запроса произошла ошибка</msg>
</error>
</doc>
При возникновении ошибки на стороне модуля выводится код ошибки и краткое описание.
Коды ошибок: