Browse Source

docs: tambah KPI Dashboard (geonet-kpi) ke backlog Fase 8 KPI karyawan + IT/Ops

master
Budi Setiawan 3 weeks ago
parent
commit
6f48afb777
  1. 98
      backlog.md

98
backlog.md

@ -111,10 +111,26 @@ @@ -111,10 +111,26 @@
---
## 🔴 Fase 8 — KPI Dashboard *(Setelah semua service siap: Zammad, Gitea, Collector, Uptime Kuma)*
> Butuh semua sumber data aktif agar metrik KPI akurat dan bermakna.
| # | Tugas | Estimasi |
|---|---|---|
| **25** | **Backend `geonet-kpi`** — FastAPI aggregator, pull dari semua API, cache Redis/SQLite | 3-4 hari |
| **26** | **Scheduler** — hitung KPI harian/mingguan/bulanan otomatis | 1 hari |
| **27** | **FE: Dashboard KPI IT/Ops** — uptime, tiket, asset health, alert count (Recharts) | 2-3 hari |
| **28** | **FE: Dashboard KPI Karyawan** — performa individu, tiket selesai, SLA, commit | 2-3 hari |
| **29** | **Admin: KPI Config** — set target, bobot metrik, periode laporan | 1-2 hari |
| **30** | **Export PDF/Excel** — laporan KPI per periode untuk manajemen | 1-2 hari |
| **31** | **Push Notif KPI Alert** — notif jika KPI di bawah target ke Manager/IT Admin | 1 hari |
---
> **Urutan pengerjaan**:
> **① Content/Home Feed** → **② Mailcow** → **③ Zammad+Ticketing** → **④ Push Notif** → **⑤ Gitea** → **⑥ Mail UI** → **⑦ Infra**
> **① Content/Home Feed** → **② Mailcow** → **③ Zammad+Ticketing** → **④ Push Notif** → **⑤ Gitea** → **⑥ Mail UI** → **⑦ Infra****⑧ KPI Dashboard**
>
> *(Gitea Fase 5 bisa dikerjakan paralel dengan Fase 2-4 karena tidak ada dependency)*
> *(KPI Fase 8 dikerjakan terakhir — butuh Zammad + Gitea + Collector + Uptime Kuma semua sudah running)*
---
# ADR — Standar Dialog Preview / Edit (UI Pattern)
@ -488,6 +504,86 @@ my.gisportal.id @@ -488,6 +504,86 @@ my.gisportal.id
- [ ] Move Inbox from main geonet.co.id to geonet for mail server
- [ ] save imap and pop3 file Thunderbird di NAS : untuk meringankan vm dan memastikan file tidak hilang
# KPI Dashboard (`geonet-kpi`)
## Dependency (semua harus sudah running)
- ✅ geonet-collector (asset & device data)
- 🔴 Zammad (tiket metrics)
- 🔴 Gitea (issue & commit metrics)
- 🔶 Uptime Kuma API (service uptime)
- 🔶 Zabbix API (network alert)
## Arsitektur
- **Backend**: `geonet-kpi` — FastAPI aggregator, bukan BI tool besar
- **Cache**: Redis atau SQLite — hasil agregasi disimpan agar FE tidak hit semua API setiap request
- **Scheduler**: APScheduler (built-in FastAPI) — hitung KPI otomatis tiap malam / per jam
- **Domain**: `kpi.gisportal.id` (internal) atau lewat `console.gisportal.id/api/kpi`
## Metrik KPI Karyawan
| Metrik | Sumber | Cara Hitung |
|---|---|---|
| Tiket IT diselesaikan | Zammad | Count closed by assignee per periode |
| Rata-rata waktu resolve | Zammad | Avg(closed_at − created_at) per assignee |
| SLA compliance (%) | Zammad | % tiket selesai sebelum SLA deadline |
| Issue dev diselesaikan | Gitea | Count closed issues by assignee |
| Jumlah commit | Gitea | Count commits by author |
| Asset yang dikelola | geonet-collector | Count asset by owner |
| Login activity | geonet-console | Count login per bulan |
## Metrik KPI IT/Operasional
| Metrik | Sumber | Cara Hitung |
|---|---|---|
| Uptime layanan (%) | Uptime Kuma | monitors → uptime ratio per service |
| Asset online vs offline | geonet-collector | online_count / total_count |
| Asset disk > 90% | geonet-collector | Count disk pct_used > 90 |
| Tiket masuk vs selesai | Zammad | Open/Close ratio per periode |
| Avg first response time | Zammad | Time to first agent reply |
| Network alert count | Zabbix | Problem count by severity |
| Repo aktif | Gitea | Repo dengan commit dalam 30 hari terakhir |
## API Endpoints (`geonet-kpi`)
```
GET /kpi/summary — ringkasan KPI semua kategori (untuk dashboard)
GET /kpi/employee/{username} — KPI individu karyawan
GET /kpi/it-ops — KPI operasional IT
GET /kpi/history?period=monthly&months=6 — trend historis
GET /kpi/export?format=pdf|excel&period= — export laporan
POST /admin/kpi/config — set target & bobot per metrik
POST /admin/kpi/refresh — trigger recalculate manual
```
## Permission (tambah ke group_permissions)
| Permission | Fungsi |
|---|---|
| `kpi.view_own` | Lihat KPI diri sendiri |
| `kpi.view_team` | Lihat KPI semua karyawan (Manager/HR) |
| `kpi.manage` | Konfigurasi target, bobot, export (IT-Admin, Management) |
## FE Tasks
### Dashboard KPI IT/Ops (`/kpi/ops`)
- [ ] Card ringkasan: uptime %, tiket open, asset offline, alert aktif
- [ ] Chart trend tiket (bar chart bulanan)
- [ ] Chart uptime per service (line chart)
- [ ] Tabel asset dengan status disk warning
### Dashboard KPI Karyawan (`/kpi/employee`)
- [ ] Tabel performa per karyawan (filter: periode, divisi/group LDAP)
- [ ] Detail individu: chart radar (tiket, SLA, commit, response time)
- [ ] Perbandingan vs target (progress bar per metrik)
- [ ] Trend bulan ke bulan (sparkline)
### Admin: KPI Config (`/admin/kpi`)
- [ ] Form set target per metrik (misal: SLA target 95%, uptime target 99.5%)
- [ ] Pilih periode laporan (mingguan / bulanan / kuartalan)
- [ ] Trigger recalculate manual
- [ ] Export laporan PDF/Excel
### Notifikasi KPI
- [ ] Push notif ke Manager/IT-Admin jika KPI < target threshold
- [ ] Weekly summary digest via email (Mailcow) ke stakeholder
---
# Mikrotik
- [ ] Setup PPP login via LDAP

Loading…
Cancel
Save