GH GambleHub

Візуалізація метрик

1) Цілі візуалізації

Зрозуміти швидко: за 3-5 секунд розпізнати тренд/аномалію/зсув.
Порівняти коректно: періоди, сегменти, варіанти A/B.
Повірити даним: показати невизначеність, джерела, свіжість.
Діяти: поруч з графіком - CTA, фільтри, посилання на плейбуки.

2) Типи метрик і кращі форми

СценарійКращі формиКоментарі
Часові рядилінійний графік, area з прозорістю, spapklineТипово p50/p95; уникайте 3D і stacked з безліччю рядів
Розподілhistogram, boxplot, violin, ECDFДля «важких хвостів» показуйте лог-шкалу або percentiles
Категоріїbar/column, dot plotСортуйте за значенням, не за алфавітом
Склад/частки100% stacked bars, treemapКругові - тільки для 2-3 сегментів
Порівняння версійsmall multiples, slope graph, dumbbellРобіть однакові осі і масштаби
Геоchoropleth, символ-картаНормуйте на населення/обсяг (per capita/1000 tx)
Послідовностіfunnel, sankeyДля воронок - явно фіксуйте базис кроку

3) Шкали, осі та агрегування

Шкали: лінійна за замовчуванням; логарифмічна - для кратних діапазонів; процентна - [0; 100].
Нульовий базис: стовпчики - з нуля; лінії - без вимоги нуля (але показуйте baseline).
Агрегування: денні/годинні/хвилинні, p50/p95/p99; уникайте середнього для «галасливих» розподілів.
Roll-up/Drill-down: кнопки «Д/Н/Ч» (день/тиждень/година) і «↑/↓» з ієрархії (region→strana→gorod).
Вибірка точок (downsampling): LTTB/MinMax для довгих рядів, щоб не втрачати екстремуми.

4) Контекст і порівняння

Порівняння періодів: «Поточний vs Попередній» (overlay з пунктиром) і/або small multiples; підпишіть відносну ∆ і абсолютну ∆.
Сезонність: фонові смуги «вихідні/свята», теплі/холодні зони по годинах.
Бенчмарки: горизонтальні лінії норм/цілей (SLO/SLA), підпишіть одиниці і часовий горизонт.
Інтервали довіри: смуги/стрічки ± CI; для A/B - error bars і p-value/ліфт.

5) Невизначеність, пропуски, ревізії

Пропуски: розривайте лінію (не з'єднуйте нулем); сірі «тумани» для незавершеного вікна.
Лаги даних: бейдж «дані відстають на 12 хв», tooltip з timestamp ingest.
Ревізії: тонка штриховка ділянок «перераховано», посилання на changelog.

6) Колір, форма і доступність (A11y)

Палітра: нейтральна база; червоний - критично, помаранчевий - попередження, зелений - позитив.
Кольорово-незалежність: дублюйте значенням/маркерами/підписами; контраст ≥ WCAG AA.
Кількість рядків: ≤5 на один графік; інакше - small multiples/фасетки.
Розміри/кліки: інтерактивні цілі ≥ 32-40 px; фокус-кільця, клавіатурна навігація.

7) Підписуємо правильно

Осі: одиниці вимірювання, формат чисел (1 234,56; 12. 3k; 5. 2%); дата-мітки з локаллю.
Легенда: в порядку візуальної важливості; клікабельна для включення/виключення рядів.
Анотації: коротко і у справі ("реліз PSP_X", "інцидент # 4217"), з посиланням на подію.

8) Інтерактивність: Не перевантажувати

Hover/Tooltip: компактні, з ключовими полями і ∆ vs baseline.
Zoom/Brush: виділення діапазону мишею/клавіатурою; кнопка «Скинути».
Drill-down: клік по сегменту → детальний розріз; breadcrumb для повернення.
Селектори: пресети діапазонів (24ч/7д/30д), фільтри сегментів, перемикач «Абс/Відсоток».

9) Шаблони компонентів (приклад API)

json
{
"type": "timeseries",
"title": "Payment authorizations,"
"metrics": [
{"id":"auth_rate_p50","label":"p50","agg":"p50"},
{"id":"auth_rate_p95","label":"p95","agg":"p95","style":{"dash":true}}
],
"x": {"field":"ts","granularity":"5m"},
"y": {"unit":"%","min":0,"max":100},
"baseline": {"value": 92. 0, "label": "SLO 92%"},
"ci": {"field_low":"ci_low","field_high":"ci_high"},
"badges": ["late_data","revised"]
}

10) Продуктивність візуалізації

