Redmine SLA
SupportSLA в четыре часа — это не четыре часа. Время реакции и решения считается в рабочем времени — по вашим календарям, праздникам и правилам паузы — с обнаружением предупреждений, критических состояний и нарушений.
Несколько серверов: $399

- Redmine
- 4, 5, 6 и 7
- Целевые сроки
- 4 независимых таймера
- Базы данных
- PostgreSQL, MySQL, MariaDB, SQLite
- Отчёты
- 4, с экспортом в CSV
- Дополнительные gem-пакеты
- Нет
- Изменённые файлы ядра
- Нет
Рабочее время — как положено
Недельные графики с разделёнными сменами, часовой пояс у каждого календаря, фиксированные и повторяющиеся праздники и особые рабочие дни. Время по местным часам с учётом перехода на летнее время: 09:00–18:00 остаётся 09:00–18:00.
Четыре независимых таймера
Первый ответ, подтверждение, решение и закрытие — у каждого свой целевой срок, состояние и поведение при паузе. Настраивайте только те, что используете.
Ожидание ответа клиента
Правила для каждого статуса определяют, какие таймеры останавливаются. Статус «Ожидание клиента» может заморозить решение, пока таймер первого ответа продолжает идти — ведь ответить по-прежнему должны вы.
Условия простыми словами
Отбор по проекту, трекеру, статусу, категории, исполнителю, группе, клиенту или любому настраиваемому полю — по настоящим названиям, а не по ID записей.
Предупреждение, критично, нарушение
Пороги срабатывают до наступления срока, а не после. Письма отправляются штатным почтовым механизмом Redmine, а захват по уникальному индексу гарантирует, что ни одно оповещение не уйдёт дважды.
Соблюдение SLA, которое можно доказать
Соблюдение по каждому целевому сроку, распределения времени реакции и решения с медианой и выбросами, а также таблица нарушений со сроком, фактической датой и превышением.
Таймер останавливается, когда команда уходит домой
Простая разница двух меток времени наказывает вас за выходные. Redmine SLA проходит по вашему рабочему календарю и считает только те минуты, когда вы работаете, поэтому задача с целевым сроком в четыре часа, созданная в пятницу вечером, должна быть решена в понедельник, а не той же ночью.
| Задача создана | Учтённое рабочее время | Срок | Астрономическое время |
|---|---|---|---|
| вторник, 09:30 | 4 ч без перерыва | вторник, 13:30 | 4 часа |
| пятница, 17:00 | 1 ч в пятницу, 3 ч в понедельник | понедельник, 12:00 | 67 часов |
| пятница, 17:00, понедельник — праздник | 1 ч в пятницу, 3 ч во вторник | вторник, 12:00 | 91 час |
| В любое время, по календарю 24×7 | Прошло 4 ч | Через четыре часа | 4 часа |
Календари поддерживают разделённые смены, собственный часовой пояс, разовые и повторяющиеся праздники, а также особые рабочие дни.
Четыре таймера, у каждого свои правила
Задавайте только те целевые сроки, которые вы действительно обещаете. Каждый запускается, приостанавливается и останавливается по своему событию, поэтому статус «Ожидание клиента» может заморозить решение, пока таймер первого ответа продолжает идти.
Первый ответ: кто-то откликнулся
Останавливается при первом публичном комментарии от кого-либо, кроме автора. Что считается ответом, задаётся в каждой политике.
Подтверждение: у задачи есть ответственный
Останавливается, когда задача назначена исполнителю или переходит в выбранный вами статус.
Решение: проблема устранена
Останавливается, когда задача переходит в закрытый статус или в один из выбранных вами статусов решения.
Закрытие: обращение завершено
Отдельный целевой срок для окончательного закрытия — для команд, которые сначала решают проблему, а потом подтверждают результат с клиентом.
Выглядит как Redmine, потому что это Redmine
Никаких iframe, отдельных приложений и повторного входа. Это настоящие экраны плагина в Redmine 7.0 с демонстрационным проектом, в котором есть задачи во всех состояниях SLA.
Агенты: панель SLA в каждой задаче
Одна строка на целевой срок: состояние, оставшееся время, израсходованная доля срока и точная дата наступления срока.


