Search by

nawasara / uptime

pringgojsnawasara

Uptime monitoring hub — reads Uptime Kuma data and displays it in the Nawasara dashboard

Package info

github.com/nawasara/uptime

pkg:composer/nawasara/uptime

Statistics

Installs: 255

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.2.1 2026-09-04 01:56 UTC

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