mirror of
git://f0xx.org/ac/ac-docs
synced 2026-07-29 05:18:46 +03:00
initial
This commit is contained in:
142
GRAFANA_vs_others_graphvis_pivot.md
Normal file
142
GRAFANA_vs_others_graphvis_pivot.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# Android Cast — Graph Visualization Pivot
|
||||
|
||||
<!-- doc-meta:start -->
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Author | Anton Afanasyeu |
|
||||
| Revision | R1 |
|
||||
| Creation date | 2026-06-02 |
|
||||
| Last modification date | 2026-06-02 |
|
||||
| Co-authored | |
|
||||
| Severity | medium |
|
||||
| State | pending review |
|
||||
| Document type | DR |
|
||||
<!-- doc-meta:end -->
|
||||
|
||||
\newpage
|
||||
\newpage
|
||||
|
||||
---
|
||||
|
||||
|
||||
_Date: 2026-06-02_
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Table of contents
|
||||
|
||||
<!-- toc -->
|
||||
- [Context and constraints](#context-and-constraints)
|
||||
- [Executive summary](#executive-summary)
|
||||
- [Option comparison](#option-comparison)
|
||||
- [Role-based graph packs (suggested)](#role-based-graph-packs-suggested)
|
||||
- [User graphs](#user-graphs)
|
||||
- [Slug admin graphs](#slug-admin-graphs)
|
||||
- [Platform admin graphs](#platform-admin-graphs)
|
||||
- [Estimates (engineering)](#estimates-engineering)
|
||||
- [Recommendation under your constraints](#recommendation-under-your-constraints)
|
||||
- [Implementation slice (proposed)](#implementation-slice-proposed)
|
||||
- [Source linkage](#source-linkage)
|
||||
<!-- /toc -->
|
||||
|
||||
**Documentation index:** [README.md](README.md)
|
||||
|
||||
---
|
||||
|
||||
## Context and constraints
|
||||
|
||||
- Stack: minimalistic LAMP with nginx + php-fpm + MariaDB.
|
||||
- Main constraint: **no data duplication/ETL pipeline** (no cron-based mirroring or parallel stores).
|
||||
- Need role-hierarchical analytics: user → slug admin → platform admin.
|
||||
|
||||
## Executive summary
|
||||
|
||||
- **Grafana is viable** if it can query MariaDB directly and enforce tenant/role boundaries safely.
|
||||
- **Custom PHP dashboards are safer initially** for auth/session reuse and strict slug scoping.
|
||||
- Recommended approach: **hybrid**.
|
||||
- Define a canonical SQL metrics contract once.
|
||||
- Ship custom BE dashboards first.
|
||||
- Add Grafana later only if direct DB + RBAC integration is clean.
|
||||
|
||||
## Option comparison
|
||||
|
||||
| Option | Pros | Cons / Risks | Stack impact |
|
||||
|---|---|---|---|
|
||||
| Grafana (direct DB) | Fast polished charts, panel ecosystem, alerting | Auth/RBAC integration effort; slug filtering discipline required; one more service to operate | Adds Grafana runtime (no ETL required) |
|
||||
| Custom PHP + nginx | Native shared login/session, direct BE internals, deterministic tenant logic | More UI/chart development effort | No new runtime dependencies |
|
||||
| Hybrid (recommended) | Fast practical delivery + future flexibility | Needs shared metrics contract discipline | Minimal immediate risk |
|
||||
|
||||
## Role-based graph packs (suggested)
|
||||
|
||||
### User graphs
|
||||
|
||||
- Unique devices per day (registrations/device IDs).
|
||||
- Avg cast duration by day/week.
|
||||
- Avg receive sessions by day/week.
|
||||
- Success ratio (session start vs completed).
|
||||
- App version distribution.
|
||||
|
||||
### Slug admin graphs
|
||||
|
||||
- Everything from user level, aggregated by slug.
|
||||
- Active vs passive users/devices.
|
||||
- Avg app bandwidth (send/recv) in 1d/7d windows.
|
||||
- Install source pie: Play Market vs OTA vs custom.
|
||||
- NTP/time-source usage split and correction savings metric.
|
||||
|
||||
### Platform admin graphs
|
||||
|
||||
- Everything from slug admin level, cross-slug view.
|
||||
- Crashes per slug/device/user over time.
|
||||
- Crash trend by app version / Android API / fingerprint.
|
||||
- Crash-to-ticket linkage counts with issue tracker links.
|
||||
- Top unreliable slugs/devices (rate-based).
|
||||
|
||||
## Estimates (engineering)
|
||||
|
||||
| Track | Initial delivery | Hardening | Total |
|
||||
|---|---:|---:|---:|
|
||||
| Grafana direct DB | 4-7 dev days | 5-8 dev days | 9-15 dev days |
|
||||
| Custom PHP dashboards | 5-9 dev days | 3-6 dev days | 8-15 dev days |
|
||||
| Hybrid phase-1 PHP then optional Grafana | 6-10 dev days | +4-7 dev days (optional) | 10-17 dev days |
|
||||
|
||||
_Assumptions: current MariaDB crash/ticket/session structures are available; no major schema rewrite._
|
||||
|
||||
## Recommendation under your constraints
|
||||
|
||||
1. Keep **single source of truth** in MariaDB (no ETL copy pipeline).
|
||||
2. Build **SQL metrics views/contracts** first.
|
||||
3. Implement **custom PHP dashboards** first for guaranteed auth and tenant correctness.
|
||||
4. Add Grafana later only if direct DB + RBAC mapping is validated without complexity growth.
|
||||
|
||||
## Implementation slice (proposed)
|
||||
|
||||
1. Define metrics dictionary + SQL views by role scope (1-2 days).
|
||||
2. Extend heartbeat with `time_source` + NTP correction savings fields (0.5-1 day).
|
||||
3. Build user + slug-admin dashboard pages with 1d/7d selectors (3-5 days).
|
||||
4. Build platform admin reliability board with crash/ticket links (2-3 days).
|
||||
5. Optional Grafana POC on same views (2-3 days).
|
||||
|
||||
## Source linkage
|
||||
|
||||
- This markdown file is the editable source for:
|
||||
- `docs/GRAFANA_vs_others_graphvis_pivot.pdf`
|
||||
Reference in New Issue
Block a user