Миран — База знанийМиран — База знаний

Получение статистики энергопотребления серверных шкафов

В 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>

При возникновении ошибки на стороне модуля выводится код ошибки и краткое описание.

Коды ошибок: