SLA для Redmine. Подходящих плагинов не оказалось

от автора

Давеча появилась необходимость внедрить SLA в Redmine для некоторых типов задач. Каких‑то автоматизированных метрик в компании сейчас нет, из‑за чего руководителю направления приходится «вручную» или вернее «вглазную» контролировать сроки. Минусы этого описывать не буду. Сменить Redmine может и хотелось бы, но возможности такой нет.

Несмотря на устаревший интерфейс, по‑прежнему довольно много компаний используют Redmine, благодаря 3 китам: бесплатности, открытому исходному коду, гибкости настройки, а также те кому важно иметь систему на собственном хостинге.

Я был уверен, что задача нетривиальная. Ведь система давно на рынке, экосистема плагинов немаленькая — значит, должно быть готовое решение. Достаточно найти подходящий плагин, установить — и готово! С этой целью я начал поиск доступных вариантов.

На практике всё оказалось сложнее…

Вот и решил я разобраться, какие плагины реально работают (или не работают) на версии Redmine 5.1, какие проблемы возникают и какие варианты вообще остаются.

При первом ознакомлении с плагинами Redmine уже выяснилась одна существенная проблема — у большей их части отсутствует хоть какое-то внятное описание, а при более детальном анализе становится понятно, что даже если удастся что-то найти подходящее, то нет никаких гарантий совместимости с текущей версией Redmine 5.1.

Раз уж у меня было время и желание, то подошел к вопросу с должным энтузиазмом. Таблица сравнений будет ниже.

Написал небольшое ТЗ, но здесь не будем вдаваться в него подробно. Если вкратце задача стоит так:

Чтобы не трогать работающий функционал и не быть голословным в своих догадках.

Поднял стенд Redmine в Docker с отдельной внутренней базой данных и тестовыми данными, чтобы безопасно установить, протестировать и сравнить плагины.

Оказалось, что подходящих плагинов неожиданно мало, а «живых» еще меньше. Хоть требований и немного:

  1. Необходимо контролировать время реакции;

  2. Время решения;

  3. И уметь в списке задач фильтровать по параметрам выше.

В итоге отобрал несколько наиболее живых вариантов. Искал их на официальном сайте и гитхабе.

Теперь подробнее:

Как я поднимал стенд

Чтобы изолировать все мои эксперименты, я собрал стенд в docker

  • отдельный контейнер с Redmine

  • отдельная база данных

  • доступ только через localhost

  • фиксированная версия Redmine (5.1)

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

Docker-compose.yml

services:   postgres:     image: postgres:16     volumes:       - db_data:/var/lib/postgresql/data     environment:       POSTGRES_USER: "redmine"       POSTGRES_PASSWORD: "password"       POSTGRES_DB: "redmine"       PGDATA: "/var/lib/postgresql/data"     restart: always   redmine:     image: redmine:5.1     ports:       - 80:3000     volumes:       - ./local-files:/usr/src/redmine/files       - ./local-plugins:/usr/src/redmine/plugins     depends_on:       - postgres     environment:       REDMINE_DB_POSTGRES: "postgres"       REDMINE_DB_USERNAME: "redmine"       REDMINE_DB_PASSWORD: "password"       REDMINE_DB_DATABASE: "redmine"     restart: no     volumes:  redmine_data:  db_data:  

Запускаюсь

docker-compose up -d

И вот Redmine запущен, ожидал что будут ошибки, но запуск прошел спокойно.

в docker-desktop появились контейнеры, в браузере Redmine открывается.

Авторизуюсь в первый раз (admin/admin)

Заполнил разные справочники, создал проект и несколько задач.

И вот уже казалось бы пора проверять скачанные плагины, но нет. Сначала делаю backup хотя бы базы данных.

Из desktop версии докера сделать это несложно:

Переходим во вкладку «Volumes» -> Открываем базу -> Переходим во вкладку «Export» -> Жмем кнопку «Quick export»

Тестирование плагинов

Чтобы избежать конфликтов, проверяю плагины по отдельности. Принцип следующий:

  1. Беру плагин и кладу в папку plugins на диске

  2. Устанавливаю зависимости(bund le install)

  3. Делаю миграцию, если требуется (rake redmine:plugins)

Как правило, что требуется для установки плагина описано в месте откуда я их скачивал.

Сразу поймал пару ошибок вида:

Could not find gem 'business_time (>= 0.13.0)'Could not find gem 'holidays (>= 7.1.0)'

Вылечил, установив нужные библиотеки:

gem install business_timegem install holidays

Анализ плагинов

Сводная таблица

Плагин

Результат

Комментарий

1

reporting_sla

Не успешно

Несовместимость версий

2

likehopper/redmine_sla

Не успешно

Нет поддержки oracle

3

redmine_issue_sla

Не успешно

Несовместимость версий

4

redmine_sla_timer

Не успешно

Несовместимость версий

5

redmine_sla_ola

Успешно

Есть дополнительные требования к задачам

6

agile

Успешно

Не покрывает нужных сценариев

7

RedmineUP

Успешно

Не совсем то, что нужно

8

Самописный плагин

Оценка по времени = 3-5 дня на демоверсию

Подробнее о каждом плагине

reporting_sla

плагин для отслеживания и отчетности по соглашениям об уровне обслуживания (SLA) в Redmine, предоставляющий подробные отчеты о жизненном цикле задач с настраиваемыми расчетами SLA на основе рабочего времени, праздников, выходных и матриц приоритетов.

Ссылка: https://github.com/easy-petr/redmine-sla-plugin

Дата последнего обновления: 18.11.2025

Вывод: Версии Rails/Redmine несовместимы. Требует серьезной доработки


likehopper/redmine_sla

плагин делегирует расчет SLA хранимым процедурам PostgreSQL, что позволяет: точно обрабатывать рабочие графики сроки с учетом праздников эффективно рассчитывать большие объемы задач предсказуемые и воспроизводимые результаты движок разработан для производственной среды

Ссылка

Дата последнего обновления:  12.02.2026

Вывод: хорошая производительность, логика расчета SLA вынесена в бд. работает только с PostgreSQL. Могло бы быть неплохо, но у меня Oracle.


redmine_agile

Устанавливается без доработок, работает, но не решает задачу SLA

Ссылка

Дата последнего обновления:  03.12.2025

Вывод: не про SLA, а скорее про визуализацию задач


redmine_issue_sla

Плагин, позволяющий назначать соглашения об уровне обслуживания (SLA) в зависимости от приоритета задачи и проекта. В последний раз обновлялся под Redmine 3.x

Ссылка

Дата последнего обновления:  29.01.2018

Вывод: на 5.1 не встает без переделок, плагин устарел


redmine_sla_timer

Описания как таковое отсутствует

Ссылка

Дата последнего обновления:  12.07.2020

Вывод: на redmine 5.1 без переделок не встает


redmine_sla_ola

Плагин запускается, но для нормальной работы тоже требуются доработки. Необходимо

  • добавить кастомное поле products

  • добавить поле first_reply

Без этого плагин просто бесполезен.

Ссылка

Дата последнего обновления:  12.07.2020

Вывод: рабочий вариант, но не “из коробки”


RedmineUP Helpdesk

Живой продукт. Авторы предлагают только пакетные предложения. В том числе и для тех.поддержки

Ссылка

Дата последнего обновления: нет информации

Вывод: Стабильный вариант, если есть бюджет. Есть поддержка и обновления.

Итог

Готового решения, чтобы поставить и использовать я не нашел.

Большинство плагинов просто из «коробки» не взлетят. Если вам нужен SLA в Redmine, то, по сути, есть три дороги:

  • Платить чтобы внедрил кто-то другой (redmineUP), но не всегда это оказывается проще, учитывая политику безопасности.

  • Дорабатывать существующие (redmine_sla_ola)

  • Писать свое

Четвертого я не нашел. На мой взгляд 3 вариант наиболее подходящим, по крайней мере, в моем конкретном случае.

В следующей статье покажу прототип.

ссылка на оригинал статьи https://habr.com/ru/articles/1025174/