|
|
|
|
@ -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 |
|
|
|
|
|
|
|
|
|
|