Redmine Dashboards
DashboardsДашборды на основе уже имеющихся у вас сохранённых запросов — сетка с перетаскиванием из KPI-плиток, таблиц и пятнадцати типов диаграмм, с агрегацией в SQL и с учётом того, что разрешено видеть конкретному пользователю.
Несколько серверов: $399

- Типы виджетов
- 23
- Варианты диаграмм
- 15
- Redmine
- 4 · 5 · 6 · 7
- Базы данных
- MySQL, MariaDB, PostgreSQL
- Патчи ядра
- Нет
Конструктор с перетаскиванием
Сетка, элементы которой можно менять в размере и переставлять, сохраняется автоматически по ходу работы. Располагайте KPI, диаграммы и таблицы так, чтобы дашборд рассказывал нужную историю, — без файлов разметки и перезагрузки страницы.
Пятнадцать типов диаграмм
Столбчатая, горизонтальная, с накоплением, линейная, многолинейная, с областями, круговая, кольцевая, радарная, полярная, шкала, воронка, тепловая карта, древовидная карта и кольцо прогресса — на Apache ECharts, в светлом и тёмном оформлении.
Ваши сохранённые запросы — наглядно
Укажите для виджета сохранённый запрос, и он унаследует его фильтр — включая настраиваемые поля, наблюдателей и подпроекты. Или превратите запрос в целый дашборд одним щелчком.
Агрегация в SQL
GROUP BY, COUNT, SUM и AVG выполняются в базе данных, поэтому сто тысяч задач подсчитываются, а не загружаются в память. Результаты кэшируются по пользователю, виджету и активным фильтрам.
С учётом прав зрителя
Каждое чтение начинается с Issue.visible(user), TimeEntry.visible(user) и Query.visible(user), поэтому ни одна диаграмма не посчитает итоги по проекту, в котором смотрящий не участвует.
Фильтры, обновление и детализация
Одна панель фильтров меняет охват всего дашборда, интервал обновления для каждого дашборда поддерживает актуальность настенного экрана, а каждый столбец, сектор и ячейка открывают стоящий за ними список задач.
Посмотрите, как это работает внутри Redmine
Все скриншоты здесь сделаны на стандартной установке Redmine 6 с плагином, просто помещённым в plugins/. Дашборды находятся под штатными шапкой и меню Redmine, потому что именно там они и работают.
Создание дашборда


Виджеты


Общий доступ и переключение


Запрос уже и есть отчёт
Здесь вас ни разу не попросят описывать данные повторно. Отфильтруйте список задач как обычно, сохраните его — и этот сохранённый запрос станет областью, которую агрегирует виджет, тем же отношением, которое Redmine использует для отображения самого списка.
| Шаг | Что вы делаете | Что получаете |
|---|---|---|
| 1. Сохраните запрос | Отфильтруйте список задач — настраиваемые поля, наблюдатели, подпроекты — и нажмите «Сохранить» | Именованный запрос, доступный тем, кому вы его открыли |
| 2. Укажите его в виджете | Выберите этот запрос в диалоге виджета | Источник данных и разумная группировка по умолчанию определяются автоматически |
| 3. Или создайте весь дашборд | Нажмите «Из запроса» | Дашборд из KPI-плиток и диаграмм, привязанных к запросу, за один запрос |
Настройка через выпадающие списки, а не SQL
Виджет — это источник, измерение, показатель и агрегация. Группируйте задачи по статусу, приоритету, трекеру, исполнителю или любому полю даты с разбивкой по дням, неделям, месяцам или годам; считайте их количество, суммируйте оценку временных затрат или усредняйте процент готовности. Никому в команде не нужно писать SQL, чтобы получить диаграмму, — а раз писать SQL не нужно, не существует и запроса, который мог бы выйти за пределы прав того, кто его просматривает.

