Monitoring & Sistem
Health check, versi, konfigurasi, metrik proses ingest, log per device, proses on-demand, WebSocket real-time, dan dashboard web bawaan.
Pengenalan
Liodra menjalankan puluhan sampai ratusan proses ingest di satu host. Halaman ini merangkum semua cara untuk mengetahui apa yang terjadi di dalamnya:
| Kebutuhan | Alat |
|---|---|
| Apakah Liodra dan media engine-nya hidup? | GET /api/v1/health (dipakai tombol Periksa Kesehatan di Lenz) |
| Versi apa yang berjalan? | GET /api/v1/version |
| Fitur apa yang aktif? | GET /api/v1/config (playback_enabled, vod_enabled, ...) |
| CPU, memori, disk host | GET /api/v1/resource-stat (ringkas) dan GET /api/v1/monitor/system (rinci) |
| Kenapa kamera X error? | GET /api/v1/monitor/processes/{deviceID}/logs dan .../command |
| Siapa yang memakai CPU? | GET /api/v1/monitor/processes dan /monitor/ondemand |
| Pemantauan tanpa polling | WebSocket /ws/v1/monitor/{devices,processes,ondemand} |
| Tanpa menulis kode | Dashboard web di http://<host>:8080/ |
Semua endpoint di sini selalu aktif, tidak bergantung pada flag fitur, kecuali /monitor/* yang memerlukan backend standar.
Cara Menggunakan
curl -s http://localhost:9080/api/v1/health | jq{
"success": true,
"data": {
"status": "healthy",
"version": "3.9.0",
"uptime": "72h14m",
"backend": "srs",
"backend_health": true,
"ondemand": { "active": 3, "max": 32 },
"cache_stats": { "streams": { "hits": 1200, "misses": 40, "hit_ratio": 0.97 } }
}
}Gunakan backend_health (bukan hanya kode HTTP) sebagai indikator: Liodra bisa hidup sementara media engine-nya tidak. Untuk liveness probe Kubernetes atau Docker healthcheck, GET /api/v1/health cukup; untuk readiness, periksa backend_health == true.
Lihat status dan pesan device: GET /api/v1/devices/rtsp/live/camera_front.
Tarik log proses ingest terakhir:
curl "http://localhost:9080/api/v1/monitor/processes/live/camera_front/logs?lines=200"Log adalah teks polos (text/plain), maksimum MAX_LOG_LINES (500) baris disimpan per device.
Ambil perintah ingest persis yang dijalankan (berguna saat melapor ke tim Nodeflux):
curl http://localhost:9080/api/v1/monitor/processes/live/camera_front/commandRestart prosesnya bila perlu: POST /api/v1/monitor/processes/live/camera_front/restart (setara POST /api/v1/devices/{scheme}/live/camera_front/restart).
Buka http://<host-liodra>:8080/ di browser. Dashboard web bawaan memiliki lima tab:
- Devices: daftar device dengan status, uptime, restart, dan tombol restart/stop/hapus; data dari
/ws/v1/monitor/devices. - On-Demand: proses transcode dan playback yang sedang berjalan beserta URL pemintanya; bisa dihentikan satu per satu.
- System Health: CPU, memori, disk, jaringan, cache, dan anggaran transcode dari
/api/v1/monitor/system. - Videos: daftar video VoD (bila
--with-vod). - Register: form untuk mendapatkan URL publish RTMP bertoken (
POST /api/v1/register).
Dashboard tidak memiliki login; lindungi port 8080 sama seperti 9080.
Fitur Utama
Metrik per proses
GET /api/v1/monitor/processes mengembalikan array { device_id, type: "ingest", pid, status, cpu, memory } untuk setiap proses ingest. GET /api/v1/monitor/ondemand mengembalikan proses sementara (transcode live, playback DVR/VoD) dengan command, started_at, resource_stats, ffmpeg_stats (fps, bitrate, speed), dan request_url asal permintaan. DELETE /api/v1/monitor/ondemand/{sessionID} menghentikannya, misalnya untuk membebaskan slot saat MAX_ONDEMAND_PROCESSES penuh.
WebSocket real-time
| Endpoint | Isi | Interval |
|---|---|---|
/ws/v1/monitor/devices | Daftar device lengkap (format sama dengan GET /api/v1/devices) | ~2 detik |
/ws/v1/monitor/processes | Metrik CPU/memori proses ingest | ~2 detik |
/ws/v1/monitor/ondemand | Proses on-demand aktif | ~2 detik |
Satu koneksi WebSocket menggantikan polling puluhan klien; dashboard web bawaan memakai pola ini.
Health untuk Lenz
Lenz memanggil GET /api/v1/health melalui proxy saat halaman Media Servers dibuka dan saat tombol Periksa Kesehatan ditekan, lalu menampilkan version, backend, dan status koneksi. GET /api/v1/resource-stat dipakai bilah status (footer) Lenz, tab Media Server pada halaman Monitoring, dan kartu Playback Retention; proxy Lenz menambahkan nama server pada responsnya agar beberapa Liodra dapat dibedakan.
Konfigurasi sebagai satu dokumen
GET /api/v1/config menggabungkan flag fitur runtime, daftar device (recordings.yaml), dan jadwal cleanup (retentions.yaml). PUT /api/v1/config menulis ulang kedua file sekaligus; ini untuk restore atau migrasi, bukan perubahan harian, karena tidak menyalakan atau mematikan proses secara langsung. Untuk itu gunakan endpoint Devices dan Retention.
Cache
Liodra meng-cache status stream dan hasil pemindaian direktori. cache_stats di /health dan /monitor/system menunjukkan hits, misses, hit_ratio, evictions, dan size per cache. hit_ratio rendah pada beban tinggi biasanya berarti klien melakukan polling lebih cepat daripada TTL cache (5 sampai 10 detik).
Log container
Selain log proses ingest per device, log Liodra sendiri ([Retention], [EncoderLag], RTMP auth denied, supervisor restart) ditulis ke stdout container. Jalankan dengan --verbose untuk detail tambahan.
API Reference
Detail lengkap di API Reference: Monitoring & Sistem.
| Method | Path | Fungsi |
|---|---|---|
GET | /api/v1/health | Status Liodra, media engine, cache, on-demand, transcode |
GET | /api/v1/version | Versi Liodra dan build |
GET | /api/v1/resource-stat | CPU, memori, disk host (ringkas) |
GET / PUT | /api/v1/config | Konfigurasi gabungan |
GET | /api/v1/monitor/processes | Metrik proses ingest |
GET | /api/v1/monitor/processes/{deviceID}/logs | Log proses ingest (teks) |
GET | /api/v1/monitor/processes/{deviceID}/command | Perintah proses ingest |
POST | /api/v1/monitor/processes/{deviceID}/restart | Restart proses |
GET | /api/v1/monitor/system | Statistik sistem rinci |
GET | /api/v1/monitor/ondemand | Proses on-demand |
GET | /api/v1/monitor/ondemand/{sessionID}/logs | Log proses on-demand |
DELETE | /api/v1/monitor/ondemand/{sessionID} | Hentikan proses on-demand |
WS | /ws/v1/monitor/devices, /processes, /ondemand | Stream metrik real-time |
Tips & Troubleshooting
Selanjutnya
API Reference: Broadcast
Endpoint untuk menyiarkan gambar dan GPS ke channel, memeriksa status channel, dan WebSocket penerima siaran.
API Reference: Monitoring & Sistem
Endpoint health, versi, resource host, konfigurasi gabungan, metrik dan log proses ingest, proses on-demand, dan WebSocket monitoring.