Miran — База знанийMiran — База знаний

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

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

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

Коды ошибок:

400. Bad Request  - пользовательская ошибка (не предоставлен номер стойки, некорректный формат номера стойки и т.д.);

403. Forbidden  - у пользователя нет доступа к услуге с данной стойкой или услуга не находится в состоянии "активен";

500. Internal Error  - внутренняя ошибка модуля, связанная с недоступностью сервиса.

При ошибке на стороне BILLmanager возможны иные виды ответа с ошибкой.

Например:

некорректные данные в authinfo;

некорректное название функции;

некорректный тип формата ответа.

Получение среднего, максимального и минимального значений энергопотребления стойки за период

get_rack_energy_consumption_stats - получение среднего, максимального и минимального значений энергопотребления стойки в  Вт  за указанный промежуток времени.

Формат запроса

GET https://bill.miran.ru/billmgr?authinfo={username:password}&func=get_rack_energy_consumption_stats&rack_number={XX.YY.ZZZ}&start_date={yyyy-mm-dd}&end_date={yyyy-mm-dd}&out={json,xml}

Query параметры:

Название

Описание

Тип

Обязательный параметр

Допустимые значения

authinfo

Параметры авторизации в BILLmanager

Строка

Да

имя_пользователя:пароль

func

Наименование функции запроса

Строка

Да

get_rack_energy_consumption_stats

rack_number

Полный номер стойки

Строка

Да

XX.YY.ZZZ XX - номер ЦОД; YY - номер зала; ZZZ - номер стойки в зале.

start_date

Левая граница промежутка времени расчета статистик

Строка

Да

yyyy-mm-dd yyyy - год; mm - месяц; dd - день.

end_date

Правая граница промежутка времени расчета статистик

Строка

Да

yyyy-mm-dd yyyy - год; mm - месяц; dd - день.

out

Наименование типа формата ответа

Строка

Да

json или xml

Особенности:

start_date и end_date считаются датами в формате  yyyy-mm-ddT00:00:00+03:00 ;

Расчет статистик ведется в полных днях, считая дни до end_date, количество полных дней рассчитывается как end_date - start_date; Пример: start_date = 2024-01-01, end_date=2024-01-05 количество полных дней: 5 - 1 = 4, таким образом, в расчете статистик будут участвовать дни 2024-01-01, 2024-01-02, 2024-01-03, 2024-01-04.

Если дата открытия услуги позже start_date, то в качестве start_date будет использоваться дата открытия услуги в формате  yyyy-mm-ddT00:00:00+03:00 ;

Максимальное количество дней для расчета - 90. Если (end_date - start_date) > 90, то start_date будет скорректирован до end_date - 90;

Минимальное количество дней для расчета - 1.

Максимальное значение энергопотребления ограничено 7500 Вт.

XX.YY.ZZZ  - полный номер стойки.

XX - Номер ЦОД;

YY - Номер зала;

ZZZ - Номер стойки в зале.

start_date  - левая граница временного промежутка в формате  yyyy-mm-dd 00:00:00+03:00.

end_date  - правая граница временного промежутка в формате  yyyy-mm-dd 00:00:00+03:00.

avg  - среднее значение энергопотребления в ваттах за промежуток времени с start_date до end_date.

min  - минимальное значение энергопотребления в ваттах за промежуток времени с start_date до end_date.

max  - максимальное значение энергопотребления в ваттах за промежуток времени с start_date до end_date.

Формат успешного ответа:

JSON

{
    "doc": {
        ...,
        "rack_number": {
            "$": "XX.YY.ZZZ"
        },
        "start_date": {
            "$": "start_date"
        },
        "end_date": {
            "$": "end_date"
        },
        "avg": {
            "$": "avg"
        },
        "min": {
            "$": "min"
        },
        "max": {
            "$": "max"
        },
        "tparams": {
            "end_date": {
                "$": "yyyy-mm-dd"
            },
            "out": {
                "$": "json"
            },
            "rack_number": {
                "$": "XX.YY.ZZZ"
            },
            "start_date": {
                "$": "yyyy-mm-dd"
            },
            "func": {
                "$": "get_rack_energy_consumption_stats"
            }
        }
    }
}

XML