Каждый виджет настраивается в одной форме
Любой виджет — KPI, столбчатая или кольцевая диаграмма — настраивается в одной и той же короткой форме: заголовок и тип, источник данных, необязательный сохранённый запрос для фильтров, показатель и группировка с Top-N. Смените тип — и форма подстроится.




Одна страница настроек для администраторов
В разделе «Администрирование › Модули › Redmine Charts» задаются кэширование результатов для каждого пользователя, срок жизни кэша (5–86 400 секунд, по умолчанию 300), светлая или тёмная тема по умолчанию и интервал автообновления по умолчанию, где 0 отключает его. Это штатный экран настроек плагинов Redmine.
23 типа виджетов — и место для ваших
Каждый тип описан метаданными в реестре, поэтому интерфейс настройки строится сам из объявления виджета, а не из отдельной формы, написанной вручную для каждой диаграммы.
| Семейство | Типы | Настраивается через |
|---|---|---|
| Диаграммы | Столбчатая, горизонтальная столбчатая, столбчатая с накоплением, линейная, многолинейная, с областями, круговая, кольцевая, радарная, полярная, шкала, воронка, тепловая карта, древовидная карта, кольцо прогресса | Источник, измерение, показатель, агрегация |
| KPI / число | Одно агрегированное значение с собственным фильтром | count · sum · avg · min · max |
| Таблица | Таблица с постраничным выводом по тем же данным с учётом прав доступа | Выбор столбцов и фильтры |
| Контент | Markdown, заметки, HTML, iframe, лента активности, последние задачи | Произвольный текст или одна из штатных лент Redmine |
Отрисовка на Apache ECharts
Пятнадцать вариантов в светлой и тёмной темах, перерисовываются при изменении размера и остаются читаемыми на настенном экране. Готовая сборка входит в пакет, поэтому для установки плагина не нужны ни Node, ни этап сборки.
Детализация из любого сегмента
Щелчок по столбцу, сектору или ячейке тепловой карты открывает список задач Redmine, отфильтрованный ровно по этим задачам. Цифры остаются проверяемыми, потому что вы всегда можете перейти к стоящим за ними строкам.
Глобальные фильтры и автообновление
Одна панель фильтров сразу меняет охват всех виджетов на дашборде, а интервал обновления для каждого дашборда поддерживает актуальность экрана в коридоре. Значение 0 отключает обновление.
Шаблоны и схемы
Сохраните дашборд как шаблон для повторного использования, создайте копию для каждой команды или экспортируйте его как JSON-схему и импортируйте в другой экземпляр — со staging на production без ручной пересборки.
Один плагин — дашборд для каждой команды
Руководитель поставки, служба поддержки и отдельный разработчик создали эти дашборды за считаные минуты из уже имевшихся у них сохранённых запросов.





Два встроенных источника — и ваши рядом с ними
Задачи и трудозатраты поставляются с заранее зарегистрированными измерениями и показателями, и оба источника работают через штатные области видимости Redmine. Источник, добавленный другим плагином, обрабатывается точно так же.
| Источник | Измерения | Показатели |
|---|---|---|
| Задачи | Статус, приоритет, трекер, проект, исполнитель, автор, категория, версия, дата создания, дата обновления, срок завершения | Количество задач, оценка временных затрат, готовность |
| Трудозатраты | Проект, пользователь, деятельность, дата | Часы, количество записей |
| Ваш собственный | Всё, что вы зарегистрируете | Всё, что вы зарегистрируете |
Расширение — это регистрация, а не патчи
Источник данных — это класс с именем, измерениями, показателями и base_scope с учётом прав доступа; тип виджета — это хеш. Зарегистрируйте любой из них в init.rb своего плагина через RedmineCharts.register_data_source или register_widget_type, и он сразу появится в интерфейсе настройки — с фильтрацией, кэшированием и детализацией. Для этого в самом плагине ничего не нужно редактировать.
Никто не агрегирует то, что не может прочитать
Дашборд — быстрый способ раскрыть цифру, поэтому каждое чтение начинается с области видимости пользователя, а не заканчивается проверкой по ней.
Сначала видимость, потом группировка
Issue.visible(user), TimeEntry.visible(user) и Query.visible(user) ограничивают выборку ещё до того, как будет подсчитана хотя бы одна строка. Итог по проекту, в котором вы не участвуете, не может появиться ни в одном виджете, потому что этих строк никогда не было в наборе.
Четыре детальных права доступа
Просмотр дашбордов, их создание, управление всеми дашбордами, управление шаблонами — каждое назначается по ролям. И всё это остаётся выключенным, пока кто-нибудь не включит модуль Charts & Dashboards для проекта.
Общий доступ через участие в проектах
Открывайте дашборд пользователям, группам, ролям или целым проектам. При каждом запросе viewable_by? и editable_by? заново вычисляются через штатное участие в проектах Redmine, а не через параллельный список доступа, который со временем расходится с реальностью.
Ничто не покидает сервер
Фронтенд обращается только к JSON API этого плагина на вашем собственном Redmine, используя уже имеющиеся сессию и CSRF-токен. Никаких внешних сервисов, проверок лицензии через интернет и телеметрии.
Рассчитан на большие экземпляры
Подсчёт ста тысяч задач не должен означать загрузку ста тысяч объектов. Здесь и не означает.
| Задача | Как она решается |
|---|---|
| Агрегация | GROUP BY, COUNT, SUM и AVG выполняются в SQL — строки никогда не загружаются в память только ради подсчёта |
| Широкие измерения | Свёртка Top-N сохраняет небольшой объём ответа, когда у измерения тысячи значений |
| Повторные просмотры | Результаты кэшируются через Rails.cache по пользователю, времени изменения виджета и активным фильтрам; срок жизни задаётся в настройках, Redis работает без доработок |
| Один медленный виджет | Виджеты загружаются независимо, поэтому один тяжёлый запрос никогда не держит в заложниках весь дашборд |
| Отсутствующая JS-сборка | В качестве запасного варианта Rails отрисовывает данные каждого виджета на сервере, поэтому страница деградирует, а не остаётся пустой |
Переносимость по замыслу, а не случайно
Поддержка разных версий и баз данных заложена в архитектуру — миграции, хранение JSON и группировка по датам написаны с учётом всех различий.
| Аспект | Поддерживается | Как |
|---|---|---|
| Redmine | 4.x, 5.x, 6.x, 7.x | Объявляет requires_redmine version_or_higher 4.0.0, без переопределений ядра, которые могли бы устареть |
| Rails | 5.2 → 8.0 | Миграции рассчитаны на базовый уровень 5.2, который понимают все релизы вплоть до 8.0 |
| Ruby | 2.5+ | Соответствует минимальным требованиям Redmine 4 |
| Базы данных | MySQL, MariaDB, PostgreSQL | JSON хранится в обычных текстовых столбцах — DDL везде одинаковый — с сериализатором, который выбирает нужный формат для версии Rails |
| Группировка по датам | День, неделя, месяц, год | Группировка по переносимому CAST(col AS DATE) с последующей свёрткой в интервалы на Ruby — без SQL, специфичного для конкретной СУБД |
| Повторный запуск миграций | Безопасен | Миграции написаны с защитой от сбоев, поэтому прерванное обновление можно выполнить повторно |
Автоматизация с первого дня
Все endpoint'ы находятся под /redmine_charts/api, возвращают JSON и применяют ровно те же права доступа, что и интерфейс, — так что дашборды можно создавать из CI или генерировать для каждой команды.
| Метод | Путь | Что делает |
|---|---|---|
| GET | /dashboards | Все дашборды, видимые вызывающему |
| POST | /dashboards | Создать дашборд |
| GET | /dashboards/:id | Получить дашборд с виджетами |
| PATCH | /dashboards/:id | Изменить название, макет или настройки |
| POST | /dashboards/:id/duplicate | Создать копию вместе с виджетами |
| GET | /dashboards/:id/export | Экспортировать JSON-схему |
| POST | /dashboards/import | Создать дашборд из схемы |
| POST | /dashboards/:id/widgets | Добавить виджет |
| GET | /widgets/:id/data | Агрегированные данные виджета с учётом прав доступа |
| GET | /meta/data_sources | Источники, измерения, показатели и доступные вам сохранённые запросы |
Что есть сегодня и что будет дальше
Пункты дорожной карты по замыслу лишь добавляют возможности — новые источники данных, типы виджетов и сервисы экспорта, — поэтому ни один из них не потребует что-либо мигрировать. Они перечислены как планы, а не как функции, чтобы вы принимали решение о покупке по тому, что есть в комплекте уже сегодня.
| Возможность | Статус |
|---|---|
| Дашборды: создание, копирование, выбор основного, экспорт и импорт | Доступно |
| Сетка с перетаскиванием и изменением размера, с автосохранением | Доступно |
| KPI, таблица и полный набор диаграмм ECharts | Доступно |
| Визуальная настройка виджетов без SQL | Доступно |
| Использование сохранённых запросов и создание дашборда в один щелчок | Доступно |
| Глобальные фильтры, обновляющие весь дашборд | Доступно |
| Детализация: диаграмма → список задач | Доступно |
| Агрегация в SQL и кэширование для каждого пользователя с учётом прав доступа | Доступно |
| Общий доступ, шаблоны, светлая и тёмная темы | Доступно |
| Поддержка разных версий и баз данных, серверный запасной вариант | Доступно |
| Экспорт в PDF, PNG и Excel | Запланировано |
| Фоновые задания для очень тяжёлых отчётов | Запланировано |
| Обновления в реальном времени через WebSocket | Запланировано |
| Снимки по расписанию с отправкой по электронной почте | Запланировано |
| Режим киоска / настенного экрана | Запланировано |
| Конструктор отчётов на естественном языке с ИИ | Запланировано |
| Виджеты календаря, диаграммы сгорания и сводной диаграммы Ганта | Запланировано |
Установка в три шага
Нужен доступ к командной строке и возможность запускать rake-задачи. Всегда делайте резервную копию перед установкой плагина.
cd /path/to/redmine # unzip the package from your email or download link unzip redmine_charts-1.0.0.zip -d plugins/ bundle install
bundle exec rake redmine:plugins:migrate NAME=redmine_charts RAILS_ENV=production # optional: the built-in dashboard templates bundle exec rake redmine_charts:seed_templates RAILS_ENV=production touch tmp/restart.txt
# Project → Settings → Modules → Charts & Dashboards # then grant the dashboard permissions to the roles that need them # a Dashboards entry appears in the top menu for anyone who holds one
Изменяет или переопределяет ли плагин файлы ядра Redmine?
Нужны ли Node.js или этап сборки для установки?
Будут ли работать мои сохранённые запросы, включая сложные?
Может ли кто-то увидеть цифры по проекту, к которому у него нет доступа?
Какие базы данных поддерживаются?
На каких версиях Redmine и Rails работает плагин?
Можно ли добавить собственные источники данных или типы диаграмм?
Чего сознательно нет в версии 1.0?
Цены
Один сервер
Один экземпляр Redmine · неограниченное число пользователей · 12 месяцев обновлений.
Несколько серверов
Неограниченное число серверов Redmine · неограниченное число пользователей · 12 месяцев обновлений.
Нужно решение для Redmine под ваши задачи?
Ищете функцию, которой нет в наших плагинах?
RedmineKit занимается разработкой плагинов Redmine на заказ, доработкой плагинов, автоматизацией рабочих процессов, интеграцией со сторонними системами и созданием решений под ваш бизнес.
Расскажите, что вам нужно. Мы изучим требования и предложим подходящее решение с оценкой стоимости и сроков.