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» задаються кешування результатів для кожного користувача, TTL кешу (5–86400 секунд, за замовчуванням 300), світла чи темна тема за замовчуванням та інтервал автооновлення за замовчуванням, де 0 вимикає його. Це стандартний екран налаштувань плагінів Redmine.
23 типи віджетів — і місце для Ваших
Кожен тип — це метадані в реєстрі, тож інтерфейс налаштування будується з декларації самого віджета, а не з окремої форми, написаної вручну для кожної діаграми.
| Сімейство | Типи | Налаштовується через |
|---|---|---|
| Діаграми | Стовпчикова, горизонтальна стовпчикова, накопичувальна стовпчикова, лінійна, багатолінійна, з областями, кругова, кільцева, радарна, полярна, шкала, воронка, теплова карта, деревоподібна карта, кільце прогресу | Джерело, вимір, показник, агрегація |
| KPI / число | Одне агреговане значення з власним фільтром | count · sum · avg · min · max |
| Таблиця | Таблиця з розбиттям на сторінки за тими самими даними з урахуванням прав доступу | Вибір колонок і фільтри |
| Вміст | Markdown, нотатки, HTML, iframe, стрічка активності, останні задачі | Довільний текст або одна з власних стрічок Redmine |
На основі Apache ECharts
П’ятнадцять варіантів зі світлою та темною темами, що перемальовуються під час зміни розміру й лишаються читабельними на настінному екрані. Зібраний бандл входить до пакета, тож для встановлення плагіна не потрібні ні Node, ні етап збирання.
Деталізація будь-якого сегмента
Клацання по стовпчику, сектору чи клітинці теплової карти відкриває список задач Redmine, відфільтрований саме до цих задач. Цифри залишаються перевірюваними, бо Ви завжди можете перейти до рядків, що за ними стоять.
Глобальні фільтри та автооновлення
Одна панель фільтрів одночасно змінює вибірку для всіх віджетів дашборда, а інтервал оновлення для кожного дашборда підтримує актуальність екрана в коридорі. Нуль вимикає оновлення.
Шаблони та схеми
Збережіть дашборд як шаблон для повторного використання, дублюйте його для кожної команди або експортуйте як 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; TTL задається в налаштуваннях, а 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, специфічного для постачальника |
| Повторний запуск міграцій | Безпечно | Написано з обережністю, тож перерване оновлення можна запустити повторно |
Автоматизація з першого дня
Кожен ендпоінт розташований під /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 | Заплановано |
| Заплановані знімки з надсиланням електронною поштою | Заплановано |
| Режим кіоску / настінного екрана | Заплановано |
| Конструктор звітів на основі ШІ природною мовою | Заплановано |
| Віджети календаря, burndown і зведення діаграми Ганта | Заплановано |
Встановлення у три кроки
Потрібен доступ до командного рядка та можливість запускати 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 на замовлення, доопрацювання плагінів, автоматизацію робочих процесів, інтеграції зі сторонніми сервісами та рішення, адаптовані до Вашого бізнесу.
Розкажіть, що Вам потрібно. Ми розглянемо Ваші вимоги та запропонуємо відповідне рішення з орієнтовною вартістю та термінами.