Руководители групп: очередь, отсортированная по тому, что вот-вот пойдёт не так
Фильтр по статусу, состоянию, политике или факту нарушения, сортировка по сроку, экспорт в CSV. Те же поля доступны как фильтры и столбцы в штатном списке задач Redmine.
Менеджеры: отчёты, которые можно показать клиенту
Соблюдение SLA, время ответа, время решения и нарушения с фильтрами по периоду, политике, трекеру и приоритету. Любой отчёт экспортируется в CSV.


Администраторы: политики простыми словами
«Когда приоритет задачи — один из: Срочный, Немедленный». Условия используют настоящие названия из списков выбора, а не ID записей. Длительность можно указать как 30, 4h или 1d 4h.




Эксплуатация: одно место, чтобы убедиться, что всё работает


Всё, о чём на самом деле спорят в службе поддержки
Споры редко касаются того, было ли обращение просрочено. Спорят о том, какие часы учитывались, когда таймер должен был остановиться и каким был целевой срок в тот момент.
Рабочее время — как положено
Недельные графики с разделёнными сменами, часовой пояс у каждого календаря, фиксированные и повторяющиеся праздники и особые рабочие дни. 09:00 остаётся 09:00 и при переходе на летнее время.
Ожидание ответа клиента
Правила паузы для каждого статуса — глобально или в рамках политики. Возвращается только рабочее время, поэтому пауза на выходные ничего не стоит.
Предупреждение, критично, нарушение
Пороги срабатывают до наступления срока. Каждое уведомление отправляется один раз через штатный почтовый механизм Redmine, а шаблоны можно редактировать для каждого события и языка.
Подходящая политика для каждой задачи
Отбор по проекту и подпроектам, трекеру, приоритету, статусу, категории, автору, исполнителю, группе или любому настраиваемому полю. Если подходят несколько политик, выигрывает та, что выше по позиции.
Прямо в списке задач
Политика SLA, статус, состояние, факт нарушения, срок и оставшееся время — как фильтры и столбцы в списке задач Redmine: с сортировкой, группировкой и экспортом.
Правки не переписывают историю
Каждый SLA хранит снимок политики, с которой он был запущен. Изменение целевого срока в следующем квартале не затронет цифры прошлого квартала. Пересчёт — это осознанное действие администратора.
Что происходит с одной задачей
Критическая ошибка, созданная в пятницу во второй половине дня, календарь «понедельник–пятница, 09:00–18:00», целевой срок первого ответа 30 минут и целевой срок решения четыре часа.
| Когда | Событие | Что делает плагин |
|---|---|---|
| Пт, 15:00 | Создана | Применяется первая подходящая политика, и её таймеры запускаются. Сегодня осталось три рабочих часа, так что один переносится на понедельник. |
| Пт, 15:20 | Первый ответ | Публичный комментарий агента останавливает таймер первого ответа на 20 минутах — в пределах целевых 30 минут. |
| Пт, 16:00 | Ожидание | Решение приостанавливается. Когда клиент отвечает в понедельник, срок сдвигается ровно на потерянное рабочее время. |
| Понедельник | Предупреждение на 75 % | Письмо с предупреждением уходит, пока ещё есть время что-то предпринять. |
| Понедельник | Решена | Израсходованное время и факт выполнения целевого срока фиксируются и больше не меняются. |
| Израсходовано | Состояние |
|---|---|
| Меньше 75 % | В норме |
| 75% | Под угрозой |
| 90% | Критично |
| 100% | Нарушено |
| Ожидание | Приостановлено |
| Целевой срок выполнен | Завершено |
JSON для каждого экрана
JSON API только для чтения охватывает всё, что показывают экраны. Аутентификация — обычным ключом API Redmine, права доступа — те же, что и у страниц.
| Метод | Endpoint | Возвращает |
|---|---|---|
| GET | /sla/issues/:id.json | SLA одной задачи |
| GET | /sla/issues.json | Задачи SLA, с фильтрами |
| GET | /projects/:id/sla/issues.json | Задачи SLA одного проекта |
| GET | /sla/timeline/:id.json | Хронология одной задачи |
| GET | /sla/dashboard.json | Счётчики дашборда и соблюдение SLA |
| GET | /sla/reports/:report.json | Любой из четырёх отчётов |
| GET | /sla/policies.json | Политики и их целевые сроки |
| GET | /sla/calendars.json | Календари и рабочее время |
Получение SLA одной задачи
Передайте ключ в заголовке X-Redmine-API-Key. Ответ содержит политику, календарь, общее состояние и по одной записи на каждый целевой срок с его состоянием, сроком и израсходованным временем. Используйте его, чтобы вывести обратный отсчёт SLA на настенный экран или передать показатели соблюдения в собственную отчётность.
Шесть прав доступа, назначаемых по ролям
SLA — стандартный модуль проекта Redmine. Включите его в проектах, где ведётся измерение, и дайте каждой роли только то, что ей нужно. У администраторов Redmine всегда есть оба глобальных права.
| Право доступа | Область | Что разрешает |
|---|---|---|
| view_sla | Проект | Просмотр панели SLA в задачах, списка задач SLA и хронологии |
| view_sla_dashboard | Проект | Просмотр дашборда SLA |
| view_sla_reports | Проект | Просмотр и экспорт отчётов SLA |
| manage_sla | Проект | Изменение настроек SLA проекта и пересчёт SLA задачи |
| manage_sla_policies | Глобальное | Создание и изменение политик и правил паузы |
| manage_sla_calendars | Глобальное | Создание и изменение календарей и праздников |
Работает там же, где уже работает ваш Redmine
| Окружение | Статус | Примечания |
|---|---|---|
| Redmine 7.x | Поддерживается | Протестирован на Redmine 7.0 с Rails 8.1 и Ruby 3.4.2. Скриншоты на этой странице сделаны в версии 7.0. |
| Redmine 6.x | Поддерживается | |
| Redmine 5.x | Поддерживается | После миграции нужно выполнить задачу копирования ресурсов плагинов |
| Redmine 4.x | Поддерживается | 4.0 — минимальная версия, заявленная плагином |
| Базы данных | Поддерживаются | PostgreSQL, MySQL, MariaDB и SQLite, без SQL, специфичного для конкретной СУБД |
| Дополнительные gem-пакеты | Нет | Без Redis и без Sidekiq. Фоновую проверку запускает одна запись cron или таймер systemd. |
| Ядро Redmine | Не затрагивается | Ни один файл ядра не редактируется, поэтому обновления Redmine проходят без проблем |
Установка в три шага
Нужен доступ к командной строке и возможность запускать rake-задачи. Всегда делайте резервную копию перед установкой плагина.
cd /path/to/redmine # the package arrives by email, or from your download link unzip redmine_sla-1.0.0.zip -d plugins/
RAILS_ENV=production bundle exec rake redmine:plugins:migrate # Redmine 4 and 5 only (Redmine 6+ serves plugin assets directly) RAILS_ENV=production bundle exec rake redmine:plugins:assets touch tmp/restart.txt # or systemctl restart redmine
# every five minutes: evaluate timers that are due, safe to run repeatedly */5 * * * * cd /path/to/redmine && RAILS_ENV=production bundle exec rake redmine_sla:process >> log/sla.log 2>&1
# Administration → SLA → create the default business calendars, then follow the checklist # Administration → SLA → Policies → write one policy: targets, calendar, conditions # Project → Settings → Modules → tick SLA for each project you measure # Administration → Roles and permissions → grant the SLA permissions
Изменяет ли плагин файлы ядра Redmine?
Что происходит с существующими SLA при изменении политики?
Нужны ли Redis, Sidekiq или дополнительные gem-пакеты?
Могут ли у разных клиентов или проектов быть разные SLA?
А как быть с задачами, созданными до установки?
Безопасно ли удаление плагина?
Скриншоты настоящие?
Цены
Один сервер
Один экземпляр Redmine · неограниченное число пользователей · 12 месяцев обновлений.
Несколько серверов
Неограниченное число серверов Redmine · неограниченное число пользователей · 12 месяцев обновлений.
Нужно решение для Redmine под ваши задачи?
Ищете функцию, которой нет в наших плагинах?
RedmineKit занимается разработкой плагинов Redmine на заказ, доработкой плагинов, автоматизацией рабочих процессов, интеграцией со сторонними системами и созданием решений под ваш бизнес.
Расскажите, что вам нужно. Мы изучим требования и предложим подходящее решение с оценкой стоимости и сроков.