REST API для получения информации о кластере сервера 1С и управления объектами кластера.
Требуются следующие библиотеки и инструменты:
- OneScript.Web - MVC фреймворк для разработки веб-сайтов с использованием OneScript
- irac - если установлен OneScript устанавливается командой
opm install -l
- 1C RAC - утилита RAC из состава платформы 1С:Предприятие 8.3
Перейти в подкаталог src и запустить OneScript.Web:
cd <путь к hirac>\src
<путь к OneScript.Web>\OneScript.WebHost.exe
Запуск будет выполнен на 5005 порту. Изменить порт можно в файле настроек appsettings.json
В командный файл reg_os_web_as_service.cmd регистрации HiRAC в качестве сервиса Windows. Запуск:
reg_os_web_as_service.cmd <путь к OneScript.Web>\OneScript.WebHost.exe <адрес>:<порт> <путь к hirac>\src
- <имя объекта>/list - список объектов
- <имя объекта>/<путь к объекту> - содержимое объекта по указанному пути
- <имя объекта>/<путь к объекту>/<свойство> - значение свойства <свойство> объекта по указанному пути
- counter/list - описания доступных счетчиков
- counter/<имя объекта>/list - описания доступных счетчиков для <имя объекта>
- counter/<имя объекта>/<счетчик> - значения счетчика <счетчик> для <имя объекта>
- cluster - информация о кластерах
- server - информация о рабочих серверах
- process - информация о рабочих процессах
- infobase - информация об информационных базах
- session - информация о сеансах
- connection - информация о соединениях
- cluster - cluster/<адрес сервера>/<порт сервера>
- server - server/<адрес сервера>/<порт сервера>
- process - process/<адрес сервера>/<порт процесса>
- infobase - infobase/<имя информационной базы>
- session - session/<имя информационной базы>/<номер сеанса>
- connection - connection/<имя информационной базы>/<номер сеанса>
- field - имя поля запрашиваемого объекта, которое попадет в результат (
field=_all
- попадут все поля) - filter_<операция сравнения>_<поле объекта> - условие (фильтр) по значению поля
- top_<поле объекта> - отбор указанного количества первых результатов с максимальным значением поля <поле объекта>
- filter_<операция сравнения>_<поле объекта> - условие (фильтр) по значению поля
- dim - имя измерения счетчика по которым выполняется свертка значения счетчика (
dim=_all
- попадут все измерения счетчика) - top - отбор указанного количества первых значений счетчика с максимальным значением
- aggregate - агрегатная функция свертки значений счетчика
- format - формат вывода результата
- eq - равно (может не указываться), для строк выполняется без учета регистра
- neq - не равно, для строк выполняется без учета регистра
- gt - больше
- gte - больше или равно
- lt - меньше
- lte - меньше или равно
- count - количество значений счетчика
- distinct - количество различных значений счетчика
- sum - сумма значений счетчика
- min - минимальное значение счетчика
- max - максимальное значение счетчика
- avg - среднее значение счетчика
- json - (по умолчанию) JSON-текст собственной структуры
- prometheus - формат Prometheus
- plain - плоский текстовый формат без указания значений измерений
http://localhost:5005/cluster/list
http://localhost:5005/server/list
http://localhost:5005/infobase/list
http://localhost:5005/session/list
http://localhost:5005/counter/list
http://localhost:5005/counter/session
или
http://localhost:5005/counter/session?dim=_all
В формате Prometheus
http://localhost:5005/counter/session?format=prometheus
Агрегатная функция по умолчанию (count
)
http://localhost:5005/counter/session?dim=_no
Агрегатная функция СУММА (sum
)
http://localhost:5005/counter/session?dim=_no&aggregate=sum
http://localhost:5005/counter/session/count?dim=_all
http://localhost:5005/counter/session/count?filter_app_id=Designer
Агрегатная функция СУММА (sum
)
http://localhost:5005/counter/session/count?dim=host&dim=infobase&aggregate=sum
- Так как для работы приложения необходима консольная утилита
rac
. а ее распространение ограниченно лицензией 1С, то для сборки образа нам необходима актуальная учетная запись на https://users.v8.1c.ru/. В момент сборки будет скачан необходимый нам дистрибутив платформы.
Для этого необходимо создать файл переменных .env
в корне репозитария, по примеру env.example
и заполнить его правильными значениями
ONEC_USERNAME=<ПОЛЬЗОВАТЕЛЬ_USERS.1C.V8.RU>
ONEC_PASSWORD=<ПАРОЛЬ_ОТ_USERS.1C.V8.RU>
ONEC_VERSION=8.3.14.1993
OSCRIPT_VERSION=1.5.0
- Запустить скрипт сборки образов. При необходимости первым параметром можно указать тег собираемого образа. Тег по умолчанию -
oscript/hirac:latest
bash build_images.sh
Пример конфигурационного файла hirac лежит в каталоге src/config/racsettings.json, он же применяется по умолчанию при запуске контейнера. При необходимости использовать свои параметры необходимо переопределить конфигурационный файл, через подключеннный volume:
docker run -d -p 5000:5000 -v $(pwd)/src/config/racsettings.json:/app/config/racsettings.json demoncat/hirac:latest