TGViewer
Никита Федькин - мысли, заметки, анонсы Никита Федькин - мысли, заметки, анонсы @nixel2007_thoughts · 2.88K subscribers
Post #293 3K
Весной я писал про инструмент мониторинга 1С под названием Алькир и упомянул, что немного участвую в проекте в качестве разработчика.

Настало время открыть один из компонентов этой системы под названием rahc - Remote Administration HTTP Client

https://github.com/DigiLabsru/alkir-rahc

Вы могли натыкаться на ИТС на Программный Java-интерфейс для административного сервера (сокращенно ibis), позволяющий дергать RAS (который remote administration server из состава платформы) из джавы/jvm-языков, минуя консольный запуск RAC (remote administration client), на базе которого построено большинство опенсорсных инструментов. В рамках разработки Алькира понадобился некий http-сервис для оперирования RAS, консольный запуск RAC не подходил по ряду причин, поэтому было решено попробовать напилить микросервис поверх ibis.

В качестве фреймворка для разработки был выбран Spring Boot, с которым у меня сложились теплые отношения за время работы над BSL Language Server.

Что могу отметить из ништяков и особенностей...

Во-первых, сам Spring Boot прекрасен. Работающий прототип с rest-интерфейсом для пары сущностей был написан за буквально 2.5 часа. Дальше уже пошли хотелки и улучшалки. Добавление новых методов в сервисы или сервисная обвязка делается в пару строчек шелковистого и душистого кода.

Во-вторых, поддерживается два интерфейса доступа - собственно rest с его get/put/delete/post и JSON-RPC версии 2.0.

В-третьих, есть как возможность настроить один инстанс rahc на один ras (используя переменные среды и API версии v1), так и использовать rahc как ультра-тонкий клиент взаимодействия с RAS, передавая параметры авторизации RAS в качестве параметров http-запроса.

В-четвертых, Spring Boot подарил легкую генерацию Swagger UI (как под rest, так и под json-rpc варианты вызова), так и подключение Spring Boot Admin (в проект включен и клиент и сервер) на пару с Spring Boot Actuator

И в-пятых, и наверное, это было самое сложное - решена проблема зависания ibis. Я не совсем понимаю, зачем ibis была написана именно так, но в ней есть ненулевая вероятность, что запрос, отправленный в RAS, никогда не получит ответ. И для сервиса, который в системе мониторинга дергается по многу раз в минуту, такое зависание и распухание http-сессий недопустимо. Потому что привет OutOfMemoryException или закончившиеся tcp-порты :(
В rahc вшит очень жестокий, но работающий способ обрыва таких зависших сеансов и повторный вызов сервиса.

Из особенностей:
1) Наружу торчат не все сущности и методы, доступные в ibis. Торчит то, что реально используется в Алькире. Но доработать это добро довольно просто. ЖВПР, как говорится.
2) Для сборки нужно руками подложить ibis в нужную папочку и выполнить магическую команду. Планирую упростить сей шаг с помощью автоматической таски в gradle, но пока так.

P.S. Перед началом работы над rahc я видел и ripreal/admin1c, и hirac. Но они по ряду причин не подходили. Но хорошо, что есть выбор, да? Можно попробовать все и найти подходящее. Или сделать своё :)
Telegram Никита Федькин - мысли, заметки, анонсы Про мониторинг и немного рекламы. Мониторинг - штука сложная. Он еще и разный: железо, ось, приложение, бизнес-метрики... тысячи показателей с еще большим количеством зависимостей между ними. А уж есть мы говорим про мониторинг производительности... 1С…
  • 👍 31
  • 🐳 3
  • ❤‍🔥 1
  • 🌚 1
More from @nixel2007_thoughts
  1. Sep 28, 2026Вторую картинку в посте потерял. Вот так менять/задавать пароль.
  2. Sep 28, 2026Если вы можете прочесть этот пост, то вероятно, ваш телефон находится, кхм-кхм, за границе…
  3. Sep 28, 2026video post
  4. Sep 28, 2026#анонс Полишинеля Я разрываюсь между двумя фразами на анонс, пускай будут обе: 1. Мы строи…
  5. Sep 27, 2026Внимательный разбор телеметрии показал, что основной причиной падений хаба последних дней…
  6. Sep 21, 2026Совместно с @EvilBeaver, @Segate и @nivanchenko готовим новый хаб оскрипта к релизу. Проек…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →