Як запив свій дешборд на всі випадки життя

В роботі майже кожної людини неодмінно є цифри, від яких залежить все. Відвідуваність сайту, час відгуку або кількість коммітов - що завгодно! І якщо помістити ці цифри на саме видне місце, вони відразу стають або відмінним способом оперативно приймати рішення, або просто наочним інструментом мотивації. А найкращий спосіб зробити це - це власний дешборд, інформаційне табло, яке можна повісити на самому видному місці в офісі.

Як запив свій дешборд на всі випадки життя

Навіщо потрібні Dashboard «и? Якщо вірити Google Translate, Dashboard - це приладова панель. І дійсно, на тих Dashboard «ах, про які піде мова в статті, можна оперативно спостерігати за змінами різних параметрів - немов на панелі приладів літака. Тільки замість літака у нас буде умовний стартап, а замість висоти, крену і температури за бортом - кількість відвідувачів онлайн, статус різних компонентів сервісу та завантаження сервера.По суті дешборд - це екран, на який в реальному часі виводяться актуальні дані в якийсь красивою і наочній формі, наприклад, у вигляді графіків, цифр або діаграм. Такі екрани висять на стінах офісів багатьох крутих компаній: наприклад, на екран в офісі Яндекса виводяться пошукові запити, які користувачі вводять в даний момент. У багатьох технічних стартапи на екрані для технічних хлопців показують дані всіляких моніторингів. Я теж захотів зробити щось подібне і вже готувався кілька днів кодіть -, але виявилося, що все необхідне вже зробили до мене.

Сторінка, на якій ми опинилися, пропонує встановити Heroku Toolbelt - утиліту для роботи з хмарою. Не будемо собі в цьому відмовляти. Якщо у тебе, як і у мене, Ubuntu або Debian, то сміливо пиши в консоль:

Перший Dashboard Оскільки Dashing написаний на Ruby, створити свій перший дешборд буде простіше простого. Встановлюємо відповідний gem (переконайся, що в системі встановлений Ruby 1.9+): $ gem install dashing Далі генеруємо новий проект: $ dashing new sweet_dashboard_project Переходимо в директорію sweet_dashboard_project і бандл геми: $ bundle Тепер можна запускати сервер: $ dashing start Якщо все пройшло як треба, то на 3030-м порту запустився веб-сервер (в основі Dashing використовується Sinatra), тому можна сміливо відкривати в браузері localhost: 3030.Любой дешборд йде разом з демонстраційними віджетами і необхідними файлами - разом вони являють собою гарну відправну точку, щоб зробити дешборд під себе. На екрані буде кілька віджетів, які довільно можна переміщати і міняти місцями. Розробники спеціально підібрали такий набір, щоб продемонструвати різноманітність способів візуалізації даних: один з віджетів показує графік зміни нікого параметра (наприклад, завантаження процесора), другий більше підходить для візуалізації вартості і її зміни цінних паперів, третій візуалізує цифрове значення, але за допомогою кругового індикатора , схожого на спідометр, в четвертому виводиться табличка з певною статистикою, ще в одному виводиться текст і йде зворотний відлік.

До речі, тут же наводиться приклад, як можна впливати на ті дані, які виводяться на Dashboard. Спробуй набрати в консолі:

Ніхто не заважає написати свій віджет (не будемо заглиблюватися, все є в документації), але на перших порах нам абсолютно точно вистачить і стандартних. А ось з чим важливо розібратися, так це з оновленням даних, які далі будуть визуализироваться. Адже це найголовніше.

Як оновлювати дані Передача даних в віджети реалізована дуже просто. Треба лише вказати віджет, який потрібно використовувати (за допомогою його widget-id), і передати йому дані у вигляді JSON. Є два шляхи це сделать.Задачі з планувальником (Jobs) У Dashing вбудований спеціальний планувальник, який парсит job-скрипти, що знаходяться в папці jobs, і виконує задані в них дії з потрібною періодичністю. Для того щоб створити свій job-файл, використовуємо generate job sample_job. SCHEDULER.every '1m'. first_in => 0 do | job | send_event ( 'karma', ) End Це завдання буде виконуватися кожну хвилину і відправляти рандомноє значення всім віджетів, у яких data-id дорівнює karma. Відповідно, для передачі значень використовується метод send_event (widget_id, json_formatted_data) .Задачи дуже корисні, коли треба забирати якісь дані з бази даних або викликати сторонні API (в Dashing реалізована агрегація даних з Twitter «а).

У підсумку я зібрав наступний набір віджетів:

Зворотний відлік Countdown widget. Моніторинг відвідувачів. Віджет Google Analytics. Навантаження на сервер. Віджет Load Averages. Статус проекту у вигляді світлофора. Віджет Github status перепишемо під свій проект. Твіттер. Віджет Twitter Search.

Як запив свій дешборд на всі випадки життя
Як вивести на телевізор? Звичайно, дешборд буде корисний і просто на комп'ютері (можна встановити його в якості стартової сторінки), але все-таки традиційно зображення всієї цієї краси виводиться на телевізор. На сучасних телевізорах є навіть браузер, але, чесно зізнаюся, у мене такого в розпорядженні немає, так що цю конфігурацію я не пробовал.Мой варіант - використовувати для виведення Raspberry Pi. Він ідеально живиться через USB-порт телевізора (он-то зараз є майже скрізь) і підключається через HDMI. Єдиною проблемою може стати підключення до мережі: якщо не хочеш зайвих проводів, то можна заюзать USB Wi-Fi модуль (інструкції тут). На жаль, Dashing на перевірку виявився досить ненажерливим до ресурсів, тому довелося навіть встановити спеціальну збірку Chromium - Hexxeh «s Chrome і обмежити частоту оновлення зображення.

Як запив свій дешборд на всі випадки життя

Резюмую. Трудовитрати - один день. Програмування - майже не потрібно. Необхідна залізо - Raspberri Pi, одна штука. Результат - крутий дешборд в офісі, який тепер всі хочуть покращувати. Краса!

Публікація на Issuu.com

Підпишись на «Хакер»

Схожі статті