Resource Monitoring
Pemantauan real-time CPU, GPU, RAM, disk, dan database untuk seluruh komponen sistem Visionaire — diperbarui setiap 2 detik.
Pengenalan
Halaman Resource Monitoring menyediakan tampilan terpusat untuk memantau kondisi sumber daya seluruh komponen sistem secara real-time: Visionaire instances, Lenz Dashboard, Media Server, Fremis-N, dan Database. Setiap metrik — mulai dari utilisasi CPU dan GPU hingga tekanan memori dan kapasitas disk — diperbarui otomatis setiap 2 detik tanpa perlu memuat ulang halaman.
Halaman ini dirancang untuk dua skenario utama: troubleshooting performa saat sistem menunjukkan kelambatan atau kegagalan stream, dan capacity planning untuk mengevaluasi apakah infrastruktur yang ada cukup menangani beban deployment baru. Operator dapat membaca gauge secara sekilas untuk mengidentifikasi node yang kelebihan beban, sementara integrator dapat memanfaatkan endpoint API yang mendasarinya untuk menarik metrik ini ke sistem monitoring eksternal seperti Grafana atau Prometheus.
Halaman ini dilindungi RBAC. Anda memerlukan permission monitoring.read untuk mengaksesnya. Hubungi administrator sistem jika menu Monitoring tidak muncul di navigasi.
Cara Menggunakan
Buka menu Monitoring
Klik menu Monitoring di sidebar navigasi, lalu pilih Resource Monitoring. Anda juga dapat mengakses langsung melalui URL /resource-monitoring. Tab yang aktif dipertahankan di URL sebagai query parameter ?tab=<nama-tab>, sehingga Anda dapat membagikan link ke tab tertentu.
Pilih tab komponen yang ingin dipantau
Terdapat lima tab: Visionaire, Dashboard, Media Server, Fremis-N, dan Database. Dua tab terakhir — Media Server dan Fremis-N — hanya muncul apabila feature flag yang relevan diaktifkan di halaman Preferences. Pilih tab sesuai komponen yang ingin Anda periksa.
Periksa gauge dan detail sumber daya
Setiap node atau komponen ditampilkan sebagai kartu terpisah. Gauge berbentuk lingkaran menampilkan persentase utilisasi dengan kode warna: hijau (normal), kuning (perhatian), dan merah (kritis). Di bawah gauge, panel detail menyajikan angka absolut seperti jumlah core CPU, kapasitas memori terpakai, dan throughput jaringan.
Tab yang Tersedia
Tab Visionaire menampilkan seluruh node Visionaire yang terhubung ke deployment ini. Setiap node ditampilkan sebagai kartu mandiri dengan identitas berupa nomor node dan alamat IP-nya. Data diperbarui setiap 2 detik.
Yang ditampilkan per node:
- Header: Nomor node, alamat IP, dan versi NVIDIA driver
- Gauges: CPU, GPU (rata-rata utilisasi), RAM, GMEM (rata-rata memori GPU), dan Swap — semua dalam persentase
- Detail sumber daya:
- CPU: persentase utilisasi dan jumlah core
- Memori: kapasitas terpakai vs. total (GB)
- Disk: kapasitas terpakai vs. total per mount-point (GB)
- Jaringan: throughput download (
rx) dan upload (tx) dalam Mbps
- Detail GPU per unit: nama GPU, ID, jumlah layanan yang berjalan, bar utilisasi, dan bar penggunaan VRAM (GiB)
- Statistik stream: ringkasan jumlah stream Total, Online, Offline, dan Nonaktif pada node tersebut
Tab Dashboard menampilkan statistik sumber daya server tempat Lenz Dashboard di-deploy. Cocok digunakan untuk memastikan beban server aplikasi tidak menjadi bottleneck saat jumlah pengguna aktif tinggi.
Yang ditampilkan:
- Gauge: CPU, Memori, dan Disk dalam persentase
- Detail sumber daya: jumlah core CPU, kapasitas memori terpakai vs. total, serta penggunaan disk per mount-point
- Nama layanan: identitas proses (
service_name) yang dilaporkan oleh Lenz
Data diperbarui setiap 2 detik dan menggunakan komponen ResourceCard yang sama dengan tab Media Server.
Tab Media Server menampilkan statistik sumber daya untuk setiap NVR/media server yang terdaftar. Setiap server ditampilkan sebagai kartu terpisah yang menampilkan kondisi disk penyimpanan rekaman dan VOD.
Yang ditampilkan per media server:
- Gauge: CPU, Memori, dan Disk dalam persentase
- Detail sumber daya:
- Disk: kapasitas terpakai vs. total, kecepatan baca/tulis (bytes/detik)
- Rekaman: kapasitas yang digunakan untuk penyimpanan rekaman (
recordings_used_bytes) - VOD: kapasitas yang digunakan untuk Video on Demand (
vods_used_bytes)
Data diperbarui setiap 5 detik. Jika server belum pernah mengembalikan data, kartu menampilkan pesan error. Jika server sempat mengembalikan data lalu gagal pada polling berikutnya, data terakhir tetap ditampilkan hingga koneksi pulih.
Tab ini hanya tersedia jika feature flag Media Server diaktifkan di Preferences → Feature. Jika tab tidak muncul, hubungi administrator untuk mengaktifkan flag MEDIA_SERVER_ENABLED.
Tab Fremis-N menampilkan statistik sumber daya untuk setiap node Fremis-N yang terdaftar. Struktur tampilannya serupa dengan tab Visionaire — gauge per node plus detail GPU.
Yang ditampilkan per node:
- Header: nomor node, instance identifier, dan versi NVIDIA driver
- Gauges: CPU, GPU (rata-rata utilisasi), RAM, GMEM, dan Swap — semua dalam persentase
- Detail sumber daya:
- CPU: persentase utilisasi dan jumlah core
- Memori: kapasitas terpakai vs. total (GB)
- Disk: kapasitas terpakai vs. total per mount-point (GB)
- Detail GPU per unit: nama GPU, ID, bar utilisasi, dan bar penggunaan memori GPU (GiB)
Data diperbarui setiap 2 detik.
Tab ini hanya tersedia jika feature flag Face Investigation diaktifkan di Preferences → Feature. Jika tab tidak muncul, hubungi administrator untuk mengaktifkan flag FACE_INVESTIGATION_ENABLED.
Tab Database menampilkan kondisi database TimescaleDB yang digunakan oleh sistem. Seluruh informasi disajikan dalam satu kartu ringkasan.
Yang ditampilkan:
| Label | Keterangan |
|---|---|
| Host | Alamat host database |
| Ukuran Disk | Total kapasitas disk database (GB) |
| Retensi | Kebijakan retensi aktif: berbasis waktu (Time: N days) dan/atau berbasis ukuran (Size: N GB/TB) |
| Query Aktif | Jumlah query yang sedang berjalan; klik untuk membuka modal detail |
| Total Tabel | Jumlah tabel; klik untuk membuka modal dengan daftar tabel dan partisi |
| Total Ukuran Tabel | Gabungan ukuran semua tabel (GB) |
Modal Query Aktif menampilkan dua sub-tab:
- Saat Ini: query yang sedang berjalan dengan kolom PID, Instance, User, Database, Durasi, Status, dan teks Query
- Riwayat: query yang sudah selesai sejak halaman dibuka (disimpan hingga 50 entri terakhir)
Modal Tabel Database menampilkan daftar tabel beserta ukuran dan partisi-partisinya.
Visualisasi distribusi: bar horizontal berwarna menggambarkan proporsi ukuran tiap tabel terhadap total ukuran seluruh tabel.
Data diperbarui setiap 5 detik.
Tombol shortcut: "Kelola Aturan Retensi" — mengarahkan Anda langsung ke halaman Preferences → Retention untuk mengatur kebijakan retensi data.
Fitur Utama
Real-time Refresh
Data diperbarui setiap 2–5 detik tanpa reload halaman. Polling berhenti otomatis saat tab browser tidak aktif untuk menghemat bandwidth.
Multi-instance
Pantau seluruh node Visionaire dan Fremis-N dalam satu tampilan terpadu, masing-masing dengan metrik mandiri.
Database Insight
Monitor active query secara live, lihat riwayat query yang telah selesai, dan akses konfigurasi retensi langsung dari tab Database.
Per-Tab Filtering
Setiap komponen sistem memiliki tab sendiri sehingga Anda dapat fokus pada satu layer infrastruktur tanpa gangguan informasi yang tidak relevan.
API Reference
Dokumentasi lengkap seluruh endpoint Resource Monitoring tersedia di halaman terpisah dengan contoh request, response, dan skema parameter interaktif.
Semua endpoint memerlukan header Authorization: Bearer <token>. Token diperoleh dari proses autentikasi Lenz — lihat halaman Otentikasi.
GET /api/resource-stat — Lenz Dashboard Resource Stats
Mengembalikan statistik sumber daya server tempat Lenz Dashboard berjalan, mencakup CPU, memori, disk, dan GPU.
curl "${VITE_API_URL}/api/resource-stat" \
-H "Authorization: Bearer ${TOKEN}"{
"message": "success",
"ok": true,
"result": {
"service_name": "lenz-dashboard",
"cpu": {
"total_cores": 8,
"usage_percent": 23.5
},
"memory": {
"available_bytes": 4831838208,
"total_bytes": 8589934592,
"used_bytes": 3758096384
},
"disk": {
"mountpoint": "/",
"total_bytes": 107374182400,
"available_bytes": 64424509440,
"used_bytes": 42949672960,
"usage_percent": 40.0,
"disk_read_bytes_per_sec": 1048576,
"disk_write_bytes_per_sec": 524288
},
"gpu": []
}
}Prop
Type
GET /api/visionaire/v2/resource_stats — Visionaire Resource Stats
Mengembalikan statistik sumber daya untuk seluruh node Visionaire yang terhubung dalam satu array.
curl "${VITE_API_URL}/api/visionaire/v2/resource_stats" \
-H "Authorization: Bearer ${TOKEN}"{
"message": "success",
"ok": true,
"result": [
{
"ip_address": "192.168.1.10",
"node_num": 1,
"data": {
"nvidia_driver_version": "535.104.05",
"cpu": {
"total_cores": 16,
"usage_percent": 42.3
},
"memory": {
"total_bytes": 34359738368,
"used_bytes": 17179869184,
"free_bytes": 17179869184,
"usage_percent": 50.0
},
"swap_memory": {
"total_bytes": 8589934592,
"used_bytes": 1073741824,
"free_bytes": 7516192768,
"usage_percent": 12.5
},
"disks": [
{
"mountpoint": "/",
"total_bytes": 214748364800,
"used_bytes": 107374182400,
"free_bytes": 107374182400,
"percent": 50.0
}
],
"network": {
"rx_bps": 52428800,
"tx_bps": 10485760
},
"gpus": [
{
"gpu_id": 0,
"gpu_name": "NVIDIA RTX 4090",
"gpu_utilization": 67,
"gpu_memory_used": 8589934592,
"gpu_memory_total": 25769803776,
"gpu_memory_free": 17179869184,
"services": [
{ "service_name": "face-recognition", "num_service": 3 }
]
}
],
"camera_stats": []
}
}
]
}Prop
Type
GET /api/visionaire-media/{id}/resource-stat — Per Media Server Resource Stats
Mengembalikan statistik sumber daya untuk satu media server berdasarkan ID-nya.
Prop
Type
curl "${VITE_API_URL}/api/visionaire-media/<id>/resource-stat" \
-H "Authorization: Bearer ${TOKEN}"{
"success": true,
"data": {
"service_name": "nvr-server-1",
"cpu": { "total_cores": 8, "usage_percent": 15.0 },
"memory": {
"available_bytes": 12884901888,
"total_bytes": 17179869184,
"used_bytes": 4294967296
},
"disk": {
"mountpoint": "/recordings",
"total_bytes": 4398046511104,
"available_bytes": 2199023255552,
"used_bytes": 2199023255552,
"usage_percent": 50.0,
"disk_read_bytes_per_sec": 10485760,
"disk_write_bytes_per_sec": 5242880,
"recordings_used_bytes": 1610612736000,
"vods_used_bytes": 536870912000
},
"gpu": []
}
}GET /api/fremisn/v1/resource-stats — Fremis-N Resource Stats
Mengembalikan statistik sumber daya seluruh node Fremis-N dalam satu response.
curl "${VITE_API_URL}/api/fremisn/v1/resource-stats" \
-H "Authorization: Bearer ${TOKEN}"{
"message": "success",
"result": {
"data": [
{
"instance": "fremisn-core-1",
"node_num": "1",
"nvidia_driver_version": "535.104.05",
"cpu": { "total_cores": 8, "usage_percent": 35.0 },
"memory": {
"total_bytes": 17179869184,
"used_bytes": 6442450944,
"free_bytes": 10737418240,
"usage_percent": 37.5
},
"swap_memory": {
"total_bytes": 4294967296,
"used_bytes": 0,
"free_bytes": 4294967296,
"usage_percent": 0.0
},
"disks": [
{
"instance": "fremisn-core-1",
"mountpoint": "/",
"total_bytes": 107374182400,
"used_bytes": 53687091200,
"free_bytes": 53687091200,
"percent": 50.0
}
],
"gpus": [
[
{
"gpu_id": 0,
"gpu_name": "NVIDIA RTX 3090",
"gpu_utilization_percent": 55.0,
"memory_used_bytes": 6442450944,
"memory_total_bytes": 25769803776,
"memory_free_bytes": 19327352832,
"instance": "fremisn-core-1"
}
]
],
"camera_stats": []
}
],
"db": {
"host": "localhost:5432",
"retention_days": 30,
"total_disk_usage_bytes": 10737418240
}
}
}GET /api/database/resource-stat — Database Resource Stats
Mengembalikan kondisi database TimescaleDB: kapasitas disk, konfigurasi retensi, query aktif, dan daftar tabel beserta partisinya.
curl "${VITE_API_URL}/api/database/resource-stat" \
-H "Authorization: Bearer ${TOKEN}"{
"message": "success",
"ok": true,
"result": {
"db_name": "visionaire",
"host": "localhost:5432",
"total_bytes": 107374182400,
"retention": [
{
"id": 1,
"retention_type": "time",
"retention_days": 30,
"retention_bytes": 0,
"schedule_hour": 0,
"schedule_minute": 0,
"is_active": true
},
{
"id": 2,
"retention_type": "size",
"retention_days": 0,
"retention_bytes": 536870912000,
"schedule_hour": 1,
"schedule_minute": 0,
"is_active": false
}
],
"active_query": [
{
"pid": "12345",
"instance": "visionaire",
"usename": "postgres",
"application_name": "lenz",
"client_addr": "127.0.0.1",
"state": "active",
"duration": 0.023,
"query": "SELECT * FROM events WHERE ...",
"wait_event": null,
"wait_event_type": null
}
],
"table": [
{
"table_name": "events",
"total_bytes": 53687091200,
"partition": [
{ "table_name": "events_2024_01", "total_bytes": 5368709120 },
{ "table_name": "events_2024_02", "total_bytes": 4831838208 }
]
}
]
}
}Prop
Type
Federation Mode
Apabila Federation Mode diaktifkan melalui Preferences, Anda dapat mengarahkan request ke instance tertentu menggunakan parameter instance.
curl "${VITE_API_URL}/api/visionaire/v2/resource_stats?instance=core-1" \
-H "Authorization: Bearer ${TOKEN}"Parameter instance dapat digunakan pada endpoint Visionaire dan Fremis-N untuk mempersempit hasil ke node federation tertentu. Tanpa parameter ini, endpoint mengembalikan data dari instance utama atau agregasi sesuai konfigurasi deployment.
Tips & Troubleshooting
Selanjutnya
Retention Config
Atur kebijakan retensi data berdasarkan waktu atau ukuran untuk mengoptimalkan penggunaan disk database.
Statistics
Analitik bisnis dari event AI: face recognition, license plate, dan lainnya.
Preferences
Aktifkan atau nonaktifkan feature flag Media Server dan Fremis-N, serta konfigurasi lainnya.