nawasara / uptime
Uptime monitoring hub — reads Uptime Kuma data and displays it in the Nawasara dashboard
Requires
- php: ^8.2
- livewire/livewire: ^3.0
- nawasara/database-monitor: *
- nawasara/sync: *
- nawasara/ui: *
- spatie/laravel-permission: ^6.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-04 01:56:41 UTC
README
Hub pemantauan uptime — membaca data Uptime Kuma dan menampilkannya di dashboard Nawasara, sehingga status layanan terlihat tanpa berpindah aplikasi.
Status v0.1.0
| Fitur | Status |
|---|---|
| Baca monitor + status dari basis data Kuma | ✅ siap |
| Sinkronisasi berkala ke cache lokal | ✅ siap |
| Halaman daftar monitor + detail | ✅ siap |
| Sparkline 24 jam | ✅ siap |
| Persentase uptime dari agregat Kuma | ✅ siap |
| Menambah/mengubah monitor dari Nawasara | ⏳ menyusul — perlu API tulis |
| Notifikasi saat monitor turun | ⏳ menyusul |
Baca langsung dari basis data, bukan API
Uptime Kuma 2.x belum punya API baca yang stabil, jadi paket ini membaca
basis datanya langsung — hanya SELECT, tidak pernah menulis.
Koneksinya memakai ulang MysqlConnection dari nawasara/database-monitor:
kredensial yang sama (kmf-db, yang sudah punya GRANT SELECT ON *.*),
siklus koneksi yang sama (daftarkan saat dipakai, tutup setelahnya). Kueri
diberi awalan nama basis data Kuma supaya berjalan lintas-basis-data tanpa
mengganti koneksi bawaan.
⚠️ Ini menautkan paket ini ke skema internal Kuma. Versi yang ditargetkan
disebut di config (kuma_version, saat ini 2.0.0-beta.3); pemutakhiran Kuma
dapat mengubah skemanya dan memutus pembacaan. Bila kelak Kuma menyediakan API
baca yang stabil, itu jalan yang lebih benar.
Persentase uptime memakai agregat Kuma
Kuma sudah menghitung stat_daily, stat_hourly, dan stat_minutely. Paket
ini membaca tabel itu, bukan memindai heartbeat mentah.
Bedanya besar: tabel heartbeat tumbuh ratusan ribu baris per monitor, dan menghitung persentase dengan memindainya akan membebani basis data Kuma — basis data yang tugas utamanya justru memantau, dan tidak boleh ikut lambat.
Setup
composer require nawasara/uptime
php artisan migrate
php artisan db:seed --class="Nawasara\Uptime\Database\Seeders\PermissionSeeder"
Tambahkan di resources/css/app.css:
@source "../../vendor/nawasara/uptime";
Konfigurasi lewat .env:
UPTIME_KUMA_DATABASE=terraform_uptime_kuma UPTIME_KUMA_URL=https://kuma.example.id # untuk tautan "buka di Kuma" UPTIME_SYNC_INTERVAL=1 # menit UPTIME_SPARKLINE_HOURS=24 UPTIME_SCHEDULER_ENABLED=true
Paket ini menuntut nawasara/database-monitor terpasang dan kredensialnya
sudah terisi di Vault — dari sanalah koneksi ke basis data Kuma berasal.
Sinkronisasi
SyncMonitorsJob menyalin daftar monitor beserta statusnya ke tabel lokal
nawasara_uptime_monitors, dijadwalkan tiap sync_interval menit.
Cache lokal ada supaya halaman tetap terbuka saat basis data Kuma tidak terjangkau — yang ditampilkan menjadi data terakhir yang diketahui, bukan layar galat. Status yang basi lebih berguna daripada tidak ada status.
Roadmap
- Menambah/mengubah monitor dari Nawasara (perlu API tulis Kuma)
- Notifikasi saat monitor turun, lewat
nawasara/notification - Status publik untuk warga (halaman status layanan)
Author
Pringgo J. Saputro — Dinas Kominfo Kabupaten Ponorogo
License
MIT