<?xml version="1.0" encoding="UTF-8"?>
<doc ...>
    <rack_number>XX.YY.ZZZ</rack_number>
    <start_date>start_date</start_date>
    <end_date>end_date</end_date>
    <avg>avg</avg>
    <min>min</min>
    <max>max</max>
    <tparams>
        <end_date>yyyy-mm-dd</end_date>
        <out>xml</out>
        <rack_number>XX.YY.ZZZ</rack_number>
        <start_date>yyyy-mm-dd</start_date>
        <func>get_rack_energy_consumption_stats</func>
    </tparams>
    ...
</doc>

Формат ответа с ошибкой:

JSON

{
    "doc": {
        "error": {
            ...,
            "default": {
                "$": "Во время выполнения запроса произошла ошибка"
            },
            "message": {
                "$": "описание_ошибки"
            },
            "msg": {
                "$": "Во время выполнения запроса произошла ошибка"
            },
            "stack": {
                "action": {
                    ...,
                    "$": "get_rack_energy_consumption_stats"
                }
            },
            "status_code": {
                "$": "код_ошибки"
            }
        }
    }
}

XML

<?xml version="1.0" encoding="UTF-8"?>
<doc>
    <error ...>
        <status_code>код_ошибки</status_code>
        <message>описание_ошибки</message>
        <stack>
            <action ...>get_rack_energy_consumption_stats</action>
        </stack>
        <default>Во время выполнения запроса произошла ошибка</default>
        <msg>Во время выполнения запроса произошла ошибка</msg>
    </error>
</doc>

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

Коды ошибок:

400. Bad Request  - пользовательская ошибка (не предоставлен номер стойки, некорректный формат номера стойки и т.д.);

403. Forbidden  - у пользователя нет доступа к услуге с данной стойкой или услуга не находится в состоянии "активен";

500. Internal Error  - внутренняя ошибка модуля, связанная с недоступностью сервиса.

При ошибке на стороне BILLmanager возможны иные виды ответа с ошибкой.

Например:

некорректные данные в authinfo;

некорректное название функции;

некорректный тип формата ответа.

Получение среднего, максимального и минимального значений энергопотребления стойки за период для каждой стойки

get_all_racks_energy_consumption_stats - получение среднего, максимального и минимального значений энергопотребления для каждой стойки за указанный промежуток времени.

Формат запроса

GET https://bill.miran.ru/billmgr?authinfo={username:password}&func=get_all_racks_energy_consumption_stats&start_date={yyyy-mm-dd}&end_date={yyyy-mm-dd}&out={json,xml}

Query параметры:

Название

Описание

Тип

Обязательный параметр

Допустимые значения

authinfo

Параметры авторизации в BILLmanager

Строка

Да

имя_пользователя:пароль

func

Наименование функции запроса

Строка

Да

get_all_racks_energy_consumption_stats

start_date

Левая граница промежутка времени расчета статистик

Строка

Да

yyyy-mm-dd yyyy - год; mm - месяц; dd - день.

end_date

Правая граница промежутка времени расчета статистик

Строка

Да

yyyy-mm-dd yyyy - год; mm - месяц; dd - день.

out

Наименование типа формата ответа

Строка

Да

json или xml

Расчёт и формат ответа соответствуют комбинации функций get_rack_list и get_rack_energy_consumption_stats.

Формат успешного ответа:

JSON

{
    "doc": {
        ...,
        "racks": {
            "rack": [
                {
                    "rack_number": {
                        "$": "XX.YY.ZZZ"
                    },
                    "start_date": {
                        "$": "start_date"
                    },
                    "end_date": {
                        "$": "end_date"
                    },
                    "avg": {
                        "$": "avg"
                    },
                    "min": {
                        "$": "min"
                    },
                    "max": {
                        "$": "max"
                    },
                },
                ...
            ]
        },
        "tparams": {
            "out": {
                "$": "json"
            },
            "func": {
                "$": "get_all_racks_energy_consumption_stats"
            }
        }
    }
}

XML

<?xml version="1.0" encoding="UTF-8"?>
<doc ...>
    <racks>
        <rack>
            <rack_number>XX.YY.ZZZ</rack_number>
            <start_date>start_date</start_date>
            <end_date>end_date</end_date>
            <avg>avg</avg>
            <min>min</min>
            <max>max</max>
        </rack>
        ...
    </racks>
    <tparams>
        <out>xml</out>
        <func>get_all_racks_energy_consumption_stats</func>
    </tparams>
    ...
</doc>

Похожие статьи

Работа с тикетами
Получение информации о балансе
Авторизация
Описание
Получение статистики энергопотребления серверных шкафов | Miran — База знаний