Агрегувати на сервері: повертайте вже «правильні» вікна/квантилі.
Canvas/WebGL: для десятків тисяч точок і теплових карт; SVG - для ≤2 -3 тис. елементів і чітких підписів.
Віртуалізація списків/таблиць: завантажувати сторінки в міру прокрутки.
Кешування: гарячі тайли, precompute «вчора/тиждень».

11) Достовірність і анти-патерни

Не можна:
  • Маніпулювати шкалою (обрізати вісь стовпчиків вище нуля).
  • Змішувати різні одиниці без вторинної осі і явних підписів.
  • Будувати «ліс» stacked-area з 8-10 рядами.
  • Підміняти пропуски нулями.
  • Використовувати 3D/тенюшки заради «краси».

12) Формули, одиниці та форматування

Гроші: minor units/десяткові рядки; явно вказувати валюту.
Конверсії/частки: відсотки з однієї десяткової (при необхідності - p. p.) .
Швидкості/ставки: «в годину/в день» - підпишіть період.
Округлення: до значущих розрядів, не приховуючи порядок величин.

13) Специфіка метрик якості та SLO

Показуйте error-budget burn (залишився% бюджету) і рівні попереджень.
Для аптайма - stacked статус-бари «OK/Degraded/Down» + вікна інцидентів.
Для latency - розподілу (p50/p95/p99), «violin/boxplot» за кластерами/ендпоінтами.

14) Сторітеллінг і авто-саммарі

Narrative блок: 2-4 пропозиції «що сталося» + «чому» + «що зробити».
Слайди/експорт: PDF/PNG/SVG зі збереженням шрифтів і кольорів; водяні знаки і дата зрізу.

15) Тест-план для візуалізацій

Unit: формат осей, обчислення бінів, CI-стрічки.
Integration: фільтри/діапазони/локаль, drill-down і зворотна навігація.
E2E: сценарій «від алерта до дії»: клік по аномалії → плейбук.
A11y/i18n: екранні читачі, клавіатура, переклад підписів.
Perf: рендер великих рядів, cold/warm cache, стрес на 10 × точок.

16) Метрики якості візуалізацій

Time-to-Insight (TTI): медіана часу до першого кліка/розуміння.
Explained Rate: частка графіків з доступним Explain.
Action Rate: де були виконані дії з віджету.
Error/Noise: невірні підписи, скарги користувачів.
Perf p95: час до першого контенту і до інтерактивності.

17) Чек-лист дизайну графіка

  • Правильний тип графіка під задачу
  • Ясні осі, одиниці, формат чисел і дат
  • Контекст: baseline/SLO, період порівняння, анотації
  • Показ перепусток/лагів/ревізій
  • Кольори і контраст (WCAG), не більше 5 рядів
  • Інтерактивність без перевантаження: hover, zoom, drill-down
  • Продуктивність: агрегування, downsampling, Canvas/WebGL при потребі
  • CTA поруч: відкрити звіт/плейбук/створити алерт
  • Експорт/шарінг з датою зрізу і параметрами фільтрів

18) Вбудовування в дашборди

Consistency-kit: єдині токени (шрифти, розміри, палітри), єдина поведінка тултипів.
Шаблони віджетів: KPI, timeseries, distribution, comparison, map, table.
Слоти для «розумних» підказок: бейдж «аномалія», пояснення драйверів, кнопки дій.

19) План впровадження (3 ітерації)

Ітерація 1 - Fundamentals (2-3 тижні):
  • Типи графіків, єдині шкали/формати, baseline/SLO, пропуски/лаг-бейджі, експорт.
Ітерація 2 - Insight & A11y (3-4 тижні):
  • Порівняння періодів, CI-стрічки, small multiples, аномалії/бейджі, клавіатурна навігація.
Ітерація 3 - Scale & Story (безперервно):
  • Downsampling/WebGL, Explain-панель, авто-саммарі, пресети дашбордів і CTA.

20) Міні-FAQ

Чи потрібно завжди починати вісь Y з нуля?
Для стовпчиків - так. Для ліній - не обов'язково, але вкажіть baseline і не «обманюйте» масштабом.

Як показати p95/p99 і не перевантажити?
Стрічка percentiles або small multiples з однаковими осями.

Чим замінити «пиріг» з 8 сегментами?
100% stacked bars або таблиця з барами всередині рядків (bar-in-cell) + сортування.

Підсумок

Ефективна візуалізація метрик - це коректний вибір форми + чесний контекст + зручні дії. Тримайте єдині стандарти шкал і форматів, показуйте невизначеність і пропуски, давайте швидкий дрил-даун і CTA, бережіть продуктивність і доступність. Тоді графіки перестануть бути «картинками» і стануть інструментом прийняття рішень.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Telegram
@Gamble_GC
Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.